TL; DR
在整理書架的時候,重新檢視了我最喜歡的程式設計與資料分析書籍,也許你也可以將它們列入參考書清單。
緣起
每個人都有自己一套的「學習模式」(How to learn anything),我也逐漸嘗試新世代的主流學習模式,例如透過 YouTube 影片或是 ChatGPT 等。對我而言,現階段課程與書籍還是我最熟悉也最有效率的學習模式;近日有一個契機好好整理了自己的書架,重新檢視了自己在程式設計與資料分析部分最喜歡的書籍,如果讀者在以下幾個分類中有比較想要系統性地投入,願意投注時間精力鑽研,也許這些參考書可以納入清單考量, 列出書目的同時,我也簡短地說明喜歡這本書的什麼地方。
程式設計入門
Allen B. Downey. (2016). Think Python:學習程式設計的思考概念(黃銘偉譯)。台北:碁峯。從「如何執行一個 Python 程式」開始到「演算法與資料結構預覽」結束,即便讀者對電腦或程式完全一竅不通,也能輕鬆入門。
蔡炎龍、季佳琪、陳先灝(2020)。少年 Py 的大冒險: 成為 Python 數據分析達人的第一門課。台北:全華。內容文字簡單活潑,搭配可愛的插圖,以「應用面」為出發點,不會讓讀者感到一絲一毫負擔。
Jake VanderPlas. (2023). Python 資料科學學習手冊(何敏煌譯)。台北:碁峯。聚焦 NumPy、Pandas、Matplotlib 與 Scikit-Learn 這四個最受歡迎的 Python 資料科學模組。
程式設計進階
Reuven M. Lerner. (2021). Python 刷題鍛鍊班:老手都刷過的 50 道程式題,求職面試最給力(施威銘研究室編譯)。台北:旗標。透過 50 道經典程式題,完整複習在入門書籍中所學會的知識,以及如何將基礎模塊整合起來應用於問題解決的思維。
Dan Bader. (2020). Python 神乎其技(江良志譯)。台北:旗標。介紹 Python 除了滿足基礎程式設計的需求,還能夠讓程式碼變得更簡潔、更有效率的功能與技巧。
Al Sweigart. (2021). Python 功力提升的樂趣:寫出乾淨程式碼的最佳實務(H&C 譯)。台北:碁峯。該如何從「會使用 Python」再進步到「使用 Python 開發軟體」呢?這兩個階段之間還欠缺了什麼?這本書側重在軟體開發的思維,透過 Python 標準模組、Python 第三方模組以及命令列工具,協助開發者更有效率、更有組織性地使用 Python。
機器學習實作
蔡炎龍、林澤佑、黃瑜萍、焉然(2022)。少年Py的大冒險: 成為Python AI深度學習達人的第一門課。台北:全華。內容文字簡單活潑,搭配可愛的插圖,以「應用面」為出發點,不會讓讀者感到一絲一毫負擔。
François Chollet. (2019). Deep Learning 深度學習必讀 - Keras 大神帶你用 Python 實作(葉欣睿譯)。台北:旗標。以框架的功能作為章節分野,非常方便讀者閱讀和檢視特定主題內容,以「應用面」為出發點,讀者可以快速掌握 Keras 框架的設計理念和準則。
Eli Stevens, Luca Antiga, & Thomas Viehmann. (2021). 核心開發者親授!PyTorch深度學習攻略(黃駿譯)。台北:旗標。雖然是 PyTorch 為主題的書籍,但內文主幹其實是深度學習,輔以用 PyTorch 呈現過程與成果,能夠作為理論書籍的前置作業。
機器學習理論
Ian Goodfellow, Yoshua Bengio, & Aaron Courville. (2019). 深度學習(陳仁和譯)。台北:碁峯。雖然名為深度學習,卻完整涵蓋了線性代數、機率與資訊理論、數值計算與機器學習基礎等前置先修主題,不忌諱使用數學式,所以文字敘述非常地精煉。
周志華(2016)。機器學習。北京:清華大學出版社。以不同的模型作為章節分野,非常方便讀者閱讀和檢視特定主題內容,不忌諱使用數學式,所以文字敘述非常地精煉。
怎麼讀這幾本書
由於列出來的書目有很多本,我簡單地交代這幾本書的閱讀順序、方式。基本上從程式設計入門的第一個標號開始到程式設計進階的最後一個標號結束,可以按照文章中的項目符號順序閱讀。但是機器學習實作與機器學習理論的環節,比較沒有順序性,跟每個人不同的背景與偏好有關,我自己在機器學習實作與機器學習理論的書籍中喜歡以「交叉參照」的方式閱讀,當我希望暸解某一個模型的時候,會希望自己同時能夠知道推導以及實作,當我能夠不倚賴框架、僅用 NumPy 完成她最簡單的形式時(例如不需考慮標準化的問題、不需考慮泛用的問題或者不需考慮編碼轉換的問題),我才有信心自己能夠掌握這個模型的七八成細節。
Python 的 50+ 練習
如果你目前的狀態是介於「程式設計入門」與「程式設計進階」這兩個之間,除了可以參考前述的六本書籍以外,也可以參考我的 Hahow 線上課程「Python 的 50+ 練習」,課程結合了 Python 資料科學學習手冊與 Python 刷題鍛鍊班兩本書的特色,透過 200 個練習題,成為擅長程式設計與資料分析的兩棲部隊!
課程連結:https://hahow.in/cr/pythonfiftyplus