C++ 程序員到高級架構師,必須經歷的三個階段
每個程序員、或者說每個工作者都應該有自己的職業規劃,如果你不是富二代,不是官二代,也沒有職業規劃,希望你可以思考一下自己的將來。今天給大家分享的是一篇來自騰訊C/C++架構師對普通程序員的職業建議,希望對你有啟發。
對于大多數的程序員,可以分為以下三個階段。
第一個階段三年 : 代碼里沒有人的思維
我認為三年對于程序員來說是第一個門檻,這個階段將會淘汰掉一批不適合寫代碼的人。
這一階段,我們走出校園,邁入社會,成為一名程序員,正式從書本上的內容邁向真正的企業級開發。
我們知道如何團隊協作、如何使用項目管理工具、項目版本如何控制、我們寫的代碼如何測試如何在線上運行等等,積累了一定的開發經驗,也對代碼有了一定深入的認識,是一個比較純粹的Coder的階段。一個比較明顯的分水嶺就是初學人員在用計算機的思維寫代碼,而有一部分人精益求精,開始在用藝術的思維寫代碼,比如我接觸到一個朋友在群里問的問題:
如果你認為這是一個初學人員常見的一個問題,而我是認為很多人染上了江湖惡習或者梁山好漢的臭氣一樣,一者是喜歡在代碼里耍酷,二者是隨意隨性,只管實現了功能了事。
所以一個程序員是否能繼續深入到第二個階段,需要的是系統地知識和閱讀優秀代碼的能力,比如數據結構、Linux系統、各種組件(如Redis、MySQL、Zookeeper),了解了應用程序如何調用周邊系統的接口,以及學習了一點周邊系統一般的抽象方法。
第二個階段五年 : 不夠深,沒有追求
我認為五年又是區分程序員的第二個門檻。有些人在三年里,除了完成工作,在空余時間基本不會研究別的東西, 熱衷于研究各種技術實現細節、看了N多好書、寫一些博客、在GitHub上分享技術,但是大多都是人云亦云,沒有技術的鑒別能力,沒有深度的思考能力。
比如出去面試的時候:
面試官:熟悉TCP不?
程序員:熟悉!【PS心理活動】嘿嘿!我這幾天在偷偷看了TCP的三次握手四次揮手。
面試官:TCP的tiME_WAIT狀態是怎么回事,如何解決?
程序員:TIME_WAIT,我記得書上是這么說的……【PS心理活動】媽呀,都不按套路出牌啊,手心開始有漢,渾身開始不舒服…
面試官:你們這個游戲面臨高并發時,網絡IO處理的模型是怎么設計的。【PS心理活動】沒有深入了解TCP也沒有關系,可能業務不涉及,問點跟項目相關的。
程序員:哦,我們當時采用多線程的設計,每個線程負責一個連接的socket,而且用了緩存隊列。【PS】終于問了我熟悉點的,這個項目的主程跟我關系好,給我講解了他的代碼。
面試官:嗯,那你還熟悉其它的IO模型不?
程序員:我們那個項目夠用了,沒有嘗試過其它模型了。
這就是典型的菜鳥,你要說他菜他一定不服你,甚至口水戰就要來了。
我想說“ 是故非澹漠無以明志,非寧靜無以致遠。” 一個人技術是否牛逼,在氣質上都會不一樣,虛懷若谷,大智若愚,不疾不徐,或者目光如炬,才思敏捷。當你深入了解,旁征博引,深入思考和測試才能逐步深入技術。
還有一類人以為會一些設計模式就是架構設計,會用各種組件拼接就是架構,跟你滿嘴的SpringMVC、Redis、Mysql等等,可是當你提起系統性能、業務可擴展性、系統一致性時,似乎也聽見過一些設計,但是當寫起代碼來全然不顧,然后又一堆的Bug解都沒有辦法解。
這些人里只有一小撮人能在五年后具備在技術上獨當一面的能力并且清楚自己未來的發展方向,從一個Coder逐步走向系統分析師或是架構師,成為項目組中不可或缺的人物,而其余絕大部分人會。停止不前,甚至陷入深深的憂患當中,奈何已成溫水中的青蛙。
第三個階段十年 : 登堂入室
十年又是另一個門檻了,轉行或是繼續做一名程序員就在這個節點上。
如果在前幾年就抱定不轉行的思路并且為之努力的話,那么在十年的這個節點上,有些人必然成長為一名對行業有著深入認識、對技術有著深入認識、能從零開始對一個產品進行分析的程序員,這樣的人在公司基本擔任的都是CTO、技術專家、首席架構師等最關鍵的職位,這對于自己絕對是一件榮耀的事,當然老板在經濟上也絕不會虧待你。
我認為隨著工作年限的增長、對生活對生命認識的深入,應當不斷學習思考。
關于專業技能
程序員應該具備的技能
我這里要說明一下,以下列舉的內容不是都要會的東西。但是如果你掌握得越多,那么你的架構設計能力就更強。
一、源碼分析專題
數據結構:紅黑樹、平衡二叉樹、B樹和B+樹、布隆過濾器、KMP算法
設計模式:責任鏈模式、發布訂閱模式、Reactor模式、過濾器模式、代理模式、工程模式
開源源碼分析:Nginx、zeroMQ
詳細介紹源碼中所用到的經典設計思想,看看大牛是如何寫代碼的,提升技術審美、提高核心競爭力。
二、分布式架構
架構實戰:斗魚視頻直播技術核心揭秘、網易門戶高負載均衡實現、淘寶海量數據存儲引擎、Open API設計。
架構中間件:分布式RPC框架 、分布式MQ。
架構策略:一致性、可靠性、可擴展性、高并發海量數據設計。
架構原理:消息驅動式架構設計、動態域名做高負載均衡、P2P去中心化。
作為技術開發者,如何去應對技術變革帶來的技能危機。基于傳統架構到分布式架構演變過程所帶來的技術變革進行全面深入講解。在技術深度和技術廣度上得到飛躍的提升。
三、集群架構專題
MySQL、Redis、MongDB、Nginx + lvs、Zookeeper集群。
面對海量的數據、高并發的請求,集群保證水平可擴展性,保證系統可靠性是唯一的途徑。
四、Linux系統
深入內核層面理解系統,理解系統架構設計,使用一系列的工具深入挖掘系統瓶頸,而不是人云亦云的優化和架構設計。
五、工程化專題
六、性能調優
七、音視頻專欄
不管是剛入門的小白,還是才高八斗的資深開發、架構,你都需要從這里開始:
對于來說小白可以快速提升
對于資深開發人群可以加分
以上就是我要說的內容,希望以上的內容可以幫助到正在默默艱辛,遇到瓶頸且不知道怎么辦的程序員們,希望大家在往后的工作與面試中一切順利。
如何快速學習,有沒有免費資料?
當真正開始學習的時候難免不知道從哪入手,學習時頻繁踩坑,導致效率低下影響繼續學習的信心,最終浪費大量時間。
為了讓學習變得輕松、高效!今天給大家免費分享一套教學資源,幫助大家在成為架構師的道路上披荊斬棘。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。
塵埃粒子計數器相關文章:塵埃粒子計數器原理