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