[作者]
網名: 豬頭三
站點:
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 專業人員,使用華麗的軟硬體,針對製造流程上的瑕疵缺點做各種的良率分析,...