|
学习能力,语言能力,读码能力,分析能力,加班能力等等,
到底什么能力对工程师最重要,答案是推演能力。
什么是推演能力,当你手头有个需求的时候,
可以推演出提需要的人为什么会提需要,
这个需要解决了什么问题,你站在他的立场上用程序如何解决问题,
使用那些方案解决问题,这些方案利弊如何,效率如何,
哪些还是工程的盲点需要试验等等等等。
最简单的培养推演能力的方法是读开源代码,尤其是一些有针对性的开源代码,
早年我读过emule的代码,这个代码很多很大很复杂,
如何开始读而不会迷失在代码海洋?这就靠你的推演能力。
首先使用这个软件,推测软件主要功能是什么,解决了那些问题。
看代码主要流程是如何实现的。
把自己换做代码的作者,问自己你会如何做,怎么做,至少怎么开始做。
想出一个大概之后,再回去读代码会有恍然大悟的感觉,感觉好些问题是没有想到的,
这些没有想到的问题你又会如何解决,读代码的过程中要不断问自己,代码作者为什么这么做,
在什么样的外部条件下这些代码会执行,换做自己会如何写这样的代码,利弊如何,效率如何。
这样就会在自己的大脑里从代码里推演出,代码作者所面临的环境和问题,
反过来看代码作者写的代码就是所给出的答案,并且这个答案不一定是最好的。
你就会给出一个更好的答案写一份更好的代码。
|
|