摘要: 每一個程序員、或者說每一個工做者都應該有本身的職業規劃,若是你不是富二代,不是
官二代,也沒有職業規劃,但願你能夠思考一下本身的未來。複製代碼
今天給你們分享的是一篇來自騰訊C/C++架構師對普通程序員的職業建議,但願對你mysql
有啓發。
對於大多數的程序員,能夠分爲如下三個階段linux
我認爲三年對於程序員來講是第一個門檻,這個階段將會淘汰掉一批不適合寫nginx
代碼的人。這一階段,咱們走出校園,邁入社會,成爲一名程序員,正式從書程序員
本上的內容邁向真正的企業級開發。咱們知道如何團隊協做、如何使用項目管面試
理工具、項目版本如何控制、咱們寫的代碼如何測試如何在線上運行等等,積redis
累了必定的開發經驗,也對代碼有了必定深刻的認識,是一個比較純粹的Coder算法
的階段。一個比較明顯的分水嶺就是初學人員在用計算機的思惟寫代碼,而有spring
一部分人精益求精,開始在用藝術的思惟寫代碼,好比我接觸到一個朋友在羣sql
裏問的問題:
設計模式
若是你認爲這是一個初學人員常見的一個問題,而我是認爲不少人染上了江湖
惡習或者梁山好漢的臭氣同樣,一者是喜歡在代碼裏耍酷,兩者是隨意隨性,
只管實現了功能了事。因此一個程序員是否能繼續深刻到第二個階段,須要的
是系統地知識和閱讀優秀代碼的能力,好比數據結構、linux系統、各類組件
(如redis、mysql、zookeeper),瞭解了應用程序如何調用周邊系統的接口,
以及學習了一點周邊系統通常的抽象方法。
我認爲五年又是區分程序員的第二個門檻。有些人在三年裏,除了完成工做,
在空餘時間基本不會研究別的東西, 熱衷於研究各類技術實現細節、看了N多
好書、寫一些博客、在Github上分享技術,可是大多都是人云亦云,沒有技術
的鑑別能力,沒有深度的思考能力。
好比出去面試的時候:
面試官:熟悉TCP不?
程序員:熟悉! 【PS心理活動】嘿嘿!我這幾天在偷偷看了TCP的三次握手四
次揮手。
面試官:TCP的TIME_WAIT狀態是怎麼回事,如何解決?
程序員:TIME_WAIT,我記得書上是這麼說的~~~。 【PS心理活動】媽呀,都
不按套路出牌啊,手心開始有漢,渾身開始不舒服......
面試官:大家這個遊戲面臨高併發時,網絡IO處理的模型是怎麼設計的。【PS
心理活動】沒有深刻了解TCP也沒有關係,可能業務不涉及,問點跟項目相關
的。
程序員:哦,咱們當時採用多線程的設計,每一個線程負責一個鏈接的socket,
並且用了緩存隊列。【PS】終於問了我熟悉點的,這個項目的主程跟我關係
好,給我講解了他的代碼。
面試官:嗯,那你還熟悉其它的IO模型不?
程序員:咱們那個項目夠用了,沒有嘗試過其它模型了。
這就是典型的菜B,你要說他菜他必定不服你,甚至口水戰就要來了。
我想說「 是故非澹漠無以明志,非寧靜無以至遠。」 一我的技術是否牛逼,在氣
質上都會不同,虛懷若谷,大智若愚,不疾不徐,或者目光如炬,才思敏捷。。當你深刻了解,旁徵博引,深刻思考和測試才能逐步深刻技術。
還有一類人覺得會一些設計模式就是架構設計,會用各類組件拼接就是架構,
跟你滿嘴的springMVC,redis,mysql等等,但是當你提起系統性能、業務可擴
展性、系統一致性時,彷佛也聽見過一些設計,可是當寫起代碼來全然不顧,
而後又一堆的BUG解都沒有辦法解。
這些人裏只有一小撮人能在五年後具有在技術上獨當一面的能力而且清楚本身
將來的發展方向,從一個Coder逐步走向系統分析師或是架構師,成爲項目組中
不可或缺的人物,而其他絕大部分人會。中止不前,甚至陷入深深的憂患當
中,奈何已成溫水中的青蛙。
十年又是另外一個門檻了,轉行或是繼續作一名程序員就在這個節點上。若是在
前幾年就抱定不轉行的思路而且爲之努力的話,那麼在十年的這個節點上,有
些人必然成長爲一名對行業有着深刻認識、對技術有着深刻認識、能從零開始
對一個產品進行分析的程序員,這樣的人在公司基本擔任的都是CTO、技術專
家、首席架構師等最關鍵的職位,這對於本身絕對是一件榮耀的事,固然老闆
在經濟上也毫不會虧待你。
我認爲隨着工做年限的增加、對生活對生命認識的深刻,應當不斷學習思考
關於專業技能
程序員應該具有的技能
我這裏要說明一下,如下列舉的內容不是都要會的東西。可是若是你掌握得越
多,那麼你的架構設計能力就更強。
一.源碼分析專題
數據結構:紅黑樹、平衡二叉樹、B樹和B+樹、布隆過濾器、KMP算法
設計模式:責任鏈模式、發佈訂閱模式、Reactor模式、過濾器模式、代理模
式、工程模式
開源源碼分析:nginx、zeroMQ
詳細介紹源碼中所用到的經典設計思想,看看大牛是如何寫代碼的,提高技術
審美、提升核心競爭力。
二.分佈式架構
架構實戰:鬥魚視頻直播技術核心揭祕、網易門戶高負載均衡實現、淘寶海量
數據存儲引擎、open api設計。
架構中間件:分佈式RPC框架 、分佈式MQ
架構策略:一致性、可靠性、可擴展性、高併發海量數據設計。
架構原理:消息驅動式架構設計、動態域名作高負載均衡、P2P去中心化。
做爲技術開發者,如何去應對技術變革帶來的技能危機。基於傳統架構到分佈
式架構演變過程所帶來的技術變革進行全面深刻講解。在技術深度和技術廣度
上獲得飛躍的提高。
三.集羣架構專題
mysql、redis、mongdb、nginx + lvs、zookeeper集羣。
面對海量的數據、高併發的請求,集羣保證水平可擴展性,保證系統可靠性是
惟一的途徑。
四.linux系統
深刻內核層面理解系統,理解系統架構設計,使用一系列的工具深刻挖掘系統
瓶頸,而不是人云亦云的優化和架構設計。
五.工程化專題
六.性能調優
七.音視頻專欄
不論是剛入門的小白,仍是才高八斗的資深開發、架構,你都須要從這裏開始
對於來講小白能夠快速提高
對於資深開發人羣能夠加分
以上就是我要說的內容,但願以上的內容能夠幫助到正在默默艱辛,遇到瓶頸
且不知道怎麼辦的程序員們,但願你們在日後的工做與面試中一切順利。
如何快速學習,有沒有免費資料?
當真正開始學習的時候不免不知道從哪入手,學習時頻繁踩坑,致使效率低下
影響繼續學習的信心,最終浪費大量時間。
爲了讓學習變得輕鬆、高效!今天給你們免費分享一套教學資源,幫助你們在
成爲架構師的道路上披荊斬棘。
私信回覆「資料」獲取往期CPP高級架構資料、源碼、筆記、視頻
合理利用本身每一分每一秒的時間來學習提高本身,不要再用"沒有時間「來掩飾本身思想上的懶惰!趁年輕,使勁拼,給將來的本身一個交代!