程序员该如何保持一个稳定的自学心态?

程序员该如何保持一个稳定的自学心态?

喜欢我的都关注我了

程序员该如何保持一个稳定的自学心态?

1|计算机是一门实践科学

不要做学院派

一开始学习时,楼主看了许多帖子,里面的Java大神们都在说:要提高技术,就要不停地看源码,甚至自己造轮子……

年轻的楼主深受这种理论影响,不屑于搞业务而日日研究如HashMap源码这样枯燥的东西,甚至计划自己写一套collection framework,把大神们造过的轮子再造一遍,似乎只要写完这一套东西就能立地成佛,能搞定所有的业务和bug……

当我开始写HashMap的时候就发现,为了写而写是一种很蠢的行为。一个轮子内部的那些看似精巧繁杂的结构,存在的意义是为了让轮子更好更长久地运转,而不是工程师为了炫技而创造的。如果我们没有一个实用的目标,反而会浪费时间,迷失在一些看上去很神秘的细节中。其实,像HashMap这样的数据结构,只需了解它大致的工作原理就可以了,余下的代码细节可以在使用有疑惑或者出了问题时再去看。

程序员该如何保持一个稳定的自学心态?

◆ ◆ ◆ ◆ ◆

再比如,楼主看面试中总是提到JVM调优,因此觉得这是Java程序员进阶所必备的知识,于是就买了书和教程去看,但是发现对于调优这个话题看书效率奇低,书上比较多的是一些描述性的内容,如JVM的内存分布和垃圾处理算法;还有一些实用性的内容,比如调优工具、调优案例。有些内容反复看了又看,回想起来脑子里却不剩什么,远没有看完一个算法后的那种条理清晰的感觉。而花在这个问题上的时间却远远超过看算法的时间。

所以计算机是一门实践科学这句话一定要深刻理解。因为偏实践,所以不可能当王语嫣,因为许多理论是从实践中来的,好比数学公理,只能从实践中得到感性认识,无法从其他的理论推测得来,也无法死记硬背

从中总结出的方法论是:

  • 计算机科学的知识大多是偏实践的,学习这些知识不能只看理论,要依托于实践。
  • 实践和理论应该是两条互相缠绕的螺旋线,当实践无法继续进行时就去看理论,当理论看起来无法理解更深时就去实践。
  • 实践最好是一个项目,但大多数情况要自己提需求,寻找实践方法。可以是个人项目,也可以是自己的各种小demo等等,形式不限,学到就行。
  • 技术只是人们为了解决问题而创造的,包括那些听起来很高大上的框架和名词。只要怀着负责任的信念去做事一定会接触到各种各样的问题,面临问题自然会去思考解决方法,在这个思考的过程中,你实际上就开始接触了设计模式、JVM原理、计算机组成、网络协议等等…

文章结尾给想学java的同学发一波福利,这是我用5年的经验总结出的一套专门针对零基础想学java的学习资料,关注我,私信【学习】即可免费领取整套学习资料。


分享到:


相關文章: