关于java:像Swing这种已经不太用的技术大学还在教到底要不要学

30次阅读

共计 2723 个字符,预计需要花费 7 分钟才能阅读完成。

始终以来,写日常问题、前沿技术和架构思考类的文章比拟多,明天为什么忽然来说说 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,分享其余中央看不到的常识与思考

正文完
 0