優秀的程序員需要懂那些數學知識?
01-06
請問,優秀的程序員需要具備哪些數學知識?
針對所需數學知識,在國內外有哪些優秀的書籍?本人更喜歡優化類數學模型的研究,請問數學建模這塊對編程能起到哪方面的幫助?煩請各位高人解答,謝謝!
數論、離散數學、線性代數、張量、統計學,這幾個吧。
對演算法優化、狀態表示、數據結構設計、時間 - 空間複雜度分析都有很大幫助。學抽象代數吧,雖然對你解決老闆的問題沒有直接幫助,但是對於你了解各個語法結構和計算模型之間怎麼變形有顯著效果。
如果你正好要做機器學習或者數據挖掘的工作,你會發現高數,線性代數,概率論,統計,矩陣論,他喵的你都要學的無比精深才行啊~
我先從大學本科CS科班基本要求說起:無疑是高等數學,線性代數,概率論和數理統計,離散數學當然這四門是最普通也最常見的開設課程,不說程序員,前三門應該是所有大學工科學生基本素養(理科要求更高)。接下來就可能是一些根據自己方向不斷要加強和補充的:
- 深入掌握矩陣的相關理論:計算機視覺,圖形圖像。
- 離散數學:網路安全,最優化方法,演算法的設計實現,推薦Rosen的《離散數學及其應用》。
- 隨機過程:這個可視為概率數理統計課的升級版本,這個課程中某些內容非常重要,特別是在大數據和雲計算的應用,科研方面更不用說(幾乎是整個NLP領域的起點),對轉金融領域也有好處。書籍推薦Ross的《應用隨機過程—概率模型導論》。
- 組合數學與初等數論:這些對於演算法設計與實現也有很大幫助,但不必深究,屌絲程序員還是多看點面試題靠譜
- ......還有我沒答道的地方還希望大家補充~
學組合數學和數論對比賽很有幫助
高德納的&<具體數學&>你值得擁有~!
狂學數學,真的。遇到什麼學什麼。
其實一般的 組合分析 圖論 線性代數 基本夠用 ,如果要方便轉一些比較特殊領域的話 分析 傅立葉級數 抽代 應用概率論 資訊理論 組合優化 凸優化 數值分析 今後大部分的特殊應用好上手………
推薦閱讀:
※如何證明這個關於π的方程?
※如何自學高數(同濟第六版)下?——以穩過期末考試(75分+)為目的?
※割圓術是錯的嗎?
※怎樣才算是理解了一個東西,比如理解了一個概念?
※存在導函數每一點都不連續的函數嗎?