課程介紹:
數學基礎的好壞,會直接決定一個程序員的發展潛力。
往大了說,數學是一種思維模式,考驗的是一個人歸納、總結和抽象的能力。把這個能力放到程序員的世界里,其實就是解決問題的能力。
往小了說,不管是數據結構與算法,還是程序設計,很多底層原理和編程技巧都源自數學,比如你熟悉的分頁功能,用的其實是余數的思想。
所以很多大公司招人時,都會優先考慮數學專業的畢業生。數學基礎好,學編程也更容易上手。
如果說編程語言是血肉,那數學的思想和知識就是靈魂。它可以幫你選擇合適的數據結構和算法、提升系統效率,并且賦予機器智慧。尤其在大數據和智能化的時代,更是如此。
因此,學數學絕不是死背那些艱深晦澀的定理和公式,洞悉技術本質,掌握知識規律,具備數學思維,擁有發現問題、分析問題、解決問題的能力,才是你的終極目標。
那程序員究竟該如何學習數學呢?在這個專欄里,黃申從編程的視角,結合自己十多年學術經驗和工業實踐,總結了一套適合程序員的數學學習方法和知識體系。希望通過“知識 – 應用 – 知識”的講解路線,為你貢獻一堂實用、精彩的數學課。
專欄共四大模塊,精講那些程序員真正用得上的數學知識。
基礎思想篇
梳理了編程中最常用的數學概念和思想,比如余數、迭代、排列、組合,由淺入深精講數據結構與數學是如何你中有我,我中有你。幫你徹底掌握這些最基礎、最核心的數學知識,同時也能讓你明白,數學對編程和算法究竟意味著什么。
概率統計篇
以概率統計中最核心的貝葉斯公式為圓心,向上講解隨機變量、概率分布這些基礎概念,向下講解樸素貝葉斯,并分析它們在生活和編程中的實際應用,在應用中反哺概念。讓你真正理解概率統計的本質,跨過概念和應用之間的鴻溝。
線性代數篇
從線性代數中最核心的概念向量、矩陣、線性方程入手,逐步深入分析,這些概念是如何與計算機互幫互助,融會貫通,解決實際問題的。比如,線性代數究竟是在講什么?怎樣讓計算機理解現實世界?如何過濾冗余的新聞?從概念到應用,再到本質,讓你不再害怕新技術中的“舊知識”。
綜合實戰篇
將通過緩存系統、搜索引擎、推薦系統中的實際應用,串講前面講到的數學知識和概念,幫你加深對知識的理解,學會用數學思維來分析問題和解決問題,讓數學思維成為你的一種基礎能力。