成为优秀程序员的方法就是抛开编程?
原文:How To Become a Better Programmer by Not Programming
作者:Jeff Atwood
我在2006年寫過一篇題為“Programmers as Human Beings”(程序員,亦人類)的博客,文中我提到過自己當(dāng)時(shí)正在讀《編程大師訪談錄》。這本書出版于1986年,它收集了眾多計(jì)算機(jī)行業(yè)先驅(qū)的采訪實(shí)錄。這本書里面所有的采訪都是值得一看的,尤其是比爾·蓋茨訪談中的一個(gè)回答,可以說是一語(yǔ)中的:
《編程大師訪談錄》是對(duì)19位計(jì)算機(jī)行業(yè)先驅(qū)的采訪實(shí)錄,采訪對(duì)象包括查爾斯·西蒙尼、比爾·蓋茨、安迪·赫茲菲爾德、雷·奧奇、杰夫·拉斯金等。訪談涉及他們軟件創(chuàng)造過程的靈感、技術(shù)、編程習(xí)慣、動(dòng)機(jī)、反思,以及對(duì)未來軟件的暢想等。問答中集結(jié)了這些計(jì)算機(jī)先驅(qū)的精辟言論,處處閃爍著智慧的火花。——譯者注
問:若要做好編程工作,必須積累很多年的經(jīng)驗(yàn)才行嗎?
比爾·蓋茨答道:“不是這樣的。我覺得在最開始的3~4年之后,你是不是一名優(yōu)秀的程序員就已經(jīng)定型了。更多年的歷練,只會(huì)讓你更多地了解到大項(xiàng)目管理和人員管理。3~4年的時(shí)間足以看清你的未來。在微軟,沒有一個(gè)人是在一開始幾年毫無建樹、而在后來出人意料地成為多面手的。通過和一個(gè)人聊他所寫的程序,我可以馬上看出他是不是一名優(yōu)秀的程序員。”
我們已經(jīng)知道,會(huì)編程的人和不會(huì)編程的人中間隔著一條鴻溝。
但是,在軟件開發(fā)領(lǐng)域同樣有類似的一句話,而這句話通常不為人所知:優(yōu)秀的開發(fā)者和平庸的開發(fā)者之間存在著一條鴻溝。通過4年的專注編程,一位平庸的程序員會(huì)略有心得,但他始終無法蛻變成為一名優(yōu)秀的程序員——優(yōu)秀程序員所具備的素質(zhì)似乎是與生俱來的。
我同意比爾·蓋茨的說法。依我的經(jīng)驗(yàn),你要么是一名優(yōu)秀的程序員,要么不是,這兩者之間沒有灰色地帶。無論你多么埋頭苦干,這點(diǎn)是無法改變的。但如果你能接受這一點(diǎn),又會(huì)產(chǎn)生一個(gè)悖論:如果經(jīng)驗(yàn)不能夠使你成為更加優(yōu)秀的程序員,還有什么可以呢?難道我們的技術(shù)水平永遠(yuǎn)不會(huì)提高嗎?天資不夠是不是就根本無望成為優(yōu)秀的程序員了?
要回答這個(gè)問題,你必須要看到編程的癡迷本性。優(yōu)秀的程序員擅長(zhǎng)編程,非常地擅長(zhǎng),甚至你會(huì)稱贊他們無與倫比。如果和我有點(diǎn)相像的話,他們應(yīng)該會(huì)在電腦面前度過生命中所有可用的時(shí)間;隨著時(shí)間的流逝,他們理所當(dāng)然變得越來越優(yōu)秀。有能力的程序員已經(jīng)靠自身所掌握的編程技巧躋身于優(yōu)秀程序員的行列了,但是如果你已經(jīng)擁有了97%的編程才能,是什么使得你獲得最后的這幾個(gè)百分點(diǎn),并且最終脫穎而出呢?
隨著年齡的增長(zhǎng),我開始愈加相信:成為更加優(yōu)秀的程序員的方法是拋開編程。你需要休整一下,放下編譯器,好好評(píng)估一下自己正在做的事情。編寫代碼固然重要,但這只是整個(gè)過程中的一小部分。
DesignObserver.com上有這么一段話,提到了一點(diǎn)不錯(cuò)的建議:
Design Observer是一個(gè)致力于討論各種設(shè)計(jì)話題的網(wǎng)站,包括:平面設(shè)計(jì)、社會(huì)創(chuàng)新、都市生活、流行文化和批判等。——譯者注
這么多年下來,我開始意識(shí)到,我最好的作品總是源于那些能夠引起我興趣的事情,更或者是那些我原本就感興趣(甚至飽含激情)的東西——這種興趣貫穿于設(shè)計(jì)工作的整個(gè)過程。我相信,我至今對(duì)平面設(shè)計(jì)仍然充滿著激情。而平面設(shè)計(jì)的關(guān)鍵在于,它總是包含了一些與它本身并不太相關(guān)的東西,比如公司法、職業(yè)足球、藝術(shù)、政治、Rober Wilson等。如果我不能對(duì)這些事情產(chǎn)生興趣,我就很難把設(shè)計(jì)師這份工作做好。在我看來,下面的結(jié)論是必然的:你的興趣愛好越廣泛,你就越能勝任你的工作。
Robert Wilson(羅伯·威爾森),1941年10月4日出生于美國(guó)德克薩斯州的瓦克市,是一位國(guó)際知名的美國(guó)戲劇導(dǎo)演和舞臺(tái)設(shè)計(jì)師。最知名的戲劇作品為《沙灘上的愛因斯坦》,此劇被譽(yù)為后現(xiàn)代主義的代表作品。——譯者注
對(duì)編程有激情是一件很美妙的事情,但是它很容易讓你迷失在你已經(jīng)證明自己夠格的一項(xiàng)技能中,并且越陷越深。為了真正地成為一名更好的程序員,你必須培養(yǎng)自己對(duì)于編程周邊所有事情的熱情。
后來在2005年的一次訪談中,比爾·蓋茨繼續(xù)闡述了他在1986年的觀點(diǎn):
工作的本質(zhì)并不是閉門造車(埋頭寫代碼),我相信這一點(diǎn)很容易理解。最最匱乏的人才是那些既對(duì)工程技術(shù)有超強(qiáng)的領(lǐng)悟能力,又可以與核心開發(fā)人員建立良好的關(guān)系,并且可以充當(dāng)與客戶、市場(chǎng)等之間橋梁的人。像這種工程管理人才,即使在微軟也是很缺的,所以我們不得不經(jīng)常鼓勵(lì)一些人去嘗試。
我很希望看到有更多人投身于這些職位。他們除了掌握基本的工程技能之外,也把人員管理和群體動(dòng)力看作是一項(xiàng)對(duì)自己的歷練。要是這樣,那就太好了!
我們可以對(duì)這些人承諾,在他們從事這個(gè)職位的開頭兩年里,他們做的絕大多數(shù)事情都不是寫代碼,因?yàn)橛泻芏喾较蚩晒┻x擇。比如身處Office部門,你將參與創(chuàng)建這款神奇的產(chǎn)品,你會(huì)看到人們是怎么使用它的,兩年時(shí)間很快就會(huì)過去,你要開發(fā)一個(gè)新的版本,并且深層次地改變生產(chǎn)力。你還可以做一些大膽的嘗試,準(zhǔn)確地滿足客戶的需求。
單單靠編程,你只能補(bǔ)足或者增強(qiáng)自己已有的編程技能,永遠(yuǎn)也無法成為一名優(yōu)秀的程序員。你需要嘗試去了解你的客戶、你所身處的行業(yè)及其相關(guān)的業(yè)務(wù)!
還是那句話:“你的興趣愛好越廣泛,你就越能勝任你的工作。”
from:?http://blog.csdn.net/happydeer/article/details/16944471
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的成为优秀程序员的方法就是抛开编程?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 所有编程皆为Web编程
- 下一篇: matlab小数取整函数