基於程序員的修養的認識

      好久沒有寫博客了,可能前兩年忙着做別的事情了,跳槽,學習,工作,最近工作還好,有時間寫寫最近兩年的一些技術積累和自我認識。

      從剛畢業的乳臭未乾的糞青,變成了現在一箇中年職場老員工,其實也就工作了六年多,但是收穫還是頗多的,最近從小公司,到中型公司,在到兩位馬老師的公司。從做寫遊戲邏輯到後臺服務搭建,核心底層代碼修改,線上維護,到後來做分佈式機器學習,搜索,現在在搞大數據平臺。整個過程經歷了很多,也遇到了很多人,其實主要有倆個公司老大對自己影響很大,一個是完美的,一個是阿里巴巴的,前者不僅教會了最近如何學習,思考問題,解決問題。後者教會了自己如何創新,走在業內前沿,現在想來也可能和倆個人的學歷有關,畢竟後者是個北大博士。

     整個程序的發展歷程就和internet發展歷程及其相似,主要說一下技術點,主要有以下幾個方面:

    後臺服務期開發:

         1 網絡

            常見的tcp,udp,http/https協議簡單認識,包括抓包和底層一些原理實現。

         2 數據庫

            常見的mysql,nosql,ttserver,redis等,還有分佈式數據庫等

        3 linux一些調試和代碼性能分析工具

           包括一些常用工具,gdb,ps,strace,ltop,top,lstrace,perf top,mpstate,iostat等

        4 語言層面

            主要是c/c++/java 一些需要編譯的語言,裏面主要有一些語法特性,包括模版,反射,c++11特性

            腳本層語言python/lua,主要有很強的依賴庫,基於虛擬機的腳本機制,以及底層調用框架的理解。

        5 併發行

           多線程,多進程,協程,鎖,條件變量,還有各種池

  機器學習:

       1 數學功底強,

       2 單機版機器學習,可以用c++實現複雜的數學公司

       3 分佈式機器學習,不僅要對算法有深刻的理解,還要對分佈式框架有深刻的認識,兩者才能很好的結合。(難度係數2.0)

從上面發現,這些都是很基礎的,其實還有其他很多設計模式,語法糖等,從其中裏面往下走都會是一個很窄的區域,很深,並且業內沒有幾個人能做到通喫,基本能做到,我知道的,基本現在不是vp就是總監以上了,寫過的框架代碼,也不知道被多少人膜拜過和分析過無數次,甚至已經超越了作者本身的認識。

      感覺程序員越來越像生活中開面館的人一樣,你如果在某一個技術點發力,需要要有工匠精神,多年來做一件事,而不是這個做倆天換一個,最後會發現自己什麼都平平,如果做上leader那另當別論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章