经过无数踩坑,我总结了如下五点学习建议

2023年 10月 11日 49.3k 0

思考,输出,沉淀。用通俗的语言陈述技术,让自己和他人都有所收获。
作者:毅航😜

前言

如果你是一名Java开发者,不妨听一听笔者学习Java过程的这些惨痛经历,希望我的经历能帮对你学习有所启发。

开端——入门JAVA

想当年笔者还是一个名懵懂的在校大学生时,由于对未来充满迷茫,偶然之际听说Java似乎很好就业,所以就在网上买了一本Java相关的书籍开始自学Java。笔者至今还记得那本书叫做出版社是明日科技。如今已经过去大概六、七年的时间了,或许这本书也已经绝版了吧!也就是通过这本书笔者开始了解了Java中的基础数据类型,逻辑循环控制、异常处理、集合等内容,自此也就踏上了一条不归路

发展——走进Java web的世界

其实讲的很基础,但有一点不好的地方就是书中花费了大量的篇幅来介绍Java Swing组件,这让笔者当时产生一种错觉,就是Java Swing很重要,所以笔者曾花费大量时间去记忆Java Swing的组件信息,现在想来这样的做法真是好愚。通过这件事笔者总结出一条经验就是:当你研究某件事物时,一定要提前做好功课。 比如,当下这个事物是否还是主流、其是否受到业内人士的高度认可、是否有成熟的生态体系等。不对技术发展现状有一个清晰的认识及评估,最后所面临的结果可能就是“竹篮打水一场空”,看似学了很多,但后续工作基本用不到。

好在笔者及时止损,才未在错误的道路上越走越远。在笔者后续的学习过程中,笔者逐渐了解到有一个名叫Bilibili的视频平台,上面有很多的学习视频,所以笔者的自学方式又从看书转移到看视频。

那会像什么黑马、尚硅谷这些机构还名不见经传,那会B站能搜到有关Java相关的视频主要还是尚学堂的,转换学习方式后,笔者又断断续续的跟着视频将Java基础重新学了一遍。

再后来,由于新学期课业压力很大,有时一天要上七八节课,所以学习荒废了一段时间。等笔者在重新回看之前所学内容时,发现之前学的都忘得差不多了,所以笔者只能又重新跟着视频再学习了一遍Java基础。

经历过此事,笔者总结出的第二点经验就是:学习一件事物一定要持之以恒,切勿三天打鱼两天晒网,即使不能坚持每天都学习,也要保证隔个两三天就要对之前学习的内容进行总结回顾。 否则,你有可能陷入这样一种困境,就是一直不断的重复学习相同的内容,然后给自己一种错觉,自己很努力,但结果却总是差强人意,造成这个问题的本质原因就在于你一直在原地踏步!

至此笔者已经学了不下三遍的Java基础了,再后来笔者就开始学习Java Web相关的知识了,那会这部分内容笔者是跟着传智播客的视频学习的,现在好像这个机构和黑马合并了,反正已经很少听到了。

那会Java Web的开发模式还是Servlet + Jsp组合形式,开发起来十分繁琐,尤其在Jsp页面既可以写Java逻辑,也可以写前端相关内容,这使得整个页面十分的混乱。为了写好页面,笔者还曾自学过前端的相关知识,比如Html、CSS,javaScript、nodeJs等。

按理来说,学到东西多了应该对未来更加坚定了,但结果却恰恰相反,那时的我反而更加迷茫了。其实主要迷茫于职业选择,自己匜搞不清自己未来到底是从事前端还是后端开发。因此 笔者总结出的第四点经验就是:不要让脑海中充斥太多概念,太多的概念意味着你有着更多的选择,更多的选择权往往会使你就会变得焦虑、迷茫,从而不断内耗。 这一点在你阅读源码时尤为重要,你有时觉得源码难读,本质原因就在于你在脑海中塞入了太多的无关紧要的类。比如,你要分析Spring中容器加载的过程,然后对这源码一顿DeBug,进而不断在各个类之间进行跳转,最后结果只能是给自己绕晕了。所以,你一定要学会做减法

