应用驱动学习与三月聚粮
原文发表于2017-05-28
当我学高级语言的时候,我知道编译器是把代码编译成中间(汇编)代码;当我学汇编语言的时候,我知道汇编器是把汇编代码编译成机器码;当我去了解机器码的时候,我就必须面对一个真实的CPU了,这个CPU有各个组成单元,内部是各种元件和电路。
如果再进一步挖掘下去,我想会是这样:当我了解这些元器件的时候,我发现我必须知道半导体物理;当我看半导体物理的时候,我想我该知道点量子力学;当我看量子力学的时候,也许会追踪玄虚的超弦理论并遐想微观世界。
这种思维链可以很长 。是的,世界充满了未知,但没有必要都去探索,因为吾生也有涯,而知也无涯。应用驱动学习或许是一个比较好的方案,有需要再去看相关内容,没需要就不理会。另一方面,适千里者三月聚粮,没有量的积累何来质的飞跃?没有潜心的学习何来天高任鸟飞的那一天?
这两种思想都是从现实出发,也都有指导意义,区别在于一个站在现在的立场,一个将目光投向未来。孰是孰非?具体问题要具体分析。
作为一名非计算机专业的软件从业人员,对我来说,了解CPU的工作机理或许对我的发展有意义,但了解半导体物理和量子力学就没什么意义了,此时应秉承应用驱动学习的策略,够用就好。
另一方面,由于非科班出身,我发现我没学过一些关键性课程,如《离散数学》、《计算机科学概论》等。尽管在没学过这些的情况下我也编过不少程序,可当我翻阅这些书的时候,还是有“洞天石扉訇然中开”之感,心中顿时“云销雨霁彩彻区明”。那么对于这些书,应该好好看,作为战略性知识储备。
不过有些时候,知识有用没用,值不值得学并不好判断,一不留神就会偏离正常的航道。比如前面提到过了解CPU的工作机理或许对我的发展有意义,那么一个合理的推论是如果能自己做一个CPU自然对其机理理解会更深刻,从而有利于我的发展。真是一个可怕的诱惑!我是搞软件的,不是搞硬件的,我了解CPU是为了增强编程的底气,而不是为了造CPU,花大量时间研究CPU对我来说没有任何意义。
何时应用驱动,何时聚粮三月,真是一个值得思考的问题。具体问题具体分析,在分析之前,我想应该首先对这个问题作出回答:你想要干什么?