一直以来,写日常问题、前沿技术和架构思考类的文章比较多,今天为什么突然来说说Swing这个陈年老技术呢?

因为在CSDN上看到了这样的一篇文章:

可以看到作者对于学Swing还是挺愤怒的,不过确实Swing现在很少用了。但我的观点还不是那么绝对,因为从个人成长来说,Swing的学习确实给到了不少收获。开始也没打算专门来写篇文章说说看法,然后上了一下掘金,居然就又看到了这篇文章(强大的推荐机制):

开始看标题格式还以为是同一篇,仔细看才知道原来是驳前面那篇的,对于后面那篇的不少观点,个人还是比较认同的。

同时也因为作者的观点,联想到经常有读者跟我聊遇到职业瓶颈的问题,与我给出的建议有很多不谋而合的认识,所以还是想写一篇文章来说说。

首先,我尊重每个人对技术学习的观点,这里不评论到底谁对谁错,我就结合自己的学习和成长路径,谈谈这个问题的看法吧。如果屏幕前的你是正在读书的学生或是遇到瓶颈的在职者,强烈推荐看完本文!

Swing对我的最大收获

Swing,这个算是Java领域里非常古老的一个技术点了,主要用来做客户端程序的界面。

记得上大学那会儿,Java课的大作业、暑期实践和后来研究生时期的实践项目都有所涉及。还清晰的记得,当时跟宿舍小伙伴,一起做的是模仿当时MSN的扫雷对战游戏实现的一个支持联网的客户端小游戏,界面部分就是用Swing来实现的。

在这个时期,我觉得最大的收获就是在学完了Java之后,通过Swing可以实现一个看得见的,让自己很有成就感的作品了,这样的学习反馈其实对学习者来说,是非常棒的,也是感受编程乐趣的重要开始。这个时候其实是会有一些骄傲的,因为在实现的过程中,碰到了很多问题,也不断的尝试着去解决了很多问题。对于编程的思维模式是一次很棒的锻炼。

在骄傲之后,随着后续课程的跟进,马上就会迎来一次打脸和进步的课,就是设计模式!这个时候就会发现之前的实现有多糟糕,记得开始最多碰到的问题就是各个Panel之间的操作联动,由于开始没有学过设计模式,不知道观察者模式等高级设计,一股脑的搞了很多静态变量,以实现各种联动,最后导致的就是程序耦合性非常高。

再之后,也是用Swing做了不过不少东西,比如:矢量图的画板,无服务的聊天室。进一步学到了状态模式的应用,网络相关的编程等。

也许有读者会说,那你不会直接学Spring Boot + Vue来搞不是很多也都能实现么?我觉得这两者之间就学习上来说最大的冲突并不是将来会不会用,而是Swing应用的技术是非常纯粹的,只要你学了Java,你就能马上上手。而对于Spring Boot这样已经封装上几层的框架,加上Vue这样的前端框架,已经建立在了太多基础内容之上,可能跟着教程去做,可以完成一些固定的东西,但要去深入理解这些技术的本质和更为重要的编程思维,帮助就没那么大了,而且从编程启蒙、进阶、深入的认知过程来说,初期我并不太建议把技术栈搞的太杂,反而容易觉得乱,不利于学习和培养兴趣。

大学时期我们学的Swing,虽然最后在工作中并没有给到我任何直接的帮助。但在学习的过程中,对于锻炼基础的编程思维作用是非常大的,尤其对于设计模式的应用,作为来学习Spring MVC也好,Vue也好,很多设计思想上都是共同的。通过一个足够单纯的技术内容,对思维模式的理解更容易上手,掌握之后再去类比着学习其他的就会非常快。

大学专业课程对我的最大收获

其实不光Swing,很多大学里的专业课程,在我们未来的职业生涯中往往都不会直接用到。

比如:

  • 我们学了操作系统原理,就要去做操作系统吗?
  • 我们学了计算机网络,就要去做网络设备吗?
  • 我们学了数据库系统原理,就要去做数据库产品吗?

既然我们未来都没有去做这些基础设施的工作,那我们**还学了干嘛?干脆别学了?书扔了算了?**大学期间,我虽然顺利的完成了这些课程的学习,但以前我也有过这些极端的想法,我们将来都去做业务应用了,这些东西有个鬼用!