何为做减法?其实很简单就是对所学内容进行总结提炼。注意这里的总结不是让你长篇大论去论述,而要做到短而精,尽量用简短话来陈述,当然这个过程并不是一蹴而就的,它需要你不断的迭代,不断的思考,而正是凭借着一次次的思考,才让你不断对某项技术有了更加清晰的认识。 一言以概之,学习知识是一个由厚到薄的一个过程。

深入——接触框架源码

学习完Java Web原生的开发手段,下一步也就顺理成章的进入到了框架的学习。那会的框架还是SSH、SSM这一套东西,尤其SSM的整合要配置很多东西,有时候版本配置的不一致都可能导致整个项目无法启动,笔者在这上面没少踩坑,为此笔者还专门记过Spring整合Spring、Mybatis的过程,今天在回看,这又是在做无用功。因为SpringBoot框架的出现,让Web应用的开发只需引入几个相关的Stater就能完成。

此外,笔者那会还听网上很多人都在说读源码如何如何重要,那会笔者就傻傻的开始研究框架源码,由于笔者当初水平有限,阅读源码的过程那是非常的痛苦,因为根本不知道如何去看,有段时间直接开始摆烂。因为真的太难了。在没人指引的情况下,我也不知道该如何去看,就傻傻的设置一个断点然后一通乱Debug

再后来,我开始接触一些机构有关源码的培训视频,例如,慕课网、咕泡、黑马、尚硅谷等,基本市面上的源码分析课我都大致看过。虽然看了很多视频,但我依旧很焦虑。每个平台的教学风格都有所不同,有些内容你表面看着“很新”,但换汤不换药,只不过是一种概念的两种不同理解罢了。为此,笔者得出的第五点建议就是:学习之初不要贪“多”,认定一个方向就坚持去做,不要被外界的声音所干扰。 只有当你对一件事物足够理解后,你再去广泛的涉猎,否则什么都学只会害了你自己。

无论何时一定要记住:人一定要有自己的想法,千万不要人云亦云。 就比如别人告诉你算法 很重要,你听了然后开始去钻研算法,其他啥也不做,每天就是刷算法题。我并不是说算法不重要,而是想说人应该有自己的想法,不应该人云亦云。 笔者最开始就是别人说啥自己就信啥,没有一点自己的想法,今天听别人说源码重要,我就去研究源码;明天听别人说算法重要,我就去天天刷leetcode。最后看似做了很多,但都是无效的。人在学习时一定要有自己的规划和思考,否则只会被别人牵着鼻子走。

除此之外,还有最重要的一点就是不要自我否定,自我怀疑。 现在网上夸夸其他的标题随处可见,比如,“学习某某一周,我开发了某某软件”,你点进去一看,人家做的确实很棒。此时的你可能就开始自我怀疑了,怎么人家学一周就能做出这样的东西,我学了大半年还是不见起色。如果你有这样想其实你已经陷入无休止的自我内耗了,你可能只看到人家学了某某语言一周,但你不知道的是人家可能之前接触过相类似的语言

我们每个人都有属于自己的时区和人生,没必要拿自己去和他人比较,他人可能确实很优秀,但你也不差,所以千万不要妄自菲薄。有些东西需要厚积薄发,所以不要只是做了某些微小的努力就急着去渴求得到回报,有些东西急不得,慢慢来,比较快。

结语

如上就是笔者在学习Java过程的要的一些,以及小总结,希望能帮助到你。

此外,有关框架的后端常用框架的分析笔者已经写了两个专栏了,分别是:Mybatis源码分析和SpringMVC流程分析。后续,笔者也会分析Spring的相关源码,并且自己动手模拟实现一款mini版的Spring,这也是笔者一直以来的一个小愿望。所以在后续的日子笔者会以一种源码分析 + 自实现的方式来进行拆解Spring的源码。我也不知道这次尝试能否成功,希望能成功吧!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论