不同的程序员
代码编写水平确实有很大的差别,代码格式和算法的优劣都可以体现一个人的代码水平。我记得我学生时代的一个同学,前端代码写得比我们所有人都好,写出来的界面更美观合理,这是天赋。今天来说三段代码。这三段代码对我来说真的很有意义,或者说我觉得很美。
王银的四十行代码《王银》,这两年肯定听得少了,但至少在我读书的日子里,听过不少故事。作为一名CS专业的学生,我为自己感到骄傲,但我不得不说王银真的让我钦佩,我不得不承认王银真的是一个有才华的人。甚至可以说他是这一领域的天才,但也因为他的个性,他没能取得任何有代表性的学术成就。
王银的这几行代码,说实话,作为一个Lisp和Scheme函数式编程的业余爱好者,我大部分时间只是用Emacs写C/C++代码,不太可能花太多时间学习函数式编程。然而,以我的一点知识,王银的代码真的很棒。我甚至认为,王银的长处不在于他对CPS算法的巧妙实现,而在于他真正优秀的思维能力。
去年,王银去阿里面试。曾在工作的赵亲自采访了他。大家都知道赵在阿里的排名是P10。采访结束后,对赵颇有微词,甚至上升到他对阿里的不满。这次采访不仅引起了恐慌,最后还拒绝了一次热烈的讨论。后来,赵亲自出来解释。
Vi写下第一条视觉线“Hello World”。想必大家都知道和丹尼斯·里奇一起开发C语言和Unix系统的大神肯·汤普森。可以说,肯·汤普森是我们这个行业的鼻祖。
当时没有可视化环境,老人也没能创造出Unix的可视化开发工具。后来,老人回到母校加州大学伯克利分校,仍在那里上课。老人在机房转悠的时候,随便写了一个Pascal编译器,由于时间紧,并不完善。一个叫比尔·乔伊的学生发现了这个编译器的问题,他着手改进它。
当这个编译器改变时,没有可视化IDE来继承开发环境。比尔·乔伊还用了老头写的前任编辑。很快他改进了这个Pascal编译器,很受伯克利学生的欢迎。但他开始对前任编辑不满,于是给前任编辑加了一个视觉模式。这个编辑器一直在进化,最终成为了现在的vi编辑器,后来又发展成了Vim,这是一个和Emacs同名的文本编辑器。
Google C++风格每个程序员都应该养成良好的编码习惯。这些书都可以帮助你养成良好的代码习惯,比如《代码百科》、《编程明珠》、《代码之美》等。还有一些比较知名的书籍如C Trap,Effective Java等,可以帮助你规避开发风险。
除了这些,我觉得Google C++风格是每个程序员都应该看看的。Google的C++代码规范可以说是目前为止整个行业最好的工业代码规范,是Google在C++大厂多年的工业实践留下的精华。基本上要注意的是,可以避免的坑,基本上已经给你解决了。一个好的程序员,你的代码必须具有可维护性和可读性,Google C++代码规范可以帮助你养成良好的代码习惯。
在我看来,程序员不管是从事科研还是立足于工业,都应该有一个原则,就是写有价值的代码,不管是做学术产品还是工业产品,都要对你写的代码尽可能负责,要写可维护的代码,保证你写的代码可读性高。这样的代码才是真正美丽的代码。
本文为作者EmacserVimer 空回答原问题。未经许可转载抄袭必究!