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



作者劉瀚陽,鵝廠高級工程師、博客 jjyy.guru、《遊戲編程算法與技巧》譯者


歡迎訂閱 劉瀚陽 的開發者頭條獨家號不是流汗羊的獨家號

圖片


最近鵝廠技術專家miloyip大牛發佈了遊戲程序員學習指南(我的譯著《遊戲編程算法與技巧》原版也在其中:>),除了For Kid系列很多都看過,確實都是好書,深有同感,看着封面就有親切感。


但我覺得這條道路對於國內還沒進入狀態的小白來講,門檻太高,光是英語就卡掉一批人。特別是前些天的遊戲蠻牛在線答疑裏,發現很多人都不知道如何進一步學習。


在這裏拋磚引玉,放一些我認爲能夠輕鬆閱讀並且不錯的中文教材的教材。如果某本書不那麼容易消化,也會有標記,請放心進食。


這裏的書對於CS專業的同學都非常適用,不限於遊戲行業,歡迎補充~

PS: 作爲程序員還是要能夠閱讀英語材料,可以從翻譯海外博文&看美劇開始練習


學習路線

整理分爲四大塊:編程語言(能寫代碼)->程序設計(能寫好代碼)->計算機底層(能做別人做不到)->計算機理論(能做別人想不到)


不過以我的經歷,實際過程中會螺旋上升,編程語言->程序設計->計算機底層->計算機理論->編程語言->…,因爲一下啃完一整塊是不現實的。


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



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