網上流傳的對程式員的分級方式,不知道大家看到過沒:
一流程式員靠數學;二流程式員靠演算法;
三流程式員靠邏輯;四流程式員靠SDK;
五流程式員靠 Google 和百度;低端的看高端的就是黑魔法 ,
說是段子,更是程式員的真實寫照,我也知道,大部分普通程式員在開發程序中,用中學數學基礎是足以應付的,好像不需要學習高端的數學,
但問題是,以目前的職場環境來說,只要你想再往上走一步、做任何一點帶有創新性的技術,最容易遇到的,往往就是數學問題,
比如,演算法涉及大量數學基礎和相關背景知識,圖形處理相關的演算法,大量的線性代數矩陣變換等等,Google 還曾用一道數學題作為投遞簡歷的門檻,之前朋友圈就被這個招聘廣告牌刷過屏,
其實,不止是 Google,我隨便翻了翻招聘啟事,發現,很多大公司在招應屆研發時,都會優先考慮數學專業的畢業生,
無論是資料結構與演算法,還是程式設計, 底層原理和思路都源自數學 ,在大資料和智能化的時代,學好數學更是門檻本身,
“程式員不需要學數學,因為作業中根本用不到數學,有學數學的功夫,還不如認真把設計模式、計算機網路、作業系統這些硬知識學好,” 這是很多人的觀點,是的,作為程式員,你不需要任何數學知識,也可以寫好代碼,
但我認為,數學學得好不好,將會直接決定一個程式員未來的發展潛力,往大了說,數學是一種思維模式,考驗的是一個人歸納、總結和抽象的能力,放到程式員的世界,就是解決問題的能力,
往小了說,不管是資料結構與演算法,還是程式設計,其底層原理和思路很多都源自數學,所以很多大公司在招人時,都會優先考慮數學專業的畢業生,因為數學基礎好,學習編程會更容易上手,
那程式員到底該如何學數學呢?我整理了三位技術專家的看法,
Steve Yegge | 資深程式員
1. 正確學習數學的方法是廣度優先,而非深度優先,你要了解的是整個數學領域每個概念的名字,并知道它們要解決什么問題,
2. 把數學當成文科來學,先不用重點看那些演算法和證明,只需要了解數學概念的名字、作用、大致步驟、發明人、發明時間、局限等,
3. 數學符號是關閉你通往另一個世界的符咒,如果你看到一堆自己不懂的數學符號,就把它的實作功能簡單地當成一個原子操作好了,不要深究太多,
徐文浩 | bothub.ai 創始人
1. 從作業相關的領域開始了解數學,這樣你更容易獲得正反饋,
2. 把正在學習的數學問題的解法,寫一個演算法程式實作出來,這是一個不錯的練習方法,
3. 你可以選擇追一門數學相關的在線課程,跟著老師的節奏來系統理解數學,
劉超 |《趣談網路協議》專欄作者
階段一:怎么使用?咱們做工程的,還是實作出來,程式跑起來看,我一開始使用Lucene的時候,因為介面已經十分友好,是很容易實作一個簡單的搜索引擎的,這個時候,我還處在第一個階段,
階段二:如何實作,原理是什么?只會用可不行,原理都不了解,沒法調優和Debug,我這個人愛看源代碼,于是就去分析里面的原理,有的部分就比較晦澀,需要結合Debug和代碼貢獻者的檔案才能有所了解,這個時候,我處在第二個階段,寫了大量原始碼分析的文章,
階段三:為什么這樣實作?其實實作一個東西有好多種方法,作者之所以選擇這樣實作,都是因為數學算過的,這樣的性能或者準確度最高,我在讀Lucene代碼貢獻者的檔案的時候,有的作者會列出很多的論文,這里面有大量的數學推演,以及并列的多種方法,你才會發現開源軟體的實作也是滄海一粟,這樣才能舉一反三,
希望對大家有幫助~
如果你想更好的提升你的編程能力,好好學習C/C++編程知識,以后努力成為高薪軟體開發工程師的話!
C語言C++編程學習交流圈子,QQ群464501141【點擊進入】微信公眾號:C語言編程學習基地
分享(原始碼、專案實戰視頻、專案筆記,基礎入門教程)
歡迎轉行和學習編程的伙伴,利用更多的資料學習成長比自己琢磨更快哦!
編程學習書籍:

編程學習視頻:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/258001.html
標籤:其他
下一篇:非遞減數列(貪心)
