@Yano
2016-06-28T18:45:07.000000Z
字数 980
阅读 1692
读书感悟
什么是编程?人们对此一直各持己见。有人说它是科学
,有人说它是艺术
,还有人称之为技能
或手艺。我认为这三方面兼而有之。我们喜欢说它蕴含大量艺术成分,但是我们都知道它里面更多的是科学。
我觉得代码清单带给人的愉快同整洁的家差不多。你一眼就能分辨出家里是杂乱无章(比如垃圾和没洗的碟子到处乱扔)还是整洁如新。
编程的第一步是想象
。就是要在脑海中对来龙去脉有极为清晰的把握。在这个初始阶段,我会使用纸和铅笔。我只是信手涂鸦,并不写代码。我也许会画些方框或箭头,但基本上只是涂鸦,因为真正的想法在我脑海里。我喜欢想象那些有待维护的结构,那些结构代表着我想编码的真实世界。
一旦这个结构考虑得相当严谨和明确,我便开始写代码。我会坐到终端前,或者换在以前的话,就会拿张白纸,开始写代码。这相当容易。我只要把头脑中的想法变换成代码写下来,我知道结果应该是什么样的。大部分代码会水到渠成,不过我维护的那些数据结构
才是关键。我会先想好数据结构,并在整个编码过程中将它们牢记于心。
假装每时每刻都很快乐是做作。就像运动员所说的:“要是没受伤的话,肯定是你还不够努力。”
代码的效率还会随着开发同一个程序的人员数量的增加而有所降低。最高效的程序往往是一个人
写的。
还有其他不少有意思的事情,我也乐此不疲。我对埃及象形文字略知一二。学习其他语言、旅行和观察世界都是很不错的活动,我不介意做这些事情。
获得这些经验的同时也失掉了年轻时拥有的活力。随着年龄的增长,我也许不会再犯那么多错误,但是我也无法再像以往那样充满活力,精力充沛。
好程序在于它能保持平衡,而不是靠什么奇技淫巧。
如果不能确认数据结构
是正确的,我是决不会开始编码的。我每次废弃代码的时候,通常是因为底层的数据结构太糟糕,而不是因为所采用的算法。
你是问我是否觉得工作乏味吗?我不觉得。在度假的时候,我期待着再次回到工作中。
我喜欢在坐下来编写代码之前先把整个设计方案构想清楚。而在完成代码后,我喜欢回去把它从头到尾再全部重写
一遍。
我和一个人谈谈他的程序,马上就能知道他是否是个好程序员。如果他真的很棒,每个细节
他都会脱口而出。
如果和一个优秀的程序员聊一聊,你会发现他对他使用的工具非常熟悉,就像一个画家了解他的画具一样。
我得到的一个忠告就是尽可能推迟编码
。一旦写了一堆代码后,就很难改变方向了。它就好比混凝土一样成了阻碍。