1. 程式人生 > >程式設計師為什麼一定要學好數學?駐足聽一下“老人言”

程式設計師為什麼一定要學好數學?駐足聽一下“老人言”

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

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

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

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

 

 

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

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

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

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

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

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

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

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

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

舉例說明:

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

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