1. 程式人生 > >李開復給程式設計師的七個建議(轉摘)

李開復給程式設計師的七個建議(轉摘)

https://blog.csdn.net/fly8377/article/details/2060485

1.練內功。不要只花功夫學習各種流行的程式語言和工具,以及某些公司招聘廣告上要求的科目。要把資料結構、演算法、資料庫、作業系統原理、計算機體系結構、計算機網路、離散數學等基礎課程學好。大家不妨試試高德納斯所著的The Art if Computer Programming裡的題目,如果你能夠解決其中的大部分題目,就說明你在演算法方面有一定的功力了。
  2.多實戰。通過程式設計的實戰積累經驗、鞏固知識。很多中國大學生畢業生缺乏程式設計和除錯經驗;學習C語言,考試過關就算學會了;課題專案中,只要程式能夠編譯、執行、並且輸入輸出滿足就算了事。就些做法是不行的。 寫程式的時候,大家必須多想想如何 把程式寫得更加精煉、高效、高質量。建議大家爭取在大學四年中積累編寫十萬行程式碼的經驗。我們必須明白的是:好程式設計師是寫出來的,不是學出來的。
  3.求實幹。不要輕視任何實際工作,比如一些看似簡單的編碼或測試。要不懈追求對細節一絲不苟的實幹作風與敬業精神。我發現不少程式設計師對於知識的掌握很膚淺,不求甚解、沒有好奇心,不會刨根問底。比如,學會了C++,是否瞭解一個物件在編譯後,在彙編程式碼中是如何被初始化的?這個物件的各個成員在記憶體中是如何存放的?當一個成員函式被呼叫時,編譯器在彙編程式碼中加入了哪些額外的動作?虛擬函式的呼叫是如何實現的?這些東西恐怕在程式語言或編譯原理中都沒有詳細提到,只有通過踏實的實幹才能真正掌握。
  4.重視數學學習。數學是思維的體操,數學無處不在。學計算機至少要學習離散數學,概率論,布林代數,集合論和數理邏輯。這些知識並不難,但是對你未來的工作幫助會很大。尤其當你對一些“數學密集型”的領域如視訊,影象處理等有興趣時,這些些知識將成為你手中的利器。
  5.培養團隊精神。學會與人合作。今天的軟體工程早已經不是一個人可以單獨操作的,而必須靠團隊合作才能成功。不懂得合作的人是不能成大器的。大家要去尋找可以與人一起做專案的機會。
  6.激勵創新意識、培養好奇心、不要死記硬背。沒有掌握某種演算法技術的根本原理,就不會有應變和創新的能力。想成為一位好程式設計師(其實從事任何一個行業都是如此),重要的是要培養鑽研,好奇,創新,動手,合作的優秀習慣,不滿足於填鴨,不滿足於考試交差,不滿足於表象。這不是學幾門課就能夠一蹴而就的。
  7.有策略地“打工”。在不影響學業的前提下,尋找真正有意義的暑期工作或兼職。去找一個重視技術的公司,在一個好的“老闆”指導下完成真正會被使用者使用的程式。不要急於去一個要你做“頭”而獨擋一面的地方,因為向別人學習才是你的目的。找工作也是一樣,不要只看待遇和職銜,要挑一個你能夠學習的環境,一個願意培養員工的企業,一個重視你的專業的公司。最後,還要挑一個好老闆。