- 程序員數學:用Python學透線性代數和微積分
- (美)保羅·奧蘭德
- 1179字
- 2022-01-10 14:44:03
譯者序
程序員應不應該有一定的數學功底,這是一個老生常談的問題。
比起循序漸進地學習數學知識,很多程序員是在遇到跟數學相關的問題時才去主動了解的。這可能是因為某些知識早就成了塵封的記憶,也可能是因為那些知識從來沒有出現在他們的視野之中。
雖然這種“遇到問題解決問題”的學習方法會讓人陷入短暫的自我否定之中,但是等到真正掌握了某個數學知識點,那種“久旱逢甘霖”的感覺會讓人非常快樂。為了延續這種快樂,有的人從箱子里翻出了當年的高等數學、線性代數以及概率論與數理統計教材,但翻了幾頁之后又重歸自我否定;還有的人會繼續這種臨時抱佛腳的學習模式,從而進入“盲人摸象”模式:了解了許多知識點,卻始終不能形成完整的知識網絡。
于是本書的出現就非常必要了——它讓作為程序員的讀者,從程序員的角度、以程序員易于理解的方式來學習數學。
我相信大部分讀者看到書名,就會聯想到結城浩的《程序員的數學》系列圖書。從書名上來講,本書少了一個“的”字并不是為了避嫌(畢竟《程序員的數學》中文譯本也出自圖靈公司),而是恰到好處地給予了一種隱喻——這本書對數學知識的講解更為直接。
比起完全的啟發式寫作,本書作者更關注讀者是否真正掌握了相關的數學知識,主要體現在以下三點。
- 本書作者規劃了詳細的學習路徑——從基礎的向量計算到最終的神經網絡訓練,基本涵蓋了業務工程師和初級算法工程師所需了解的所有數學知識。
- 作者的寫作基于大量的代碼片段,且以Jupyter Notebook為載體,讀者可以直接把學到的數學知識轉化為代碼。當然,作為讀者的你也不必有太大的心理負擔,本書中的代碼完全遵循“夠用就好”的原則,不會增加額外的學習開銷。
- 作者為各章添加了大量的練習(事實上,很少見到一本書里有這么多練習)。這些練習既有開放式的提問,又有針對正文內容的擴展和提升。
綜上所述,本書的閱讀體驗很棒,學習曲線十分平緩,并且章節之間環環相扣。最關鍵的是,就像作者在第1章中提到的,它能幫你通過代碼來學習數學,并且用包含數學知識的代碼來解決實際問題。
說到本書的翻譯,首先要感謝把本書引入國內的圖靈公司編輯謝婷婷,讓譯者和讀者有機會跟著作者的思路重新梳理跟編程相關的數學知識。
當然,還要感謝參與本書翻譯的工程師們。
他們來自百度KFive,這是一個人數眾多、負責手機百度等移動端產品開發的大前端技術團隊。在平時的業務開發中,無論是日常產品功能的實現,還是涉及專業的端智能、前端智能化、視頻圖像處理和可視化等領域,都讓團隊中的同學或多或少感受到了數學知識不足的困擾。因此,這次翻譯對于譯者們來說也算是一次知識升級——誠如作者所言,通過代碼重新發現了數學之美。
這里列出參與本書翻譯的同學(按照章節順序):熊賢仁、范雨蓉、畢營帥、吳艷、樊中愷、梅旭光、岳雙燕、楊珺(同時承擔整體審校工作)、張靜媛。
話不多說,讓我們跟隨代碼的指引,開啟美妙的數學之旅吧。
樊中愷@百度KFive
2021年8月
- 大學計算機基礎(第二版)
- LabVIEW 2018 虛擬儀器程序設計
- Hands-On Machine Learning with scikit:learn and Scientific Python Toolkits
- Getting Started with PowerShell
- Blender 3D Incredible Machines
- C程序設計實踐教程
- OpenStack Orchestration
- Creating Stunning Dashboards with QlikView
- CoffeeScript Application Development Cookbook
- Mobile Forensics:Advanced Investigative Strategies
- 深入淺出 HTTPS:從原理到實戰
- Ionic3與CodePush初探:支持跨平臺與熱更新的App開發技術
- 網頁設計與制作
- ASP.NET本質論
- Opa Application Development