成為優秀程式設計師的方法就是拋開程式設計?

2021-06-19 10:16:52 字數 2369 閱讀 8582

我在2023年寫過一篇題為「programmersas human beings」(程式設計師,亦人類)的部落格,文中我提到過自己當時正在讀《程式設計大師訪談錄》。這本書出版於2023年,它收集了眾多計算機行業先驅的採訪實錄。這本書裡面所有的採訪都是值得一看的,尤其是比爾·蓋茨訪談中的乙個回答,可以說是一語中的:

《程式設計大師訪談錄》是對

19位計算機行業先驅的採訪實錄,採訪物件包括查爾斯·西蒙尼、比爾·蓋茨、安迪·赫茲菲爾德、雷·奧奇、傑夫·拉斯金等。訪談涉及他們軟體創造過程的靈感、技術、程式設計習慣、動機、反思,以及對未來軟體的暢想等。問答中集結了這些計算機先驅的精闢言論,處處閃爍著智慧型的火花。

——譯者注

問:若要做好程式設計工作,必須積累很多年的經驗才行嗎?

比爾·蓋茨答道:「不是這樣的。我覺得在最開始的

3~4年之後,你是不是一名優秀的程式設計師就已經定型了。更多年的歷練,只會讓你更多地了解到大專案管理和人員管理。

3~4年的時間足以看清你的未來。在微軟,沒有乙個人是在一開始幾年毫無建樹、而在後來出人意料地成為多面手的。通過和乙個人聊他所寫的程式,我可以馬上看出他是不是一名優秀的程式設計師。」

我們已經知道,會程式設計的人和不會程式設計的人中間隔著一條鴻溝。

但是,在軟體開發領域同樣有類似的一句話,而這句話通常不為人所知:優秀的開發者和平庸的開發者之間存在著一條鴻溝。通過4年的專注程式設計,一位平庸的程式設計師會略有心得,但他始終無法蛻變成為一名優秀的程式設計師——優秀程式設計師所具備的素質似乎是與生俱來的。

我同意比爾·蓋茨的說法。依我的經驗,你要麼是一名優秀的程式設計師,要麼不是,這兩者之間沒有灰色地帶。無論你多麼埋頭苦幹,這點是無法改變的。但如果你能接受這一點,又會產生乙個悖論:如果經驗不能夠使你成為更加優秀的程式設計師,還有什麼可以呢?難道我們的技術水平永遠不會提高嗎?天資不夠是不是就根本無望成為優秀的程式設計師了?

要回答這個問題,你必須要看到程式設計的痴迷本性。優秀的程式設計師擅長程式設計,非常地擅長,甚至你會稱讚他們無與倫比。如果和我有點相像的話,他們應該會在電腦面前度過生命中所有可用的時間;隨著時間的流逝,他們理所當然變得越來越優秀。有能力的程式設計師已經靠自身所掌握的程式設計技巧躋身於優秀程式設計師的行列了,但是如果你已經擁有了97%的程式設計才能,是什麼使得你獲得最後的這幾個百分點,並且最終脫穎而出呢?

隨著年齡的增長,我開始愈加相信:成為更加優秀的程式設計師的方法是拋開程式設計。你需要休整一下,放下編譯器,好好評估一下自己正在做的事情。編寫**固然重要,但這只是整個過程中的一小部分。

designobserver.com上有這麼一段話,提到了一點不錯的建議:

design observer

——譯者注

這麼多年下來,我開始意識到,我最好的作品總是源於那些能夠引起我興趣的事情,更或者是那些我原本就感興趣(甚至飽含激情)的東西——這種興趣貫穿於設計工作的整個過程。我相信,我至今對平面設計仍然充滿著激情。而平面設計的關鍵在於,它總是包含了一些與它本身並不太相關的東西,比如公司法、職業足球、藝術、政治、

rober wilson

等。如果我不能對這些事情產生興趣,我就很難把設計師這份工作做好。在我看來,下面的結論是必然的:你的興趣愛好越廣泛,你就越能勝任你的工作。

robert wilson

(羅伯·威爾森),

2023年10

月4日出生於美國德克薩斯州的瓦克市,是一位國際知名的美國戲劇導演和舞台設計師。最知名的戲劇作品為《沙灘上的愛因斯坦》,此劇被譽為後現代主義的代表作品。

——譯者注

對程式設計有激情是一件很美妙的事情,但是它很容易讓你迷失在你已經證明自己夠格的一項技能中,並且越陷越深。為了真正地成為一名更好的程式設計師,你必須培養自己對於程式設計周邊所有事情的熱情

後來在2023年的一次訪談中,比爾·蓋茨繼續闡述了他在2023年的觀點:

工作的本質並不是閉門造車(埋頭寫**),我相信這一點很容易理解。最最匱乏的人才是那些既對工程技術有超強的領悟能力,又可以與核心開發人員建立良好的關係,並且可以充當與客戶、市場等之間橋梁的人。像這種工程管理人才,即使在微軟也是很缺的,所以我們不得不經常鼓勵一些人去嘗試。

我很希望看到有更多人投身於這些職位。他們除了掌握基本的工程技能之外,也把人員管理和群體動力看作是一項對自己的歷練。要是這樣,那就太好了!

我們可以對這些人承諾,在他們從事這個職位的開頭兩年裡,他們做的絕大多數事情都不是寫**,因為有很多方向可供選擇。比如身處

office

部門,你將參與建立這款神奇的產品,你會看到人們是怎麼使用它的,兩年時間很快就會過去,你要開發乙個新的版本,並且深層次地改變生產力。你還可以做一些大膽的嘗試,準確地滿足客戶的需求。

單單靠程式設計,你只能補足或者增強自己已有的程式設計技能,永遠也無法成為一名優秀的程式設計師。你需要嘗試去了解你的客戶、你所身處的行業及其相關的業務!

還是那句話:「你的興趣愛好越廣泛,你就越能勝任你的工作。

如何成為優秀程式設計師

1,文件習慣 文件是乙個軟體系統的生命力。乙個公司的產品再好 技術含量再高,如果缺乏文件,知識就沒有繼承,公司還是乙個來料加工的軟體作坊。作為 程式設計師,必須將30 的工作時間寫用於技術文件。沒有文件的程式設計師勢必會被淘汰。2,模組化思維能力 要想成為乙個優秀的程式設計師,他的思想不能僅僅只在侷...

如何成為優秀的程式設計師

1 學習應該從基礎打起,不要一開始就嘗試最高深的技術。2 每看一本書,不要說這章我以前學習過了,也掌握的很好,因此我可以跳過這一章看更重要的了。3 對於作業,遇到不會的盡量不要立刻向別人請教。如果實在解決不了的問題,可以先完成你會的,然後把一些特別的難點提煉出來,向高手請教。3 不要指望書本和行家能...

如何成為優秀的程式設計師 (二)

1.紮實的基礎。資料結構 離散數學 編譯原理,這些是所有電腦科學的基礎,如果不掌握他們,很難寫出高水平的程式。據我的觀察,學計算機專業的人比學其他專業的人更能寫出高質量的軟體。程式人人都會寫,但當你發現寫到一定程度很難再提高的時候,就應該想想是不是要回過頭來學學這些最基本的理論。不要一開始就去學oo...