关于学习编程,我踩坑无数总结了如下五点建议

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

作者:毅航😜


前言

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

开端------入门JAVA

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

发展------走进Java web的世界

其实<<Java基础入门>>讲的很基础,但有一点不好的地方就是书中花费了大量的篇幅来介绍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的源码。我也不知道这次尝试能否成功,希望能成功吧!

相关推荐
书源丶20 分钟前
三十六、File 类与 IO 流基础——文件操作的「第一步」
java
刀法如飞26 分钟前
Go数组去重的20种实现方式,AI时代解决问题的不同思路
后端·算法·go
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题】【Java基础篇】第30题:JDK动态代理和CGLIB动态代理有什么区别
java·开发语言·后端·面试·代理模式
swipe1 小时前
别再把 AI 聊天做成纯文本:从 agui 这个前后端项目,拆解“可感知工具调用”的流式 AI UI
后端·langchain·llm
GetcharZp1 小时前
GitHub 爆火!纯 Go 编写的文件同步神器 Syncthing,凭什么成为程序员的标配?
后端
hERS EOUS1 小时前
SpringBoot 使用 spring.profiles.active 来区分不同环境配置
spring boot·后端·spring
DFT计算杂谈1 小时前
wannier90 参数详解大全
java·前端·css·html·css3
LucianaiB1 小时前
我用飞书多维表做了一个 AI 活动推荐智能体:每天自动催我别错过截止日期!
后端
marsh02061 小时前
43 openclaw熔断与降级:保障系统在异常情况下的可用性
java·运维·网络·ai·编程·技术
张健11564096482 小时前
临界区和同一线程上锁
java·开发语言·jvm