程式設計師的數學書單
你好,我是黃申。今天想給你推薦幾本適合程式設計師看的數學書。
數學領域涉及的面很廣,相關書籍也很多。在專欄中,我從離散數學、概率統計和線性代數三個方面介紹了程式設計師常用的數學知識。所以,本次薦書我仍然會圍繞專欄這三大模組,為你推薦相應的書籍,輔助“食用”,事半功倍。
「基礎思想篇」推薦書籍
《離散數學及其應用》
Kenneth H·Rosen 著
專欄的第一模組是“基礎思想篇”。在這個模組中,我嘗試用實際專案中的案例,把不同的離散數學知識點串起來,並加以解釋。如果你對其中某些點有更深的興趣,可以仔細研讀這本書。
除此之外,這本書還有幾個特點,我覺得非常好。
-
國外高校的教材。書中對離散數學的知識點介紹得很全面,專欄中講的同餘定理、數學歸納法、遞迴、分治演算法、排列和組合、樹和樹的遍歷、圖和最短路徑、邏輯以及集合等概念,在書裡都有非常詳細的介紹。
-
介紹了不少證明的方法,比如窮舉證明、存在性證明等,可以讓你更好地理解,為什麼有些演算法是對的,有些是有問題的,並幫你在理解、學習和設計演算法時保證其正確性。
-
講解了很多邏輯、集合和布林代數的相關知識。這部分我在專欄裡沒有涉及太多,因為程式設計師經常接觸各種條件和查詢語句,對這些內容已經很熟悉了,所以沒有花費更多篇幅。
-
和程式設計結合緊密。書中介紹了一些基於虛擬碼的演算法,並對其進行了時間和空間複雜度的分析,例如常見的排序、搜尋演算法等,還講解了離散數學在電腦科學中的應用場景,比如關係型資料庫和 SQL 查詢語言是如何設計的等等。
「概率統計篇」推薦書籍
《概率統計》
Morris H. DeGroot,Mark J. Schervish 著
在專欄的“概率統計篇”,我會著重介紹概率統計及其在計算機領域中的主要應用。你可以預先閱讀這本《概率統計》熱熱身。

我們再來聊聊這本書的幾個特色。
-
對概念的解釋非常清晰,比如充分統計量(sufficient statistic)的概念,其他書可能兩句話就解釋完了,緊接著就是公式的堆砌,而這本書用了差不多兩頁的篇幅來介紹,對自學者而言非常有幫助。
-
本書的兩位作者,DeGroot 和 Schervish 都是貝葉斯統計理論的重量級人物。書中包含了概率論常用的知識點,比如隨機變數及其分佈、條件概率、期望值、貝葉斯理論、馬爾科夫鏈等。在專欄的第二模組中,我也會介紹這些知識點及其在計算機領域,特別是機器學習中的應用。
總的來說,這是一本相當不錯的概率統計專業書籍,儘管書中幾乎沒有涉及計算機演算法和程式碼的部分,但你不用過於擔心,在專欄中我會結合具體的機器學習演算法和應用,為你展示這些理論知識是如何運用到實踐中的。
如果你能預讀本書,對概念有了些理解,再看專欄會更有感觸。
「線性代數篇」推薦書籍
《線性代數及其應用》
David C. Lay,Steven R. Lay 著
如今的機器學習模型,除了基於概率和統計,還會使用線性代數的知識,專欄的第三個模組就是“線性代數篇”。介紹線性代數的書籍不少,我推薦《線性代數及其應用》。

這本書的特色在於:
-
使用通俗的表達和大量的插圖來闡述概念,比如線性方程、向量空間、特徵向量、奇異值的分解等,都是在機器學習演算法中常用的模型或技術。
-
書中內容的呈現形式,以提出一個具體問題再解決問題為主,最後進行定理的歸納和證明,既通俗易懂,又不乏數學的嚴謹性。
入門、通識類書籍推薦
《程式設計師的數學》系列叢書
再給你推薦一套入門書——《程式設計師的數學》系列,包括《程式設計師的數學》《程式設計師的數學:概率統計》《程式設計師的數學:線性代數》3 本,內容的講解不算深入,比較適合程式設計的初學者。
《數學之美》
吳軍 著

這本書最大的特點是和計算機領域結合得非常緊密,所有問題和解決方案,最終都會聯絡到計算機中的某個應用。吳軍老師從計算機從業者的角度出發,深入探討了其背後的數學思想和知識。這本書的行文風格,對我寫作專欄也非常有啟發。
推薦專欄
我是黃申,目前在 LinkedIn 從事資料科學的工作,主要負責全球領英的搜尋引擎優化,演算法和資料架構的搭建。過去幾年,我曾先後在微軟亞洲研究院、IBM 研究院、eBay 中國研發中心做機器學習方向的研究工作,還負責過大潤發飛牛網和 1 號店這兩家網際網路公司的核心搜尋和推薦專案,出版了《大資料架構商業之路》一書。
在 《程式設計師的數學基礎課》 這個專欄中,所有內容我都會從基本概念入手,結合工作中的實際案例,精講那些程式設計師真正用得上的數學知識。
通過學習專欄,你將獲得:
- 工程師必備的數學思想剖析
- 常用概率統計與線性代數精講
- 數學理論在程式設計中的實際應用
- 人工智慧入門必修課
年前的最後一次優惠,僅限今晚 24 點前, 戳我訂閱!