給程序員的建議(轉自李開復)

給程序員的七個建議

(1)練內功。不要只花功夫學習各種流行的編程語言和工具,以及某些公司招聘廣告上要求的科目。要把數據結構、算法、數據庫、操作系統原理、計算機體系結 構、計算機網絡,離散數學等基礎課程學好。大家不妨試試高德納所著The Art of Computer Programming裏的題目,如果你能夠 解決其中的大部分題目,就說明你在算法方面有一定的功力了。

(2)多實戰。通過編程的實戰積累經驗、鞏固知識。很多中國大學畢業生缺乏編程和調試經驗;學習C語言,考試過關就算學會了;課題項目中,只要程序能夠編 譯,運行,並且輸入輸出滿足要求就算了事。這些做法是不行的。寫程序的時候,大家必須多想想如何把程序寫得更加精煉、高效、高質量。建議大家爭取在大學四 年中積累編寫十萬行代碼的經驗。我們必須明白的是:好程序員是寫出來的,不是學出來的。

(3)求實幹。不要輕視任何實際工作,比如一些看似簡單的編碼或測試。要不懈追求對細節一絲不苟的實幹作風與敬業精神。我發現不少程序員對於知識的掌握很 膚淺,不求甚解,沒有好奇心,不會刨根問底。比如,學會了C++,是否瞭解一個對象在編譯後,在彙編代碼中是如何被初始化的?這個對象的各個成員在內存中 是如何存放的?當一個成員函數被調用時,編譯器在彙編代碼中加入了哪些額外的動作?虛函數的調用是如何實現的? 這些東西恐怕在編程語言或編譯原理中都沒 有詳細提到,只有通過踏實的實幹才能真正掌握。

(4)重視數學學習。數學是思維的體操,數學無處不在。學計算機至少要學習離散數學、概率論、布爾代數、集合論和數理邏輯。這些知識並不難,但是對你未來 的工作幫助會很大。 尤其當你對一些“數學密集型”的領域如視頻、圖像處理等有興趣時,這些知識將成爲你手中的利器。

(5)培養團隊精神,學會與人合作。今天的軟件工程早已經不是一個人可以單獨操作的,而必須靠團隊合作才能成功。不懂得合作的人是不能成大器的。大家要多去尋找可以與人一起做項目的機會。

(6)激勵創新意識,培養好奇心,不要死記硬背。沒有掌握某種算法技術的根本原理,就不會有應變和創新的能力。想成爲一位好程序員(其實從事任何一個行業 都是如此),重要的是要養成鑽研,好奇,創新,動手,合作的優秀習慣,不滿足於填鴨,不滿足於考試交差,不滿足於表象。這不是學幾門課能夠一蹴而就的。

(7)有策略地“打工”。在不影響學業的前提下,尋找真正有意義的暑期工作或兼職。去找一個重視技術的公司,在一個好的“老闆”指導下完成真正會被用戶使 用的程序。不要急於去一個要你做“頭”而獨擋一面的地方,因爲向別人學習纔是你的目的。找工作也是一樣,不要只看待遇和職銜,要挑一個你能夠學習的環境, 一個願意培養員工的企業,一個重視你的專業的公司。最後,還要挑一個好老闆。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章