很多程序員都有這樣的苦惱:
1)做算法優化時,只能現搬書裡的算法,遇到不一樣的問題,就不會了。
![“數學不好,幹啥都不行!”資深程序員:別再瞎努力了!](http://p2.ttnews.xyz/loading.gif)
2)面試一旦涉及到算法和數據結構,如果數學不行,面試基本就涼涼了。
![“數學不好,幹啥都不行!”資深程序員:別再瞎努力了!](http://p2.ttnews.xyz/loading.gif)
3)算法題還要邏輯思維、數學思維!圖形學還要算矩陣算法證明還要會基本的證明!後來發現各種東西還要概率論,還要推收斂!近似還要知道泰勒展開!
4)一個需求,我寫10行代碼,別人一行就搞定了,而且還知道這個算法空間與事件複雜度!
5)想學習人工智能,結果發現都是數學,如果不會,入門的機會都沒有。
相信我,這裡的問題,90%的程序員都遇見過,你從來不是一個人,只不過你和他們一樣,從未重視過而已。
每個程序員的困境都不盡相同,但是都可以歸納成一句話:數學不好,幹啥都不行!
問題到底出在哪裡?
其實,只是我們努力錯了方向。
我們在初學編程時,都過分關注代碼,而忽略了其底層邏輯,而所有的程序設計,其核心原理都是數學。
你可能想知道——既然數學很重要,我該如何學習呢?
關於程序員學習數學,我不建議你把將大學的相關書籍拿出來再學一遍,耗費大量時間不說,關鍵是跟實際應用無法結合,學了還是不會用!
我們在瞭解新技術時,通常會分成三個階段:第一階段是,怎麼用;第二階段是,原理是什麼;第三階段是,為什麼是這樣。
學數學也是這樣,也有這樣三個階段,先用起來,瞭解原理,再知道為什麼這麼做。