優秀程序員

1、小範圍的選擇一些有用技術,透徹的學習它們,擁抱它們。然後不斷的擴展這個範圍。

2、理解各種數據結構的優點和缺點,包括它們在內存中和在硬盤上的各自表現。

3、理解各種算法的優點和缺點。

4、瞭解你的工作領域。關上電腦,去做你的用戶們在做的事。

5、有準備,有願望,有能力在任何時候投入到多種技術層面中。你必須知道表象下的技術原理。在“各個技術層面的掌握程度”和“編程能力”上有着密切的聯繫。

6、發揮你的想象力。永遠都要問,“有更好的方法嗎?”跳出常規思維約束。最好的解決方案也許還沒有被發現。

7、優秀程序員:我優化代碼。更優秀程序員:我設計數據。最優秀程序員:他們的不同之處是什麼?

8、正確的構造你的數據。任何的缺陷都將造成你的代碼裏無盡的技術債務。

9、正確的命名事物。使用“動詞-形容詞-名詞”格式來命名程序和函數。變量名要足夠長,儘量短,有意義。如果其他程序員不能夠理解你的代碼,說明你寫的不夠清楚。在大多數情況下,針對下一個程序員而編碼要比針對環境而編碼重要的多。

10、把分析和編程分離開做。它們不是同類的事物,需要不同類型的勞力資源,需要在完全不同的時間和地點分開做。如果同時做它們,你一樣都做不好。(我喜歡在一天的末尾做不涉及技術的分析,而在第二天早上進行編程。)

11、永遠不要圖省事走近道。永遠不要把相同的代碼部署兩次。永遠不要把一個變量命名成另一個變量名的一部分。也許你不明白這些規則,也許你要辯解。但如果你是遵守着這樣做的,這些規則就會約束你正確的構造你的程序。圖省事的做法是讓那些低等級的程序員永遠停留在低等級的原因。

12、學習如何測評程序性能。你會驚奇的發現從中能學到很多之外的知識。

13、學會區別對待問題細節和問題後果。問題細節不會導致太大的差別,而問題後果能導致世界滅亡。只關注後果。

14、密切關注你的用戶/客戶/管理人員。幫助他們認清楚他們的“what”,這比幫助他們明白他們的“how”要重要的多。

15、寫一個框架,不論你是否打算用它。你將從中學到從其它途徑中學不到的東西。

16、把你知道的東西教給他人——通過口口交流或通過寫作。最終這將成爲教育自己的機會。

17、永遠要對你的客戶/用戶說“Yes”,即使在你不確定的情況下。90%的情況下,你會最終找到方法實現它。10%的機會,你將會去向他們道歉。這是重要的個人成長中付出的一點小代價。

18、尋找別人的做出神奇的事情但卻一灘糊塗的代碼。重構它。然後丟掉它,併發誓自己永遠不要犯他們犯下的相同錯誤。(這樣的程序你會發現很多。)

19、數據永遠 > 理論或觀點。通過開發東西來學習數據。

20、有可能的話,開創自己的業務(服務或產品)。你將從中學到很多你做僱員永遠學不到的關於編程的知識。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章