最簡編程基本功指南:那些年追過的 CS 書本



做者劉瀚陽,鵝廠高級工程師、博客 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和網易。

圖片

原文連接:jjyy.guru/head-first-program-book

相關文章
相關標籤/搜索