程式設計是個很複雜的玩意,但是成就優秀程式員的很多因素和我們在學校中早期學到的相差無幾。本文靈感來源于Robert Fulghum的《All I Really Need to Know I Learned in Kindergarten》。
1.分享
盡可能地使用開源,并且如果有能力的話也可以把自己的成果分享給大家。整個社會的智慧結晶肯定比一些大公司自管自閉門造車要好。
2.公平的心态
不要以為你的選擇就是唯一能奏效的,試試其他技術、架構、方法和建議,也許其他的選擇比你原先的好也未可知。要用開放的心态去對待任何方法和抉擇。
3.不可攻擊他人
如第2條所言,不要因為别人恰巧使用的是.Net、Java或PHP這些技術就随意攻擊他們(我在這方面有過教訓)。有時,這些你看不上眼的技術或許要比你想象的更有用。隻要你懷着一種平和的心态,你就可以從他們那裡學到很多東西,殊不知,海納百川,有容乃大。
4.解決自己的爛攤子
自己的代碼自己負責。永遠不要指望QA能幫你找到所有的bug。經常全面地測試自己的代碼。
5.不是自己的東西不要拿
得到許可後方可使用,偷偷用了事後再聲稱自己無辜是可恥的。
6.如果傷害了别人要說對不起
代碼審查是一個相當不錯卻又很少使用的主意。指導經驗比你少的程式員,有助于整個團隊的發展。但是切記不能公開批評他人。指導并不意味着貶低别人。在得到指導時,有的人會接受,有的人則不會。要記得有時候,從那些水準不及你的人身上,你也能學到很多東西。絕對不能門縫裡看人——把人看扁了。
7.有備而來
在正式開工寫代碼之前要先做個徹底的了解。做原型、從網上搜尋執行個體、和其他也做這個的人讨論或者先練練手。什麼都不知道就着手建構你從未嘗試過或使用過的東西簡直就是“自作孽不可活”。如果打一開始就有線索有思路,得到的結果可能會更好更有成效。
8.拿得起放得下
不要畏懼替換、重寫、重構甚至是直接删掉代碼。有時候,如果碰到可留可不留的代碼,直接扔掉就是了。不要對你的代碼死纏爛打,不肯放手。
9.舒适的工作環境
對,要想程式員能高效程式設計,一個好的工作環境是不可或缺的。一把舒适的椅子,一個安靜的工作場所、一代高配置的電腦以及各種有助于程式設計的工具都應該配備齊全。經理避免一些瑣事去打攪到手下的程式員。而作為一個程式員,也不必忍氣吞聲、給人做牛做馬,如果老闆對你不好,換個就是了。
10.保持生活的平衡——學習、思考、繪畫、唱歌、跳舞、工作、玩耍,每天都應該活得豐富多彩
我非常欣賞谷歌的工作方式,它會建議你花上20%的時間用來思考任何你認為值得做的事情。此外,谷歌還提供專門的休息室、遊戲房和其他一些能用來放松自己的場所。因為程式設計是一種高強度的腦力活動,有時候你的大腦真的非常需要稍作休息。不要盲目地不管不顧自己的身體,“工作狂”絕對是不可取的生活方式。每周工作80小時,聽上去很牛掰,但是你的工作效率肯定要打一個問号,甚至一不小心會犯個不可饒恕的小錯誤然後前功盡棄。
11.下午打個盹
就算我們把一天24個小時全都用來寫代碼,成果也不會更多。停下來、回家、然後打個盹。很多問題都是在我回家的路上解決的。有時候,我正在開車,或者是清早一覺醒來,答案就靈機一動出現在我腦子裡。
12.不要閉門造車
交流對于我們相當有好處:讀讀部落格、學學新語言和架構、讨論讨論話題、看看同行在做什麼。自掃門前雪,絕對成就不了一個優秀的程式員。閉門造車型的程式員終将被時代的潮流所淘汰。
13..保持好奇心。我們就像一粒粒種子,因為有着對外面世界的好奇,才能從土壤中探出頭來,親眼見證這個世界。
每天我們都能看到有新鮮事物出現在程式設計世界裡。帶着“Why”去一探究竟。每天都學點新知識,擴寬自己的視野,重新整理自己的技能,讓自己跟得上時代前進的步伐。要是你覺得程式設計枯燥又乏味,那麼也許你可以考慮換一行。