首先,無(wú)論是哪方面的程序員师抄,都要大量的投資算法和數(shù)據(jù)結(jié)構(gòu)漓柑。因?yàn)檫@是你的基本技能,就像棋手需要知道每個(gè)棋子的走法一樣叨吮。在算法學(xué)習(xí)的過(guò)程中辆布,你繞不過(guò)的就是衡量算法的效率,也就不可避免的學(xué)習(xí)Big O的知識(shí)茶鉴。Big O锋玲,需要你了解函數(shù)和極限的一些知識(shí),比如說(shuō)涵叮,f(n) = O(g(n))是這樣定義的惭蹂,當(dāng)n足夠大的時(shí)候,你總可以找到一個(gè)常數(shù)c割粮,使得c * f(n) >g(n)盾碗。除了效率,還有如何證明算法的正確性舀瓢。這就要求掌握一些證明方法廷雅,比如反正法,遞推歸納法。
其次航缀,如果你遇到了性能方面的問(wèn)題商架,需要降低延遲,增加吞吐的時(shí)候谬盐,你很有可能需要去設(shè)計(jì)高性能的隊(duì)列系統(tǒng)甸私,這時(shí)排隊(duì)論的知識(shí)就顯得尤為重要了。排隊(duì)論要學(xué)好飞傀,概率論是基石皇型。隊(duì)列在計(jì)算機(jī)系統(tǒng)中隨處可見(jiàn),操作系統(tǒng)中的進(jìn)程調(diào)度問(wèn)題砸烦,基于隊(duì)列解藕生產(chǎn)者消費(fèi)者的架構(gòu)問(wèn)題等等弃鸦。
接下來(lái)如果你對(duì)離散優(yōu)化問(wèn)題感興趣,如說(shuō)背包問(wèn)題幢痘,旅行者問(wèn)題唬格,當(dāng)你需要優(yōu)化一個(gè)目標(biāo)函數(shù)的時(shí)候,你往往會(huì)用到梯度下降法颜说,而理解梯度下降法购岗,對(duì)微積分要有很好的理解。更不用說(shuō)在人工智能门粪,機(jī)器學(xué)習(xí)領(lǐng)域喊积,到處都得優(yōu)化目標(biāo)函數(shù),降低預(yù)測(cè)誤差玄妈,想走的遠(yuǎn)乾吻,是必須要有數(shù)學(xué)基礎(chǔ)的。
然后再說(shuō)一下拟蜻,線(xiàn)性代數(shù)绎签,特別是在人工智能里面,很多基本的模型都是線(xiàn)性的酝锅,你會(huì)隨處看到矩陣的用處诡必,單純的只知道矩陣如何相乘是遠(yuǎn)遠(yuǎn)不夠的,要理解的跟深入搔扁,矩陣是一個(gè)函數(shù)擒权,用來(lái)轉(zhuǎn)換矢量,既然是函數(shù)阁谆,就會(huì)具有很多函數(shù)的特點(diǎn)。
分布式系統(tǒng)中的鼻祖級(jí)論文愉老,Lamport的時(shí)間场绿,時(shí)鐘,和事件的順序嫉入,據(jù)他所說(shuō)是他從相對(duì)論中的時(shí)間和空間的關(guān)系中得到的靈感焰盗。由此可見(jiàn)璧尸,不僅是數(shù)學(xué),物理也很重要熬拒。