然而,在不断的实践和挑战中,我发现对于框架知识的掌握程度能帮到我们的范围非常有限,而真正让我能够突破上升瓶颈的恰恰是这些当初觉得不那么重要的课程所带来的认识。因为这些内容里所蕴含的设计思想和思维模式是未来指导我思考问题寻找解决方案的重要源泉!比如:很多就操作系统这一门课来说,其中设计到的各种并发场景解决方案缓存加速设计等重要思想,都能对应到如今我们经常遇到的高并发、分布式场景下的各种问题。因为有这些基础认识的加持(方法论),你在思考难题和设计解决方案的时候,会更有想法,更容易找到好的办法!

在实际的工作过程中,对于开发童鞋在解决难题时候的一个特点。一些在大学里对这些基础课程掌握扎实的,往往只需要给他们直接讲一遍设计思路,基本上马上就能get到要点,因为他有了这些设计思想的基础,通过类比的方式去理解就会非常容易。而对于这些经典内容或者基础知识掌握欠缺的童鞋,往往你就得讲的更加细致一些,给他一步步介绍为什么要这样,他才能理解这么做的原因。

所以,如果你是专业科班的学生,那我强烈建议你这些基础课程一定要好好上,不要觉得将来用不到,就不用心学,甚至不学!如果你是培训班出生,一样强烈建议把我上面说的三个基础课程好好自己补一下,因为培训班基本不会教你这些,他们只管教会你一些企业在用的东西,让你能快速的上手成为一个CRUD开发者

后记

我认为在一定程度上,对于基础知识的掌握决定了你在技术生涯这条路上的上限

“知其然,更要知其所以然”。只有了解了本质原理,这样不论问题如何变,我们都能灵活的去解决它。就像我对很多想做架构的读者建议的,架构的本质一定要理解,一些基本原则要烂熟于胸,这些基础方法论是未来指导你实践最核心的内功心法。

切勿沉迷你过去的某一个成功经验来指导你未来的所有工作。架构工作最怕生搬硬套,学了微服务,到哪里都推微服务,学了中台,管他多大团队就干中台。最后,不但自己失败,还给团队和企业带来巨大的损失!这样的例子,这几年太多了,相信大家也都碰到过,之前我也写过一些不好的案例。究其原因,就是设计者对基础、对本质的理解不到位,一味求表面,赶新潮框架,追热点架构所导致的。

那么最后,你觉得大学里的这些过时的、未来不会用的基础知识重要吗?有必要花大力气学吗?留言说说你的看法吧!

一直寻思着交一些在校的学生朋友,但苦于长期接触的都是在职的小伙伴。也许这篇文章学生读者会多一些,顺手建了个在校Java初学者群,大家对于Java方向的技术学习或者未来职业认知和规划上有什么疑问都可以在这里提,工作快10年的我可以给大家一些或许有用的建议,少走弯路从加群(点击加入冲冲冲)开始吧!

欢迎关注我的公众号:程序猿DD,分享其他地方看不到的知识与思考

