很多技术人都很迷茫,觉得自己做的项目没有技术含量,成天就是卖苦力。技术的东西,日新月异,有些人总在忙于追求热点新技术,东学学、西学学,平时泛泛地看技术书籍、技术文章,但始终根本抓不住技术的本质,干了三五年之后,感觉并没有积累到什么东西,跟刚毕业的大学生能力差不多,因此深深的感到焦虑。
实际上,本质的原因,还是我们没有掌握到,做为程序员,我们该积累什么东西?是各种知识、技术本身吗?我觉得不是,我觉得最应该积累的是“能力”。
能力就像是内功,而知识就像是招式。知识会过时,而能力永远都不会过时。初级程序员才比招式,高级程序员只看内功。
对于一个程序员来说,如何修炼内功呢?首要是打好基本功,比如掌握操作系统、编译原理、数据库理论等,但最基础的应该就是扎实的掌握数据结构和算法了。
又快到校招季节了,群里的小伙伴最近问的最高频的问题就是算法相关的,并且问有没有一些好的学习资料。这件事情上,小灰是有发言权的,为了画好漫画,小灰基本上几乎研读了市面上所有的算法教程。
尽管有很多资料讲得的通俗易懂,也有很多书籍全面、经典,但是大部分都偏理论,书中的例子也大多脱离真实的软件开发。看完书之后,很多人只是死记硬背了一些知识点而已。这样填鸭式的学习,对于锻炼思维、开拓眼界并没有太多作用。而且,从基础理论到应用实践,有一个非常大的鸿沟要跨越,这是大学教育的普遍不足之处,这也是为什么我们常常觉得大学里学过的很多知识都没用。