為什么我是世界上最好的程序員?
我這個(gè)人比較謙虛,不好意思自個(gè)夸自己。所以請(qǐng)?jiān)试S我從《McConnell’s Code Complete 2.0》一書中摘錄其關(guān)于個(gè)性的篇章來說明:
編程的強(qiáng)烈內(nèi)在本質(zhì),使得個(gè)性顯得尤為重要。連續(xù)8小時(shí)將注意力集中在代碼上有多難,你也是知道的。你應(yīng)該也有過因?yàn)榍耙惶炀襁^于集中導(dǎo)致第二天 完全精疲力竭的經(jīng)驗(yàn)??赡苌衔?點(diǎn)到下午2點(diǎn)之間你還能專心致志,但是一過這個(gè)點(diǎn)就有一種想放棄的感覺。盡管你并沒有放棄——但是,從下午2點(diǎn)到下午5點(diǎn) 你任由渾渾噩噩的頭腦支配你編碼,然后再花大量時(shí)間來修復(fù)這段時(shí)間寫的代碼。
編程工作基本上是不受人待見的,因?yàn)闆]有人能夠真正了解你的工作內(nèi)容。我們都有過這樣的項(xiàng)目,在項(xiàng)目中我們花了80%的時(shí)間用于研究我們覺得有趣的小片段,20%的時(shí)間則用來建立剩下80%的程序。
雇主不能強(qiáng)迫你成為一個(gè)優(yōu)秀的程序員:甚至很多時(shí)候他們也沒辦法判斷你是否優(yōu)秀。如果你想成為偉大的程序員,那么你得負(fù)責(zé)讓自己變得偉大起來。而這是你的個(gè)性問題。
可取的個(gè)性特征列表的榜首往往是謙遜:
沒有人能真正足夠聰明到可以駕馭計(jì)算機(jī)編程。哪怕是充分理解一個(gè)普通的程序也需要具備消化吸收理解它們的能力。你將你的聰明勁往哪里使以及使用的方式比你有多少聰明更重要。
在1972年的圖靈獎(jiǎng)講座上,Edsger Dijkstra發(fā)表了一篇題為《The Humble Programmer》 的文章。他認(rèn)為,大部分編程是為了彌補(bǔ)IQ的局限。那些最擅長編程的人也是能認(rèn)識(shí)到自己IQ不是那么高的人。他們很謙虛。而那些最不擅長編程的人,往往拒 絕接受這樣一個(gè)事實(shí),即他們的頭腦無法勝任任務(wù)。他們的自尊心阻礙了他們成為偉大的程序員。你越是學(xué)習(xí)彌補(bǔ)IQ的不足,你就越能成為更好的程序員。你越謙 虛,提高得就越快。
許多好的編程習(xí)慣其目的就是為了減少腦細(xì)胞的負(fù)載。你也許會(huì)認(rèn)為編程的上策是開發(fā)心智能力,這樣就不需要那些輔助編程的“拐杖”了??赡苣銜?huì)認(rèn)為那 些使用“拐杖”的程序員低人一等。但是,根據(jù)經(jīng)驗(yàn)表明,那些謙虛的程序員,由于會(huì)去彌補(bǔ)他們?cè)诰幋a中犯下的錯(cuò)誤,所以他們的代碼錯(cuò)誤更少,代碼更容易為自 己和他人所理解。真正的下策應(yīng)該是那些既犯錯(cuò)誤又拖延時(shí)間的方式。
當(dāng)給應(yīng)聘人員面試相關(guān)編程職位的時(shí)候,我一直在找那些敢于在需要的時(shí)候說“我不知道”的人。那些不能和不愿意這么做的應(yīng)聘人員,我會(huì)在心里給他們打個(gè)叉,因?yàn)檫@些類型的程序員是危險(xiǎn)的。“我能,我知道”雖然聽上去挺美,很有誘惑力,但實(shí)際上既膚淺又有危害。
開發(fā)博客的世界難道不像一個(gè)令人震撼的不斷噴射知識(shí)的源泉——同時(shí)亦是令人難以置信的謙遜?有那么多的人寫博客,其中不乏這個(gè)領(lǐng)域的大咖,比我聰明比我優(yōu)秀。
但是,我們的工作不是比別人更優(yōu)秀:我們只需要比我們一年前更優(yōu)秀就可以了。
ps:本文標(biāo)題意在諷刺。以防萬一,特此聲明。
譯文鏈接:http://www.codeceo.com/article/why-i-am-best-programmer.html
英文原文:Why I'm The Best Programmer In The World