1. 程式人生 > >程序員為什麽一定要學好數學?駐足聽一下“老人言”

程序員為什麽一定要學好數學?駐足聽一下“老人言”

。。 數學 目前 空間 http 我們 指令 基本 最終

講一下自己的慘痛經歷!三個方面:

1、數學?不存在的,老子只學專業課!

2、數學?不學不行,老子還得去補一下!

3、數學?不僅僅要學,還要深入學!

技術分享圖片

1、數學?不存在的,老子只學專業課!

學習之初,很多人都會有這樣的困惑。包括我在內,我想學計算機專業,老師你就直接單槍直入,教我專業性的東西啊,光教一些跟編程八竿子打不著的數學幹啥?!

這樣導致的一個結果就是,每次基礎學科考試總是應付了事,抱著能過能及格的心態一路走來,不遇坎坷就一直坐著自由落體的運動!

2、數學?不學不行,老子還得去補一下!

我學習數據結構和算法時,總感覺自己用起來沒有得心應手的感覺,做一些算法優化的時候,基本上也是只能現搬書裏的算法,遇到不太一樣的問題,就不知道怎麽解決了。就比如那些什麽排序,快速排序堆排序希爾排序。。。只能記住他們的時間復雜度和空間復雜度和寫法,卻從來不知道這些算法是怎麽設計出來的,這些算法為什麽是正確。

於是開始不斷地翻看算法相關的書籍,原因正是數學基礎不好,因為沒有從根基上了解其原理,所以學習起來總感覺自己在中間飄著。

其實無論我們以後是學習哪一門編程語言,或者說要學習大數據、人工智能等,數學是一個很重要的學科。

3、數學?不僅僅要學,還要深入學!

計算機歸根到底在cpu執行的都是指令操作,每個指令最終都是靠0101二進制來存儲和解析,這就是數學裏面最基本的東西。所以說,計算機和數學密不可分。

舉例說明:

歸納證明法和遞歸編程的關系非常緊密,你不理解其中一個,就不可能真正理解另外一個。你可能不知道術語基本情況和歸納假設,但是如果你不能理解這些概念,你就沒有辦法寫 出正確的遞歸程序。所以,即使是在與數學無關的領域內,不理解這些數學概念的程序員也會遇到很多困難。 優化方法取決於函數的形式,從目前看,最優化方法通常是基於微分、導數的方法,例如梯度下降、爬山法、最小二乘法、共軛分布法等。 還有線性代數中的矩陣、轉置、秩 分塊矩陣、向量、正交矩陣、向量空間、特征值與特征向量等在數據分析中都有很大的關系。

綜上:如果想要在IT行業技術上有突破深入發展,還是要深入學習數學的。不能說你為了學編程就是寫點應用邏輯,這樣多沒意思。什麽編譯器,操作系統,瀏覽器,數據庫,遊戲引擎,大學期間都可以自己試試造輪子寫一寫,學習過程中不要老是用別人的API,老是用別人寫的庫,要度嘗試自己寫內核,雖然一開始可能會很爛,但畢竟能讓自己學到東西不是?

程序員為什麽一定要學好數學?駐足聽一下“老人言”