碧蓝右耳
写程序这种技能

写程序这种技能,要点不是在 "看懂",而是在 "会做"。

就像武术,站在操场边看别人打拳,再怎么看也是不懂的,亲自下场一遍遍的练,功夫就积累起来了。临敌时就靠身体的条件反射,哪里来得及去想为什么。

写代码也一样,不要去问,这个语法为什么是这样的,他就是这样规定而已。书上一定有例程,课后一定有习题。例程你仅仅是看了一遍,还是输入了一遍、还是默写了一遍,那效果是不一样的。书后的习题,你以为懂了会做了,你真的做过一遍,成功运行并得出结果了么。

练习武术的时候,每个动作其实都对应着假想的敌人动作。譬如这一下抬腿可能是要防御敌人的扫腿,那一下肘击可能是敌人颈脖处有个防御空当。程序也一样,阅读/默写程序的时候把程序里每个变量的数值变化过程推导一遍,自然就能知道,这个语句在这里起什么作用,那段代码块要实现个什么效果,以后自己遇到了类似的目标,也就有了借鉴。练武要想象你的敌人如何动作,才能进步。编程要明白内存和CPU的状态,才写得出程序。

程序其实就是指挥CPU来摆弄内存,把内存和CPU丢在一边弃之不顾,哪里还编得出什么程序。