<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          數(shù)學(xué)好對 Go 程序員有幫助嗎?

          共 2046字,需瀏覽 5分鐘

           ·

          2020-10-28 12:58

          “程序員需要學(xué)數(shù)學(xué)嗎”一直是個行業(yè)熱門議題,正方說因?yàn)椴欢當(dāng)?shù)學(xué)繞過一些彎路,反方會說絕大多數(shù)工作都用不上那些原理。總之,做這個 battle 就像西西弗斯推石頭,沒完沒了沒意義。

          ?

          我剛?cè)胄袝r覺得,數(shù)學(xué)是解決一些問題的工具,但是業(yè)余時間寧愿學(xué)寫設(shè)計(jì)模式,也不會花時間學(xué)數(shù)學(xué)原理。工作幾年后終于理解這句話:編程的本質(zhì)就是數(shù)學(xué)問題。


          ?

          舉個最基礎(chǔ)的例子,衡量代碼運(yùn)行效率的一個重要因素是復(fù)雜度。空間復(fù)雜度和時間復(fù)雜度的分析就源于數(shù)學(xué)的極限的概念。復(fù)雜度的計(jì)算就是一個關(guān)于輸入數(shù)據(jù)量 n 的函數(shù),只要你稍有數(shù)學(xué)思維,就能從平時的編程經(jīng)驗(yàn)中得出這些結(jié)論:

          ?

          一個順序結(jié)構(gòu)的代碼,時間復(fù)雜度是O(1),
          二分查找,時間復(fù)雜度是O(logn),
          一個簡單的 for 循環(huán),時間復(fù)雜度是 O(n),
          兩個順序執(zhí)行的 for 循環(huán),時間復(fù)雜度是 O(n)+O(n)=O(2n),其實(shí)也是O(n),
          兩個嵌套的 for 循環(huán),時間復(fù)雜度是 O(n2)。

          具備這些意識,工作中再去分析代碼的時間復(fù)雜度會容易很多。實(shí)現(xiàn)基本功能的代碼,誰都能寫,真正的能力門檻是把代碼寫得簡潔、優(yōu)雅、可持續(xù)優(yōu)化。

          ?

          越往高處走,越是基本功的比拼。數(shù)學(xué)基礎(chǔ)好的人,邏輯思維不會差,在編程世界中,理解底層原理、數(shù)據(jù)結(jié)構(gòu)、算法,都會比別人快一步,這可能被被誤認(rèn)是優(yōu)秀程序員的“天分”,我更相信,這是數(shù)學(xué)功底帶來的養(yǎng)料。

          ?

          數(shù)學(xué)不好,怎么辦?

          ?

          數(shù)學(xué)這個龐大學(xué)科是出了名的高深,聽原理名詞就能勸退很多人,不過我們的目標(biāo)不是學(xué)成數(shù)學(xué)家,沒必要追求大而全。學(xué)好程序員用得上的數(shù)學(xué),就足以讓你成為我們這一行的專家。

          ?

          哪些知識是程序員用得上的數(shù)學(xué)?

          ?

          行業(yè)大佬最有發(fā)言權(quán),認(rèn)識這個大佬源于之前一個爆款課程《重學(xué)數(shù)據(jù)結(jié)構(gòu)與算法》,履歷很不錯,既是中科院博士,又是國內(nèi)一線互聯(lián)網(wǎng)公司的資深算法專家,學(xué)科背景扎實(shí),一線代碼經(jīng)驗(yàn)也很豐富。所以這次他做了這個專門給程序員的數(shù)學(xué)課,我是非常信賴的。

          ?


          這個課會怎么講?

          ?

          坦誠地講,我看了目錄后發(fā)現(xiàn),這個課對數(shù)學(xué)這個學(xué)科來說,只是冰山一角,而對程序員來說,卻是工作中用得上的絕對部分。

          ?

          實(shí)踐永遠(yuǎn)是真理的落腳點(diǎn),數(shù)學(xué)原理對我們不是空中樓閣,而是一定要用于代碼優(yōu)化。舉個簡單例子,回到我們最初討論的,如何降低代碼復(fù)雜度:

          ?

          一個無序數(shù)組查找問題,數(shù)組中只有數(shù)字 obj 出現(xiàn)了一次,其他數(shù)字都出現(xiàn)了兩次,查找 obj ,常規(guī)解法的復(fù)雜度應(yīng)該是:O(n2) 時間復(fù)雜度、O(1) 空間復(fù)雜度,或者 O(n) 時間復(fù)雜度、O(n) 空間復(fù)雜度。但我們加個約束為O(n) 的時間復(fù)雜度、O(1) 的空間復(fù)雜度。


          如果你熟知數(shù)學(xué)的異或運(yùn)算的這兩個性質(zhì):任何數(shù)異或自己,為零,任何數(shù)異或零,是它自己。你就會輕易找到解決辦法,把數(shù)組中所有元素計(jì)算一下異或就可以了。實(shí)現(xiàn)代碼如下:


          a = [2,1,4,3,4,2,3]result = a[0]for i in range(1,len(a)):    result = result ^ a[i]print result

          ?

          通過這個例子是想告訴你,這個課不會給你講異或運(yùn)算的前世今生,就像去證明哥德巴赫猜想,而是讓你聚焦工作領(lǐng)域,夯實(shí)基本功,先把這些基礎(chǔ)知識搞定,你的邏輯、思想模式,將不拘泥于代碼本身,而是能用數(shù)學(xué)思想解決問題。

          ?

          這個課程會講些什么?

          ?

          ①?養(yǎng)成無處不在的數(shù)學(xué)思維。第一模塊通過數(shù)制轉(zhuǎn)化、數(shù)學(xué)邏輯、經(jīng)典公式等原理與業(yè)務(wù)代碼示例,講解數(shù)學(xué)思維是如何運(yùn)用在日常編程工作中的,讓你重新審視數(shù)學(xué)思維在工作中的作用。


          ②?程序員必備的數(shù)學(xué)原理:代數(shù)與統(tǒng)計(jì)。精簡的數(shù)學(xué)知識,比如求極值、向量與導(dǎo)數(shù),這些應(yīng)用于實(shí)際工作哪些方面:如何找到復(fù)雜業(yè)務(wù)最優(yōu)解,如何完成海量高維度數(shù)據(jù)計(jì)算。這一模塊將帶你認(rèn)識數(shù)學(xué)原理的實(shí)際應(yīng)用,更為你打好理論基礎(chǔ)


          ③?打好編程基本功:算法與數(shù)據(jù)結(jié)構(gòu)。這一模塊會講到二分法、動態(tài)規(guī)劃、遞歸等通用算法和重要思想,從數(shù)學(xué)角度找到算法背后的規(guī)律,還會結(jié)合實(shí)戰(zhàn)場景,如:利用指數(shù)爆炸優(yōu)化程序,將數(shù)學(xué)原理、算法與實(shí)戰(zhàn)結(jié)合,事半功倍地夯實(shí)開發(fā)基本功。


          ④?AI 與機(jī)器學(xué)習(xí),熱門領(lǐng)域的核心技術(shù)。AI 與機(jī)器學(xué)習(xí)的技術(shù)核心其實(shí)是數(shù)學(xué)問題,這一模塊將通過幾個常用技術(shù)點(diǎn),邏輯回歸、決策樹等,帶你入門 AI 建模,從數(shù)學(xué)角度理解當(dāng)前熱門領(lǐng)域。

          ?

          程序員用得上的數(shù)學(xué)知識,都在這個大綱里

          ?

          ?

          ?大詩人陸游曾說“工夫在詩外”,數(shù)學(xué)對程序員來說,也是如此,它不是你學(xué)完即用的技術(shù),卻是你必不可少的滋養(yǎng),希望數(shù)學(xué)這個“詩外之工”讓你離一流程序員,更近一步。

          ?


          ?額外福利:


          點(diǎn)擊“閱讀原文”免費(fèi)獲得:


          1.領(lǐng)取配套學(xué)習(xí)資料

          2.加入學(xué)習(xí)交流群、反饋學(xué)習(xí)難題

          3.不定期技術(shù)公開課免費(fèi)聽

          瀏覽 48
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  麻豆出品必是精品(3) | 在线人妻av | 欧美插逼网站 | 日韩一级在线观看免费 | 91精品成人tv无码 |