像Swing这种已经不太用的技术,大学还在教,到底要不要学?相关推荐

  1. 我懵了,居然还有学校还在教 Java 的 Swing

    昨天,有个读者私信我说,"老师正在教 Swing,这个知识点还需要学习吗?" 说句实在话,刚看到这个问题的时候,我是想骂娘的!不是骂读者啊,你懂得,骂学校,骂老师.但我硬是掐着自己 ...

  2. 合成孔径成像算法与实现_浅析太赫兹成像技术在消防领域中的应用前景

    消防员可以说是和平年代,离死神最近的职业.2019年8月上映的电影<烈火英雄>,对此有着真实的刻画.消防员面对高温.黑暗.有毒和浓烟等危害环境时,如果没有相应的设备贸然冲进现场,不仅不能完 ...

  3. 虹科分享 | 带您了解太赫兹成像技术及系统方案

    上篇 太赫兹波定义为0.1-10THz范围内的电磁波,处于微波与红外之间,具有许多独特的性质,比如穿透性.非电离辐射.吸水性.指纹频谱等,在材料识别.安全检查与无损检测方面有诸多应用. 图1 太赫兹波 ...

  4. 虹科分享|太赫兹成像技术的分类与原理

    太赫兹波定义为0.1-10THz范围内的电磁波,处于微波与红外之间,具有许多独特的性质,比如穿透性.非电离辐射.吸水性.指纹频谱等,在材料识别.安全检查与无损检测方面有诸多应用. 图1 太赫兹波在电磁 ...

  5. 【Terahertz Imaging Technology】空客集团在太赫兹成像技术上取得重要突破

    [Terahertz Imaging Technology]空客集团在太赫兹成像技术上取得重要突破 [据法国<航宇防务>网站2015年12月23日报道]空客集团创新分公司联合七家研究机构在 ...

  6. 某年轻程序员吐槽大龄程序员“太水”:技术水平低,经验都过时,看不起新人,不服从管理!...

    一般而言,在一个行业里深耕的时间越长,经验越丰富,技术越纯熟,越会被人尊重,但许多人却觉得大龄程序员不受欢迎,这是为什么呢? 一个程序员发帖吐槽组里的大龄程序员:1.技术水平相当于应届一两年,对技术毫 ...

  7. webservice 函数2007不可以用_Excel出了一个新函数,太好用啦!但我不建议你们学……...

    关注公众号[秋叶 Excel]回复关键词[工具]获取 Excel 高效小工具合集,让你效率开挂!本文作者:拉登 Dony本文来源:秋叶Excel(ID:excel100)本文编辑:思雨.竺兰我是拉登, ...

  8. 程序员女装大佬们,你们太可怕了,我还以为在逛 PornHub 呢

    loonggg 读完需要 3 分钟 速读仅需1分钟 最近这两天我发现程序员女装的开源项目又在 GitHub 上火了起来,今天高居日榜的第三名. 可能有很多程序员对这个开源项目不太熟悉,其实这个开源项目 ...

  9. 6G及太赫兹关键技术

    目录 6G概念... 2 6G发展趋势... 3 6G关键技术... 5 高安全性,保密性和私密性.... 5 高承受力和完全定制.... 6 能耗低,电池寿命长.... 6 高智能.... 6 与5 ...

最新文章

  1. 微信小程序,是不是一盘可口的菜!
  2. CSS捡屎记 // Web开发之精通CSS
  3. 2019计算与系统神经科学大会Cosyne 前沿研究汇总
  4. sencha touch中实现页面之间的互相跳转
  5. leetcode day1 -- Reverse Words in a String Evaluate Reverse Polish Notation Max Points on a Li
  6. scrapy-redis mysql_Scrapy-redis 分布式
  7. dubbo 服务压测_全链路压测资料汇总——业内大厂解决方案
  8. Git撤销文件的修改(git checkout -- file)(git reset HEAD file)(git reset HEAD~)
  9. C++排序之stable_sort()的方法
  10. matlab 箱图不显示异常值_欧姆龙E5EZ温控器PV显示值跳动异常的处理,一看就懂...
  11. C++面试题-面向对象-构造函数和析构函数
  12. iOS---------- Safe Area Layout Guide before iOS 9.0
  13. 【sklearn第二十七讲】模型持久性
  14. 7.高性能MySQL --- MySQL 高级特性
  15. maiark京东短信登录
  16. linux把m4s格式转换mp4,批量将哔哩哔哩缓存M4S格式视频改成MP4格式
  17. sql数据库可以创建同义词_如何使用同义词简化SQL Server数据库对象的使用
  18. 长安居大不易--用大数据分析西安租房现状
  19. 嵌入式STM32F767BGT6规格STM32F767BIT6引脚图 32Bit MCU+FPU
  20. 艾美捷针对性检测—游离维多珠单抗ADA水平检测试剂盒

热门文章

  1. 深入理解Android:卷II
  2. 荣耀30s怎么升级鸿蒙,惊喜!4部荣耀手机可升级至华为鸿蒙系统,网友表示:终于等到了...
  3. DB2性能调整优化问题
  4. 基于Acgis从全球.nc数据中提取中国地图并计算地区CO2值
  5. spring-bean
  6. [日常训练] 藏宝路径
  7. 印象笔记Markdown样式美化 - window版
  8. 北京大学肖臻老师《区块链技术与应用》ETH笔记 - 5.0 ETH中GHOST协议篇
  9. 世上没有免费午餐:谈谈网络广告与节操
  10. 最新论文笔记(+16):K-Time Modifiable and Epoch-Based Redactable Blockchain / TIFS 2021