如何学习基础知识

不论学习哪一样知识,都避免不了学习基础知识。

如果你学习Android开发,Google官方培训那一大本子(打包成PDF)都是必须掌握的。如果你学习Linux,系统的结构、常用指令、术语、网络、内核等等一大堆,都是必须掌握的。如果你想搞独立游戏,设计理论、游戏策划、游戏引擎、图像设计,这一大堆,也都是必须掌握的。如果你学习统计学,更不用说,一本一本的教材,都是基础理论,都是要你掌握的。

这一大堆一大堆的,就叫基础知识。基础知识的最大特点就是数量大、范围广。能用Python编写一个Hello world不叫入门,学完Python编码规范、标准库,写了几个小Demo之后,才能叫入门。基础知识的第二个特点是,难度通常不大。对于具有一定学习能力的头脑来说,基础知识好像是一系列约定俗成,可理解的东西很少。例如我要在Cocos2D-X上显示一个人物,你就要创建一个Sprite,步骤都是固定的,你记住这几行代码,在需要的时候,打进去就行了。至于为啥一个人物的图像非要叫做精灵,这就是约定俗成。

如何有效地学习基础知识?我总结为六个字:有耐心、重速度。

首先是有耐心。一定要把上面说的那些必须要掌握的掌握全面。这就是我们通常说的打基础。我们都是参加过高考的人,为什么考试的分数不高?往往原因都在基础不好。在任何学习中都是这样,基础打得好,在运用的时候就不至于扯着蛋。对于码农而言,这是关乎个人存亡的大事,你这一时半会儿基础没打好,余生就搭在Debug这个坑里,反劫不复了。

其次就是重速度。基础知识,说到底,不是高深的玩意儿。你学习到一点,也绝没有什么值得骄傲的东西。这个道理很多人不懂(包括我以前)。比如说最近热门的Go语言、大数据,很多人冲着新鲜去学习。结果好了,满中文网络都是「开发环境搭建」、「hello world」、「什么是全概率公式」。学到一点就飘飘然,赶紧写篇博客出来,照他们这样的速度,什么浪潮也赶不上了。

基础知识,没什么高深的,会了就是会了。学习基础知识不是要你一边学习一边写书的,是要你学了之后,能够实实在在做点东西出来的。所以说,对于这种平庸的东西,没有必要浪费时间,加足马力,冲过去。

顺便说一句,我们看到的那些比较好的技术文章,往往都是深入下去的人回头写的。

最后,以上的这些话,其实都是我自己对自己说的。我偏偏就是这么个飘飘然的人。



  1. 如果没有用某种技术做出个东西(Demo,做出教程里的示例不算),我一般也不好意思说我会使用它。不过我懒得写博客总结,以后得好好记录下自己的点滴。