做者劉瀚陽,鵝廠高級工程師、博客 jjyy.guru、《遊戲編程算法與技巧》譯者程序員
歡迎訂閱 劉瀚陽 的開發者頭條獨家號《不是流汗羊的獨家號》算法
最近鵝廠技術專家miloyip大牛發佈了遊戲程序員學習指南(個人譯著《遊戲編程算法與技巧》原版也在其中:>),除了For Kid系列不少都看過,確實都是好書,深有同感,看着封面就有親切感。編程
但我以爲這條道路對於國內還沒進入狀態的小白來說,門檻過高,光是英語就卡掉一批人。特別是前些天的遊戲蠻牛在線答疑裏,發現不少人都不知道如何進一步學習。網絡
在這裏拋磚引玉,放一些我認爲可以輕鬆閱讀而且不錯的中文教材的教材。若是某本書不那麼容易消化,也會有標記,請放心進食。app
這裏的書對於CS專業的同窗都很是適用,不限於遊戲行業,歡迎補充~編程語言
PS: 做爲程序員仍是要可以閱讀英語材料,能夠從翻譯海外博文&看美劇開始練習ide
整理分爲四大塊:編程語言(能寫代碼)->程序設計(能寫好代碼)->計算機底層(能作別人作不到)->計算機理論(能作別人想不到)函數式編程
不過以個人經歷,實際過程當中會螺旋上升,編程語言->程序設計->計算機底層->計算機理論->編程語言->…,由於一下啃完一整塊是不現實的。函數
PS: 在最後追加了一個數學工具
編程語言系列C是必學的,而後能夠根據編程範式和語言類型有目的地去學習,好比面向對象C#、函數式lisp、邏輯式編程prolog等等。學完編譯型還能夠選擇一門腳本型語言,好比Lua。
其中C++系列的書都不會太簡單,坑很是很是深,慎入。
這裏沒提太多,由於不少用到就搜高分著做,搜到就學,也沒太多特別好的書,基本都當作工具書使用。
C語言
C++
若是過了第一個坎,那麼恭喜,這裏都比較輕鬆,比較偏向感性哲理一些,這裏須要大量練習與反思。
主要看前兩本就能夠了,由於程序設計不是理論有多難多深,而是要經過多練習,將它們運用起來,內化起來,才能掌握的。另外學完以後還要了解一下UML和領域設計。
另外第三本做者松本行弘的一句話「程序設計就是語言設計」是影響我程序設計思路最深的,感興趣能夠看看。
這裏屬於好奇者的天堂,功利者的地獄。看完這裏,過去不少迷惑都會消失,瞭解不少計算機系統是如何搭建起來的。
除了《深刻理解計算機系統》(俗稱csapp)以外,其餘都是能夠躺在沙發上就能輕鬆看完的好書(誤)。
最好的彙編教材,沒有之一,感謝王爽老師。我看的時候仍是初版
從手電筒開始,教你構建cpu,真正的深刻淺出,做者很是牛逼
語言生動有趣,對操做系統有個感性的認知
簡單瞭解Linux與Linux源碼
手把手實現操做系統
手把手實現編譯器
把程序啓動的過程拆解給你看
比TCP三卷要輕鬆易讀不少,不會陷入到細節裏面
經過精心安排的案例教你怎麼組建網絡
教你怎麼組建更加複雜的網絡
創建計算機系統的大局觀
可能對平常工做幫助不大,但瞭解完這塊以後,可以瞭解不少事情的來龍去脈。
這塊理論都很差啃,但這些書都已經很是平易近人、生動有趣。
可計算性
相似於科普著做,講計算機誕生的故事。
這本書講到了計算的本質,對比另一本書《計算的本質》,你就知道這本書有多好。
劉未鵬的博文:康托爾、哥德爾、圖靈——永恆的金色對角線(rev#2)
個人另一篇博文:淺談Y組合子
函數式編程
對話體課本,邊學邊練,輕鬆愉快掌握lisp。 只有英文版,不過很是簡單。 徹底顛覆對遞歸的認識,而且能讓你平時寫代碼更加優雅簡潔。
算法
信息論
沒看到特別適合入門的書:P,有合適請告知
這塊也是很差啃,因此深刻淺出的書很是少。
必定要作習題!
必定要作習題!
必定要作習題!
線性代數
在遊戲引擎裏面學線性代數特別容易,能夠拿個Unity對着寫就行了
統計學
應用數學之王,必學的分支,而且對將來人工智能的學習有幫助
微積分
微積分是數學的主幹,是一定要掌握的。尹遜波老師的《工科數學分析》課程是我上過最好的數學課,感謝中國大學MOOC和網易。