具備這些特性 說明你是個優(yōu)秀程序員
編程是個很復雜的玩意,但是成就優(yōu)秀程序員的很多因素和我們在學校中早期學到的相差無幾。本文靈感來源于Robert Fulghum的《All I Really Need to Know I Learned in Kindergarten》。
1.分享
盡可能地使用開源,并且如果有能力的話也可以把自己的成果分享給大家。整個社會的智慧結晶肯定比一些大公司自管自閉門造車要好。
2.公平的心態(tài)
不要以為你的選擇就是唯一能奏效的,試試其他技術、框架、方法和建議,也許其他的選擇比你原先的好也未可知。要用開放的心態(tài)去對待任何方法和抉擇。
3.不可攻擊他人
如第2條所言,不要因為別人恰巧使用的是.Net、Java或PHP這些技術就隨意攻擊他們(我在這方面有過教訓)。有時,這些你看不上眼的技術或許要比你想象的更有用。只要你懷著一種平和的心態(tài),你就可以從他們那里學到很多東西,殊不知,海納百川,有容乃大。
4.解決自己的爛攤子
自己的代碼自己負責。永遠不要指望QA能幫你找到所有的bug。經(jīng)常全面地測試自己的代碼。
5.不是自己的東西不要拿
得到許可后方可使用,偷偷用了事后再聲稱自己無辜是可恥的。
6.如果傷害了別人要說對不起
代碼審查是一個相當不錯卻又很少使用的主意。指導經(jīng)驗比你少的程序員,有助于整個團隊的發(fā)展。但是切記不能公開批評他人。指導并不意味著貶低別人。 在得到指導時,有的人會接受,有的人則不會。要記得有時候,從那些水平不及你的人身上,你也能學到很多東西。絕對不能門縫里看人——把人看扁了。
7.有備而來
在正式開工寫代碼之前要先做個徹底的了解。做原型、從網(wǎng)上搜索實例、和其他也做這個的人討論或者先練練手。什么都不知道就著手構建你從未嘗試過或使用過的東西簡直就是“自作孽不可活”。如果打一開始就有線索有思路,得到的結果可能會更好更有成效。
8.拿得起放得下
不要畏懼替換、重寫、重構甚至是直接刪掉代碼。有時候,如果碰到可留可不留的代碼,直接扔掉就是了。不要對你的代碼死纏爛打,不肯放手。
9.舒適的工作環(huán)境
對,要想程序員能高效編程,一個好的工作環(huán)境是不可或缺的。一把舒適的椅子,一個安靜的工作場所、一代高配置的電腦以及各種有助于編程的工具都應該 配備齊全。經(jīng)理避免一些瑣事去打攪到手下的程序員。而作為一個程序員,也不必忍氣吞聲、給人做牛做馬,如果老板對你不好,換個就是了。
10.保持生活的平衡——學習、思考、繪畫、唱歌、跳舞、工作、玩耍,每天都應該活得豐富多彩
我非常欣賞谷歌的工作方式,它會建議你花上20%的時間用來思考任何你認為值得做的事情。此外,谷歌還提供專門的休息室、游戲房和其他一些能用來放 松自己的場所。因為編程是一種高強度的腦力活動,有時候你的大腦真的非常需要稍作休息。不要盲目地不管不顧自己的身體,“工作狂”絕對是不可取的生活方 式。每周工作80小時,聽上去很牛掰,但是你的工作效率肯定要打一個問號,甚至一不小心會犯個不可饒恕的小錯誤然后前功盡棄。
11.下午打個盹
就算我們把一天24個小時全都用來寫代碼,成果也不會更多。停下來、回家、然后打個盹。很多問題都是在我回家的路上解決的。有時候,我正在開車,或者是清早一覺醒來,答案就靈機一動出現(xiàn)在我腦子里。
12.不要閉門造車
交流對于我們相當有好處:讀讀博客、學學新語言和框架、討論討論話題、看看同行在做什么。自掃門前雪,絕對成就不了一個優(yōu)秀的程序員。閉門造車型的程序員終將被時代的潮流所淘汰。
13..保持好奇心。我們就像一粒粒種子,因為有著對外面世界的好奇,才能從土壤中探出頭來,親眼見證這個世界。
每天我們都能看到有新鮮事物出現(xiàn)在編程世界里。帶著“Why”去一探究竟。每天都學點新知識,擴寬自己的視野,刷新自己的技能,讓自己跟得上時代前進的步伐。要是你覺得編程枯燥又乏味,那么也許你可以考慮換一行。
14.所有事物都會逐步趨向衰退滅亡,誰都無法抵抗。
代碼也會慢慢發(fā)舊直至死亡。這時候你能做的就是把它們埋葬,然后再重新寫過。不要為了省錢而繼續(xù)維護那些費力不討好的代碼!
15.還記得《雌雄大盜》這本書嗎,我們學到的第一件事就是——“看”。
如果你不自己親自去試試,那么你永遠也學不到東西。我在編程中學會的所有東西全都來自于我的親身實踐。每天早上,我會廣泛瀏覽網(wǎng)站,看看我們的編程 世界有什么新鮮事情發(fā)生。從80年代初我得到第一份工作開始,我就一直保持了這個習慣。(那個時候網(wǎng)絡還沒普及,我主要是看目錄和雜志。)
當你已經(jīng)有了5年的工作經(jīng)驗,在你眼中編程其實就是小菜一碟了。