小範圍的選擇一些有用技術,透徹的學習它們,擁抱它們。然後不斷的擴充套件這個範圍。
2. 理解各種資料結構的優點和缺點,包括它們在記憶體中和在硬碟上的各自表現。
3. 理解各種演算法的優點和缺點。
4. 了解你的工作領域。關上電腦,去做你的使用者們在做的事。
5. 有準備,有願望,有能力在任何時候投入到多種技術層面中。你必須知道表象下的技術原理。在「各個技術層面的掌握程度」和「程式設計能力」上有著密切的聯絡。
6. 發揮你的想象力。永遠都要問,「有更好的方法嗎?」跳出常規思維約束。最好的解決方案也許還沒有被發現。
7. 優秀程式設計師:我優化**。更優秀程式設計師:我設計資料。最優秀程式設計師:他們的不同之處是什麼?
8. 正確的構造你的資料。任何的缺陷都將造成你的**裡無盡的技術債務。
9. 正確的命名事物。使用「動詞
-形容詞
-名詞」格式來命名程式和函式。變數名要足夠長,盡量短,有意義。如果其他程式設計師不能夠理解你的**,說明你寫的不夠清楚。在大多數情況下,針對下乙個程式設計師而編碼要比針對環境而編碼重要的多。
10.
把分析和程式設計分離開做。它們不是同類的事物,需要不同型別的勞力資源,需要在完全不同的時間和地點分開做。如果同時做它們,你一樣都做不好。
(我喜歡在一天的末尾做不涉及技術的分析,而在第二天早上進行程式設計。
)11.
永遠不要圖省事走近道。永遠不要把相同的**部署兩次。永遠不要把乙個變數命名成另乙個變數名的一部分。也許你不明白這些規則,也許你要辯解。但如果你是
遵守著這樣做的,這些規則就會約束你正確的構造你的程式。圖省事的做法是讓那些低等級的程式設計師永遠停留在低等級的原因。
12.
學習如何測評程式效能。你會驚奇的發現從中能學到很多之外的知識。
13.
學會區別對待問題細節和問題後果。問題細節不會導致太大的差別,而問題後果能導致世界滅亡。只關注後果。
14.
密切關注你的使用者/客戶
/管理人員。幫助他們認清楚他們的「
what
」,這比幫助他們明白他們的「
how」要重要的多。
15.
寫乙個框架,不論你是否打算用它。你將從中學到從其它途徑中學不到的東西。
16.
把你知道的東西教給他人——通過口**流或通過寫作。最終這將成為教育自己的機會。
17.
永遠要對你的客戶
/使用者說「
yes」,即使在你不確定的情況下。
90%的情況下,你會最終找到方法實現它。
10%的機會,你將會去向他們道歉。這是重要的個人成長中付出的一點小代價。
18.
尋找別人的做出神奇的事情但卻一灘糊塗的**。重構它。然後丟掉它,並發誓自己永遠不要犯他們犯下的相同錯誤。
(這樣的程式你會發現很多。
)19.
資料永遠
>
理論或觀點。通過開發東西來學習資料。
20.
有可能的話,開創自己的業務
(服務或產品
)。你將從中學到很多你做雇員永遠學不到的關於程式設計的知識。
遊戲程式設計師養成計畫
與玩遊戲相比,寫遊戲要複雜上千萬倍,除了需要掌握通用的程式設計技巧以外,還要有相當的圖形學,物理,數學基礎,特別是在國內,由於相關資料的缺乏,更是讓初學者無從下手。下面總結了一些入門方法和比較容易入手的資料。首先你要精通一門高階語言,比如c 或者c 其次,要有良好的英文閱讀能力。對遊戲開發者來說英文...
遊戲程式設計師養成計畫
看了這個帖子後發現的文章 與玩遊戲相比,寫遊戲要複雜上千萬倍,除了需要掌握通用的程式設計技巧以外,還要有相當的圖形學,物理,數學基礎,特別是在國內,由於相關資料的缺乏,更是讓初學者無從下手。下面總結了一些入門方法和比較容易入手的資料。首先你要精通一門高階語言,比如c 或者c 其次,要有良好的英文閱讀...
遊戲程式設計師養成計畫
09.3.27更新 與玩遊戲相比,寫遊戲要複雜上千萬倍,除了需要掌握通用的程式設計技巧以外,還要有相當的圖形學,物理,數學基礎,特別是在國內,由於相關資料的缺乏,更是讓初學者無從下手。下面總結了一些入門方法和比較容易入手的資料。首先你要精通一門高階語言,比如c 或者c 其次,要有良好的英文閱讀能力。...