歡迎關注微信公衆號:石杉的架構筆記(id:shishan100)程序員
個人新課**《C2C 電商系統微服務架構120天實戰訓練營》在公衆號儒猿技術窩**上線了,感興趣的同窗,能夠點擊下方連接瞭解詳情:面試
精品學習資料獲取通道,參見文末數據庫
一、40歲回首往事:本身竟沒有任何核心優點緩存
二、公司遇到危機時40歲大齡程序員會怎麼樣性能優化
三、適合大齡程序員的幾條職業發展路線微信
四、最後的寄語markdown
「 這篇文章,給你們聊聊Java工程師的職業發展規劃的一些思考,同時也給很多20多歲、30多歲,可是對本身的職業將來很迷茫的同窗一些建議。網絡
筆者但願經過此文,幫你們梳理一下程序員的職業發展方向,讓你們知道本身從20多歲的初出茅廬,到40歲的大齡碼農,應該如何規劃屬於我們程序員的半生。架構
首先,我們經過倒推的方式,看看在一個程序員40歲的時候,你憑什麼來捍衛本身的核心競爭力?
那若是要搞清楚這個問題,又得從一個反面來看看,大部分的程序員在職業發展過程當中犯了哪些錯誤,結果致使在40歲的時候沒有競爭力了呢?
最尷尬的事情,莫過於一個程序員在10多年,甚至20年的從業經歷中,一直沒好好考慮過如何構建本身的核心競爭力。
若是終年如此,會致使他就跟着公司慢吞吞的走着,就像溫水煮青蛙,直到40歲的時候,忽然發現本身幾乎一無所長。
舉個例子,好比從技術角度而言,這些兄弟可能發現本身不是什麼技術專家,也不是架構師,沒有任何一個技術領域有足夠的深度。
他們甚至可能都沒好好讀過什麼技術的源碼,不少最新的技術,好比大數據、人工智能、微服務、互聯網,等等,都沒跟上。
而這些朋友10多年來,一直作的事情可能就是重複如下:帶着幾個小弟,作傳統的軟件系統,而後成天就是研究各類軟件的需求,設計一些簡單的架構。
而後使用的技術都是比較過期的,一直是一些增刪改查的事情,可能涉及到一些其餘的技術,可是那些技術不少都是非主流的,或者是不流行的。
最後,你發現本身10多年工做下來,跟小年輕相比,惟一的優點好像就是作的那種CRUD的項目比較多,經驗豐富一些罷了。
沒錯,我見過至關多的兄弟,在30多歲,乃至40歲的時候,就是上述那種狀況,惟一的優點就是難度不高的項目經驗比較多,帶過幾我的,僅此而已。
甚至有些兄弟雖然是一些中小公司的 「架構師」 、 「技術總監」 的title,可是其實本質作的事兒也跟上面是差很少的。
可是呢,這幫兄弟實際上來講薪資未必就很低,由於隨着在公司呆的久了,不少公司雖然知道你也許沒特別大的技術能力,可是老闆也承認你其實對公司的業務還算蠻熟悉的。
並且你作過的項目比較多,年齡較大,有資歷,作事穩重,能帶幾個小弟,能夠給公司撐起來一片天空。
此時,公司仍是會給你不錯的薪資。相似上面狀況的兄弟,30多歲時,可能薪資也會有30多k~40k那樣子。
可是也有不少的兄弟,沒獲得公司老闆那麼大的承認,本身可能也一直沒想太多,因此在30多歲的時候,可能公司就給你28k,30k的薪資,承認你是一個資深的骨幹。
而這個時候,對大齡程序員來講,學習不少新的技術也有點有心無力,畢竟家裏老婆孩子都在炕頭上。你說加班加點吧,也有點加不動了,畢竟年齡上去了,各類慢性病一大把,精力不如往日,主要就是利用本身的一點經驗把控公司的項目。
所以上述那個場景,就是不少大齡程序員的狀況。
如今我們換個角度,從一些中小公司的老闆的角度來考慮一下這些大齡程序員,假如說公司業務還算穩定,營收還算正常,利潤也算穩定,那麼這些大齡程序員對老闆來講是有價值的。
緣由上面已經說過了,你畢竟工做了這麼多年,業務還算熟悉,作過不少項目,從需求分析到系統設計,再到帶小弟開發、測試和部署上線,這條流程你門兒清,那其實仍是能夠給你個30k薪資用你幹活兒的。
可是假如公司如今遇到了一些危機,好比由於行業環境等緣由,公司經營不善了,業務開始萎縮,利潤開始降低,這個時候你說老闆會怎麼辦?
其實很簡單,站在老闆的角度,假如手裏原本有10個大齡程序員做爲骨幹,此時徹底能夠拿掉其中的8個。
老闆這時就留下2個大齡程序員,讓他們爲了保住飯碗,加班加點給公司撐住剩下的業務。
而大齡程序員的工資但是公司裏最高的那一批人,把他們拿掉8個,是否是一會兒節省了很大的成本?
若是公司還有業務須要支撐,徹底能夠找幾個工資才10k的小年輕程序員進來把活兒頂着,跟着2個大齡程序員繼續作就好了。你們想一想,是否是這麼回事?
在遇到困難的時候,工資高、年齡大、加不動班的大齡程序員,頗有可能就會率先「被」犧牲掉,用來節約公司成本。
而後呢,換上幾個薪資低、年齡小、能夠每天加班到凌晨、還有充足的精力學習各類新技術的程序員,給公司頂上。
那麼接下來,這些大齡程序員出去找工做會遇到哪些問題呢?
很簡單,這些兄弟自己技術並無什麼特長,項目也沒什麼難度,並且不少最新的技術還沒跟上沒學習。
此外,這些兄弟年齡也大了,上有老下有小,還加不動班,並且你要的薪資還不低。其餘公司一看,有什麼理由用30多k的薪資來聘用你呢?
你的技術、精力都不行,所謂的項目經驗,僅僅是上一家公司的一些項目的經驗,對別的公司可能沒什麼太大的做用。
若是你是另一家公司的老闆,你會不會聘用這樣的人?我想說到這裏,你們都明白這裏的問題所在了。
(1)成爲技術大牛,掌握公司的核心技術
看完上面的內容,你們都知道問題所在了,那麼接下來咱們來探討一下:
什麼樣的大齡程序員,他能夠在40歲的時候還獲得各類公司的青睞呢?
第一種方式,就是掌握本身行業裏的各類技術,哪怕走出了這個公司,也是其餘公司瘋搶的對象。
給你們舉個例子,好比你一直在互聯網行業工做,且一直在各類知名大公司,先後負責和經歷過多家大型互聯網公司的核心繫統架構設計。
對於一個互聯網系統,若是要支撐1億用戶,有哪些技術挑戰,須要怎麼來設計,你都經歷過這些過程。
每秒支撐10萬量級併發請求該怎麼作,系統要可以支撐百億級的數據存儲又該怎麼設計。相似這些東西,你都瞭然於胸。那麼這個時候,你就是擁有了核心技術。
哪怕這個公司不要你了,你徹底會被其餘公司給爭搶過去,由於不少公司都須要這種有過大規模系統、高併發經驗、海量數據經驗的架構師。
**千軍易得、一將難求。**招聘不少薪資二三十 K的高級工程師,負責把一個模塊作好,很容易。
可是你要招一個可以把控全局,hold住你公司一個複雜大系統全場的高級架構師,很很差招,這樣的人很值錢,不少公司都須要。
這個時候你雖然40歲,可是人家承認你,由於你有核心的技術能力,核心的架構能力,你是公司技術的最後一道防線,不少崗位非你不可。
或者換個例子,好比大數據領域,如今你工做10多年,技術功底極爲深厚,你徹底能夠對大數據領域的各類系統,好比hadoop、spark、hbase、kylin、elasticsearch等等,作很是底層的優化。
遇到任何問題,你均可以從源碼級別來推斷解決,並且能夠修改開源項目源碼,進行二次開發。
那麼這時,你就是擁有核心技術的。將來大數據必然會發展的愈來愈好,由於各個行業都有大量的數據,不少公司都須要有最好的專家來解決本身公司的大數據問題。
所以,即便你40歲了,可是你有多年積累的核心技術能力,任何公司都須要你這樣的頂尖大牛坐鎮,解決各類技術問題。
因此若是要往這個方向去走,建議你們必定要從20多歲開始,好好規劃本身的技術學習和職業發展。
你們必定要想好,本身要學什麼技術,要往多深了學,要在什麼樣的公司裏積累經驗,踏踏實實走好每一步。
到40歲的時候,雖然大齡,可是你積累了足夠的技術能力,你的核心技術會像 「九陽神功」 同樣爲你護體,讓你依舊馳騁職場、煊赫一時。
(2)深挖業務,成爲業務領域專家級人物
第二種路線,你能夠考慮成爲某個業務領域的專家級人物。
你能夠在一些業務有絕對難度和深度,業務極度複雜,並且行業持續發展,業務領域的知識持續保持價值的領域,一直深挖。
好比說電信、金融、銀行、保險、財務、ERP,等等,諸如此類。
在這些領域的公司裏面,你能夠在不停的作技術類工做的同時,也注意積累這個領域的業務知識。
像一個電信系統、ERP系統,往大了作,業務都是極度複雜的,包含了大量的東西。
若是你能鍥而不捨,對各類業務知識、業務系統都深刻挖掘,那麼最後變成這個領域的業務專家,也是頗有價值的。
爲何這麼說呢?由於對於不少特定行業,可能作一個系統不須要那麼高大上的技術,可是絕對須要最好的業務專家來進行把控,才能設計出那種對應於某一個特定行業,且業務極其複雜的系統。
因此不少同窗,假如是走傳統行業的系統開發方向,能夠考慮注重更多的業務積累,將來成爲頂尖的業務專家。
這樣,哪怕你40歲的時候,這個行業也須要你這樣的 「老專家」 在公司裏繼續支撐着業務發展。
(3)帶領團隊:走上技術管理之路
另一條路,就是走技術管理的道路,這個相信你們都理解。
做爲任何公司的老闆而言,都須要技術管理人員,他須要懂技術,可是不必定特別的精通,可是必定要有極強的團隊管理的能力。
做爲團隊管理者,你須要有能力把控公司大的技術方向,還須要有足夠的行業人脈和資源,招聘搭建合適的技術團隊。
此外,你還要可以制定技術團隊的工做流程和規範,進行團隊之間職責的定義和分配,讓各個團隊有效協做運行,最後成功的支撐公司的業務發展。
這個管理,提及來就兩個字,但其實背後的學問極大,要把幾十個甚至幾百個不一樣的人擰成一股繩,保持強大的戰鬥力,爲公司作好支撐工做,其實這裏難度很高,很是考驗一個管理人員的水平。
若是你能從帶幾我的的小主管開始,到帶幾十人的技術leader,再到帶幾百人的高級技術管理人員。
假如你能往這個方向去發展,那麼其實在你40歲的時候,你也有對應的競爭力,由於不少老闆都須要你豐富的技術管理經驗來把控好公司的技術團隊。
固然說實話,能真的作技術管理作的好的人,不多。尤爲是我們技術出身的同窗,通常來講都比較內向靦腆,不太善於交際。
因此對大多數的普通工程師而言,我的仍是比較建議上面的技術專家或者業務專家路線,這裏面機會更多,並且對大多數人都更加的適合。
(4)轉型其餘職位或者行業
若是有人說,我對技術沒那麼大熱情要成爲專家,我也很討厭成天搗鼓業務,我更沒天賦成爲技術管理人員,那怎麼辦呢?
那你能夠考慮寫代碼寫到30多歲的時候,搞點別的。
好比說考慮轉型作產品經理?考慮作互聯網運營?或者考慮作軟件銷售?
也就是說,你能夠考慮帶着必定的技術背景,往技術行業裏的其餘崗位去轉型,在其餘崗位上積累經驗,成爲不可或缺的人物,這個也能夠。
更有甚者,在北上廣幹了10年技術,積累了必定的資金以後,在老家買好房子,而後回老家去作生意,好比開個餐飲店什麼的。
這個也是一條路子,但這種就是因人而異了,畢竟每一個人的人脈資源都不一樣。
最後一句話總結:無論你選擇哪條路,首先想清楚,你要成爲何樣的人。
你須要仔細想一想,在40歲時,你10多年的工做經驗,將會積累了哪些核心競爭優點。
而後再仔細琢磨琢磨,這些優點是不是那種剛畢業的小夥子絕對沒法替代的,其餘公司的資深崗位是否是必需要有你這樣的人。
考慮清楚了這些,剩下的就是朝着本身的目標,堅持不懈的走下去。這中間你可能會迷茫,甚至會懷疑當初的決定。但仍是那句話:相信本身、勿忘初心,本身選的路,含着淚也要走完!
最不但願看到的一種狀況,就是30多歲了,還僅僅會**「用」**各類技術,十幾種二十多種技術,什麼都會用。但就是沒什麼技術深度,沒什麼競爭力,就一些使用經驗比較多了而已。
若是是這樣,那人家剛畢業的小年輕,可能1到2年時間就學會了這些技術怎麼用,也許就能夠在關鍵時刻替代你。
這些小夥子無非就是經驗不足罷了,可是人家能夠拼命加班彌補,而且人家要求的薪資比你低多了。
最後,但願每一個程序員兄弟都有一個好的將來和人生,程序員這條路充滿艱難險阻,各類挑戰,但也充滿機會,須要不停的學習進步,與你們共勉!
End
(封面,圖源網絡,侵權刪除)
掃描下方二維碼,備註:「資料」,獲取更多「祕製」 精品學習資料
一大波微服務、分佈式、高併發、高可用的原創系列文章正在路上
歡迎掃描下方二維碼,持續關注:
石杉的架構筆記(id:shishan100)
十餘年BAT架構經驗傾囊相授
推薦閱讀:
二、【雙11狂歡的背後】微服務註冊中心如何承載大型系統的千萬級訪問?
三、【性能優化之道】每秒上萬併發下的Spring Cloud參數優化實戰
六、大規模集羣下Hadoop NameNode如何承載每秒上千次的高併發訪問
七、【性能優化的祕密】Hadoop如何將TB級大文件的上傳性能優化上百倍
九、【坑爹呀!】最終一致性分佈式事務如何保障實際生產中99.99%高可用?
十一、【眼前一亮!】看Hadoop底層算法如何優雅的將大規模集羣性能提高10倍以上?
1六、億級流量系統架構之如何設計全鏈路99.99%高可用架構
1八、大白話聊聊Java併發面試問題之volatile究竟是什麼?
1九、大白話聊聊Java併發面試問題之Java 8如何優化CAS性能?
20、大白話聊聊Java併發面試問題之談談你對AQS的理解?
2一、大白話聊聊Java併發面試問題之公平鎖與非公平鎖是啥?
2二、大白話聊聊Java併發面試問題之微服務註冊中心的讀寫鎖優化
2三、互聯網公司的面試官是如何360°無死角考察候選人的?(上篇)
2四、互聯網公司面試官是如何360°無死角考察候選人的?(下篇)
2五、Java進階面試系列之一:哥們,大家的系統架構中爲何要引入消息中間件?
2六、【Java進階面試系列之二】:哥們,那你說說系統架構引入消息中間件有什麼缺點?
2七、【行走的Offer收割機】記一位朋友斬獲BAT技術專家Offer的面試經歷
2八、【Java進階面試系列之三】哥們,消息中間件在大家項目裏是如何落地的?
2九、【Java進階面試系列之四】扎心!線上服務宕機時,如何保證數據100%不丟失?
30、一次JVM FullGC的背後,竟隱藏着驚心動魄的線上生產事故!
3一、【高併發優化實踐】10倍請求壓力來襲,你的系統會被擊垮嗎?
3二、【Java進階面試系列之五】消息中間件集羣崩潰,如何保證百萬生產數據不丟失?
3三、億級流量系統架構之如何在上萬併發場景下設計可擴展架構(上)?
3四、億級流量系統架構之如何在上萬併發場景下設計可擴展架構(中)?
3五、億級流量系統架構之如何在上萬併發場景下設計可擴展架構(下)?
3七、億級流量系統架構之如何保證百億流量下的數據一致性(上)
3八、億級流量系統架構之如何保證百億流量下的數據一致性(中)?
3九、億級流量系統架構之如何保證百億流量下的數據一致性(下)?
40、互聯網面試必殺:如何保證消息中間件全鏈路數據100%不丟失(1)
4一、互聯網面試必殺:如何保證消息中間件全鏈路數據100%不丟失(2)
4三、高併發場景下,如何保證生產者投遞到消息中間件的消息不丟失?
4五、從團隊自研的百萬併發中間件系統的內核設計看Java併發性能優化
4六、【非廣告,純乾貨】英語差的程序員如何才能無障礙閱讀官方文檔?
4七、若是20萬用戶同時訪問一個熱點緩存,如何優化你的緩存架構?
4八、【非廣告,純乾貨】中小公司的Java工程師應該如何逆襲衝進BAT?
50、【金三銀四跳槽季】Java工程師如何在1個月內作好面試準備?
5一、【offer收割機必備】我簡歷上的Java項目都好low,怎麼辦?
5二、【offer去哪了】我一連面試了十個Java崗,通通石沉大海!
5三、高階Java開發必備:分佈式系統的惟一id生成算法你瞭解嗎?
5四、支撐日活百萬用戶的高併發系統,應該如何設計其數據庫架構?
5五、尷尬了!Spring Cloud微服務註冊中心Eureka 2.x中止維護了咋辦?
做者:石杉的架構筆記
連接:juejin.cn/post/684490… 來源:掘金 著做權歸做者全部。商業轉載請聯繫做者得到受權,非商業轉載請註明出處。