不同程序員
寫代碼確實有很大的水平差異,代碼格式、算法優劣,這些都能夠反應一個人的代碼水平,我就記得學生時代有個同學,他寫的前端代碼就是要比我們都寫得好一些,寫出來的界面也更美觀和合理一些,這就屬于天賦。今天就說三段代碼吧,這三段代碼真的是我覺得非常有意義的代碼,或者說我認為很漂亮。
王垠的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悟空問答原創文章,未經允許轉載、抄襲必究!