不同程序员
写代码确实有很大的水平差异,代码格式、算法优劣,这些都能够反应一个人的代码水平,我就记得学生时代有个同学,他写的前端代码就是要比我们都写得好一些,写出来的界面也更美观和合理一些,这就属于天赋。今天就说三段代码吧,这三段代码真的是我觉得非常有意义的代码,或者说我认为很漂亮。
王垠的40行代码王垠这个人,这两年想必大家听得比较少了,不过至少在我读书那个年代,是听到过不少的故事的,作为一个CS专业的科班生,我自己也算是骄傲的,但是不得不说王垠确实还是让我很佩服,得承认王垠确实是个很有才华的人,甚至可以说他在这个行业算是一个天才,也是因为性格的原因,他没能取得什么代表性的学术成就和工业成就。
王垠这几行代码,说实话作为一个半吊子的Lisp和Scheme函数式编程业余爱好者,我大多数时间也只是用Emacs写C/C++代码而已,不太可能用太多时间来学习函数式编程,不过用我仅有的一点知识来看,王垠这段代码确实还是很出色的,我甚至认为王垠厉害之处不在于他精妙地实现了CPS算法,而是他的思维能力确实不错。
去年王垠去了阿里面试,是曾经在Facebook工作过的赵海平亲自面试,大家也都知道赵海平在阿里的职级是P10,面试之后王垠对于赵海平颇有微词,甚至上升到了对阿里的不满,这次面试不光是闹得不慌而散,最终还嫌弃了一番热议,后来赵海平还亲自出来解释。
vi写下第一行可视“Hello World”想必大家都知道肯汤普森,就是和丹尼斯里奇一起开发了C语言和Unix系统的那位大神,可以说肯汤普森是我们这个行业的祖师爷了。
那时候没有可视化的环境,老爷子也没能给Unix打造一个可视化的开发工具,后来老爷子回到自己的母校加州大学伯克利分校,他还在那里开了课,在机房闲逛的时候,老爷子随手写了一个Pascal编译器,不过因为时间紧确实不太完善,一个叫做Bill Joy的学生发现了这个编译器的问题,他就着手想把这个编译器改好。
改这个编译器,那时候也没有可视化IDE继承开发环境,Bill Joy同样用的是老爷子写的EX编辑器,很快他就把这个Pascal编译器改好了,改好了之后深受伯克利学生喜欢,不过他开始对ex编辑器不满了,于是他就给ex编辑器加了可视化模式,这个编辑器一直演化,最终也就成为了现在的vi编辑器,后来发展成Vim已经很完善了,Vim是跟Emacs齐名的文本编辑器。
Google C++ Style每一个程序员都应该养成好的代码习惯,《代码大全》、《编程珠玑》、《代码之美》等等这些都是帮你养成好的代码习惯的书籍,还有些大名鼎鼎的《C陷阱》、《Effective Java》等书籍,这些书籍又能够帮助你很好的规避开发风险。
除了这些之外,我觉得Google C++ Style是每一个程序员都应该看的,Google的C++代码规范可以说是目前为止全行业最好的工业代码规范,是Google多年来C++大厂工业实践留下的精华,基本上该注意的,能够回避的坑基本上都帮你解决掉了。一个优秀的程序员,你的代码一定要是可维护的,可读性还要高,Google C++代码规范能够很好的帮你养成好的代码习惯。
在我看来程序员不管是从事科研还是立足于工业,都应该有一个原则,那就是写有价值的代码,不管是做学术产品还是做工业产品,尽可能为你写过的代码负责,要写可维护的代码,保障你写过的代码是可读性很高的,这样的代码才是真正漂亮的代码。
本文为作者EmacserVimer悟空问答原创文章,未经允许转载、抄袭必究!