邁向高階軟體開發的數學必經之路

2021-06-13 21:55:15 字數 1741 閱讀 6375

[作者]

網名: 豬頭三

站點: 

email: [email protected]

程式設計生涯: 2001~至今[12年]

職業生涯: 9年

職業崗位: 通用軟體架構師 通用軟體技術總監 通用軟體研發工程師

開發語言: c/c++; x86asm; object pascal; c#;

開發工具: vc++; delphi;

研發領域: windows應用軟體安全; windows系統核心安全; windows系統磁碟資料安全;

技能種類: 逆向 驅動 磁碟 檔案

[序言]

很多人在學習程式設計的時候,都擔心自己的數學功底不行,不知道如何把數學根據實際的程式設計需求進行補習。我花了半個小時來寫了這篇文章,希望對大家有用。

[宣告]

這裡所說的「高階軟體」一般指:人工智慧識別、系統核心、遊戲引擎、資料庫引擎、網路大資料處理、地圖等大型軟體內部的基礎核心。其實大多數軟體人員不會從事這類高階工作。當然你有興趣進軍這類高階領域的話,下面介紹的數學理論,你必須牢牢的掌握並靈活應用。

[初等數學]

」小學「到「高中」所學的數學,歸類為初等數學。這是非常重要的階段,就好比學習英文26個字母一樣,先把最根本的原始知識概念弄清。

[高等數學]

大學本科非數學專業必修數學課程統稱高等數學,這另乙個重要的階段,是為你面向科學理論研究做準備的。

有了[初等數學]和[高等數學]的基礎理論之後,我們就可以進入電腦科學的數學理論學習:[離散數學]

[什麼是離散數學?]

它是數學的幾個分支的總稱,研究基於離散空間而不是連續的數學結構。離散數學大致分為:14個

1 數理邏輯

2 集合論

3 資訊理論

4 數論

5 組合數學

6 圖論

7 抽象代數

8 理論電腦科學

9 拓撲學

10 運籌學

11 博弈論、決策論、效用理論、社會選擇理論

12 離散化

13 連續數學的離散近似

14 離散和連續混合數學

我個人建議優先掌握:[集合論]、[組合數學]、[圖論]、[運籌學]、[博弈論、決策論、效用理論、社會選擇理論]

4> 如果還需要完美一點,可以擴充套件和深入2個基礎數學理論:概率論、線性代數

通過以上方法的系統學習之後,然後把所學到的數學理論應用到軟體開發中,你基本是無人能敵了。

[個人建議]

數學理論的學習,是乙個漫長的過程,是需要細水長流來進行的。在我眼裡學習程式設計的朋友,從初一開始學是最合適的,因為這樣的年齡在學習程式設計的過程中,也同時會受到學校內部的應試數學理論教育,通過2者的同時學習,可以靈活把概念互通,堅持到大學畢業,必將是中國的未來之星。當然,半路出家而獲得成功的例子也很多,數學功底不好,也能通過開發軟體發家致富的也很多,比如我就是乙個數學功底不好的軟體開發工程師,我幹這樣到現在快12年了,一樣可以有房有車。所以我們不要總是因為數學而害怕學習程式設計,重要的還是個人後期的自我學習。

[之前我寫過一篇文章,鼓勵大家不要因為害怕數學而放棄學習程式設計的機會]

[原創]不要因為英語和數學而害怕學習程式設計

書評 提公升軟體質量的必經之路

2006年06月18日 13 20 00 軟體是多個 人 長期構思,協同作業下的成果,不可能不出錯。若沒有配置相當的人力物力資源,分階段把關測試,將隨著系統規模漸大而逐漸失去控制的能力。小標 被疏忽的一環 筆者在赴製造業授課時,看到偌大的辦公大樓內,整個樓層的品保 qa 專業人員,使用華麗的軟硬體,...

書評 提公升軟體質量的必經之路

軟體是多個 人 長期構思,協同作業下的成果,不可能不出錯。若沒有配置相當的人力物力資源,分階段把關測試,將隨著系統規模漸大而逐漸失去控制的能力。小標 被疏忽的一環 筆者在赴製造業授課時,看到偌大的辦公大樓內,整個樓層的品保 qa 專業人員,使用華麗的軟硬體,針對製造流程上的瑕疵缺點做各種的良率分析,...

書評 提公升軟體質量的必經之路

軟體是多個 人 長期構思,協同作業下的成果,不可能不出錯。若沒有配置相當的人力物力資源,分階段把關測試,將隨著系統規模漸大而逐漸失去控制的能力。小標 被疏忽的一環 筆者在赴製造業授課時,看到偌大的辦公大樓內,整個樓層的品保 qa 專業人員,使用華麗的軟硬體,針對製造流程上的瑕疵缺點做各種的良率分析,...