程式設計師 35 歲危機,如何破局 ?

ITPUB社群發表於2022-11-29

程式設計師 35 歲危機,如何破局 ?

這篇文章其實是我去年寫的,當時看的同學不多,經歷大半年的歷練,對這個話題的理解更深刻,文章已重新整理,真心希望更多同學能看到這篇文章。

相信很多同學對這個話題感到焦慮,擔心自己 35 歲之後會失業,因為前幾年我也這樣,不過目前要好很多,文末會講。

寫這篇文章前,為了讓文章的內容保持客觀,我對 “35 歲大齡程式設計師” 這個話題調研了 2 周,然後才開始落筆,文中很多觀點都是摘錄其它優秀的文章,然後再結合自己工作中的所感、所悟所得。

不 BB,上文章目錄。

程式設計師 35 歲危機,如何破局 ?

1. 為什麼會危機 ?

1.1 35 歲年齡特點

35 歲並不是真正的 35 歲,它是一個泛指,基本上來說就是 35-40 歲這段時間,所以後面我說的 “35 歲”,都是泛指 35-40 歲。

為什麼會在這個階段出現危機呢?

  • 經濟壓力:這個年齡一般都有房貸、車貸、子女教育等,我認識很多同事,光房貸每月基本都要 6K-7K,再算每月的生活支出,很多都會月光;
  • 家庭原因:這個年紀的人都已經成家,上有老下有小,需要平衡家庭和工作的關係;
  • 身體素質:年齡的增加,身體素質大不如從前,不能熬夜;
  • 個人學習:因為生活和家庭,能留給自己學習的時間不多,主動學習的慾望會明顯降低。

1.2 35 歲危機來源

如果公司裁員,你是不是被最先裁掉的那一批?如果被裁掉,35 歲再出去求職,其它公司會不會要你?如果新公司給你 Offer,能否能達到你之前的水平,至少能保證你正常的生活開支?

怕被最佳化,怕年紀大了找不到工作,怕給你的薪資覆蓋不了你現有的生活水平,這些其實都是我們危機感的來源。

我們看看用人單位看大齡程式設計師的視角:

  • 管理成本高:領導的那一套畫餅方式已經不適用,年輕程式設計師容易管理;
  • 經濟成本高:要的工資一般都不低,同樣的費用是年輕程式設計師的 2-4 倍;
  • 精力跟不上:如果公司推崇加班文化,大齡程式設計師的精力確實不太能跟上;
  • 家庭事情多:大齡程式設計師家庭瑣事多,不像年輕程式設計師那麼純粹;
  • 其它:學習和進取慾望降低、能力提升變慢、技術棧老舊、可塑性變差等、公司產品不需要過深的技術和業務積累。

1.3 大齡程式設計師是否被排斥

年輕程式設計師在寫日常的業務程式碼,可能和大齡程式設計師差不多,但是當需要解決公司的技術性難題、或對專案重構時,大齡程式設計師就會發揮自身的優勢:

  • 某種技術方向上有深厚積累;
  • 專案經驗豐富;
  • 業務積累深厚;
  • 解決問題能力強;
  • 設計、架構、分析、規劃等方面能力較強;
  • 大局觀強,有情緒管理能力,穩定耐造。

所以我們和年輕程式設計師拼的不是程式碼能力,而是專案經驗、設計能力和知識輸出等。

如果你已經步入大齡行列,比如有 10 年工作經驗,但是真實水平不到 5 年,被淘汰的機率會非常大。

這裡可以給出我的結論:

  • “35 歲危機”是否存在?這個毋庸置疑,肯定是存在的。
  • 公司是否排斥大齡程式設計師呢?在我看來,公司排斥的不是大齡程式設計師,而是排斥能力和自己工齡不匹配的大齡程式設計師。

2. 如何應對危機 ?

2.1 克服焦慮

“35 歲危機”一直存在,準確來說大齡危機一直存在。

拿我個人來說,我認為能做到 40 歲,但很難做到 45 歲,做到 50 歲更遙不可及(大神除外),所以危機無法避免,只能儘量去延長我在這個行業的生命線,並在“退休”前完成一定的財富積累。

如果能有上面這個覺悟,其實就沒有那麼焦慮,因為我們最終都會離開這個行業,只是時間早晚的問題。

所以我的目標就非常清晰:不是要守住程式設計師這個行業,而是儘量延長我在這個行業的生命線。

那如何才能延長職業生命線呢?答案是持續學習!

程式設計師 35 歲危機,如何破局 ?

IT 行業的技術更新換代非常快,對個人綜合能力要求非常高,如果你不持續學習,等到年齡危機到來時還想躺贏,下一批裁員的可能就是你了。

持續學習是一切的前提,但我們不能盲目去學習,需要提前做好職業規劃。

2.2 提前做好職業規劃

我們看看程式設計師常規的晉升和轉型路線:

  • 技術型:初級工程師->中級工程師->高階工程師->架構師(技術專家)->技術總監->CTO;
  • 管理型:工程師->專案組長->專案經理->專案總監->技術總監->CTO;
  • 交叉型:初級工程師->中級工程師->專案經理->技術總監->CTO(此路線技術和管理交叉進行,每個階段做的事情不固定);
  • 轉行型:初級工程師->轉行產品、設計、銷售、運營等。

下面是更加詳細的職業規劃,儘量延長自己的生命線,甚至可以擺脫年齡的限制(能擺脫年齡限制,都是大神級別):

  • 在某種開發技能上建立個人品牌,比如微服務、Hadoop、高併發、C++ 等,而且你的品牌要被業內認可,這樣的開發者實際上是以 “技術專家” 的身份存在。
  • 在組織內開發技能過硬、精通業務,成為複合型選手,佔據難以替代的位置。這樣的開發者,可以稱之為高階開發工程師或者資深開發者,這樣的角色,在一個合適的平臺上可以受到重視,可以跟著平臺發展,不用在意年齡。退一步講,即便所在的平臺倒掉了,也會有很多公司願意要。
  • 成為善於架構某類軟體服務的架構師。這是從高階開發工程師演進過來的更高階的角色,當你真正做過一些大型系統的架構工作,會有很多公司需要你,不必擔心你的年齡,你工作自由了。
  • 走向管理崗位,成為職業經理人。很多公司都有專案經理、技術經理、研發經理等管理角色,你需要能夠真正做好管理工作。

3. 需要具備的核心技能

3.1 技術方面

技術才是每一個程式設計師的安身立命之本,無論你處於哪個階段,都不要把技術完全落下,區別只是在各個階段對技術要求的側重不同:

  • 初中高階程式設計師:一個技術強化的過程;
  • 專家:選擇一個技術方向深耕,成為對應技術領域的專家;
  • 架構師:更偏向對專案整體架構的設計和把控能力;
  • 團隊負責人到 CTO:管理職能更大於技術職能,更多的是對技術的宏觀方向把控。

技術方面主要有以下幾點建議:

  • 先廣後深,打造自己的核心競爭力。 你可以是微服務領域的專家,也可以是 ES 大佬,或者精通 Flink。
  • 拒絕啃老本。 不要在一個公司混了 3 年,出來找工作投簡歷,發現簡歷都投不出去,Spring Cloud 都不知道是什麼,微服務、分散式完全沒接觸,還是隻會基於 SSH 的 CURD。2/3 線城市還好說,在一線城市工作的,技術迭代更新比較快,一定要跟緊主流技術。
  • 要形成自己的技術體系。 什麼是技術體系,舉個例子,你說自己會 MySQL 資料庫,但是除了日常寫 SQL 進行 CURD 的業務開發外,你還知道 MySQL 的執行架構,主流儲存引擎的區別,主從同步原理、組複製、鎖機制、分表分庫、事務控制這些嗎?圍繞著技術名稱的中心點,能像蜘蛛網那樣擴散出去,形成有條理的網狀結構,就形成了自己的技術體系。
  • 儘可能做多做一些總結輸出。 我目前的做法是將日常的一些學習筆記、人生感悟、bug 解決過程等先簡單記錄在有道筆記上面,後面再逐漸整理輸出,既可以回顧總結反思,也能作為一些部落格的內容輸出。
  • 不要死磕技術(這點大家勿噴)。作為程式設計師,需要有一定的技術信仰,但也不能太過迷信技術。在職場中,你要比別人走的更高更遠的話,只會敲程式碼實現一些業務功能是遠遠不夠的。其實在很多開發公司,開發人員的地位都比較一般,來去匆匆,始終是底層的搬磚工。所以,不要傻傻地一頭扎入了技術的海洋,每個人的精力都是有限的。除了技術實力外,你還需要有意識地培養自己的溝通表達能力、文件輸出能力,比如專案說明文件、專案架構圖、彙報 PPT、團隊管理、專案管理、專案規範、抽象化思維、產品化思維等綜合實力。

3.2 架構和設計

架構師是很多開發者的終極技術夢想,能成為架構師的鳳毛麟角。

但是,每個人都必須要架構和設計軟體的能力!

如果你沒有架構、設計的能力,就無法站在更高維度去理解軟體開發,就必然被迫奮戰在最簡單也最容易被替代的體力化的編碼工作崗位,而這樣的崗位,必然是拒絕大齡程式設計師的。

所以,即便你還不是架構師,也不是技術經理,也不是管理人員,也不是需求分析師,你也需要在日常工作中拔高一點,經常性的、刻意地去想一想,系統的模組為什麼這麼劃分,服務間的介面為什麼這麼設計,這個業務邏輯為什麼要這樣實現而不是那樣實現。

惟其如此,你才能慢慢理解別人的架構與設計,才能慢慢培養自己的架構與設計能力。

3.3 業務能力

所有開發者都要記住一點,開發者具有雙重的行業屬性:軟體行業屬性和軟體所要解決的問題所屬行業的屬性。

軟體所要解決的問題,就是我們通常所說的業務。比如支付寶的業務是支付問題,京東商城的業務是電子商務問題,攜程的業務是機票和酒店預訂問題。

精通業務,可以成為開發者的優勢,這是開發者在問題域構建起來的優勢,即所謂的懂行。

如果業務積累方面的優勢和開發技能方面的優勢能疊加起來,那這位開發者,就具有秒殺 85% 以上開發者的能力

再比如,目前國內技術人員太多,可替代性太強,做 Java 搞業務開發的,無非就是 Spring boot +  MyBatis + MySQL,需要上微服務就採用 Spring Cloud 全家桶,通用型太強。

而如果你既懂技術又熟悉核心業務流程,比如熟悉電商平臺、支付系統、風控系統等的核心業務流程,那麼你在團隊的地位一定穩如泰山。

3.4 軟技能

《軟體架構師的 12 項修煉》這本書裡給出了軟體架構師的金字塔能力模型:

程式設計師 35 歲危機,如何破局 ?

這個模型,適用於絕大多數軟體開發工程師,在這本書裡,作者說這麼一句話。

大多數時候所謂的“技術之玻璃天花板”,其實只是缺乏軟技能而已。這些技能可以學到,缺乏的知識可以透過決定改變的努力來彌補。

我們每位開發者都要牢記這句話,要清醒地意識到:

  • 不深入鑽研,缺乏開發技術等硬技能,你很難在初期的職業生涯(0 ~ 5 年)中做出成績佔據重要位置
  • 沒有溝通、協商、領導力、語境切換、創新、認知等軟技能,你很難在職場上走出高度

所以,在你掌握一定的開發技術可以搞定一些任務後,就要並行地去培養自己的軟技能,比如溝通、表達、協商、演講、輔導、寫作、組織、規劃、管理、彙報、商務談判、創新、設計等等。

只有軟技能匹配你的硬技能,你才能更好地發展,當你軟硬結合,綜合能力爆棚時,根本不用擔心將來怎麼找工作的問題,工作機會會跟著你跑,甚至有人會專門為你創造工作機會。

4. 其它建議

除了持續學習、往技術或者管理方向發展以外,我覺得有以下幾點也需要重點關注。

4.1 鍛鍊身體

之所以寫在最前面,因為身體是革命的本錢,有句話非常經典。

身體是 1,其他都是 0,沒有 1,再多的 0 都是空。

程式設計師 35 歲危機,如何破局 ?

魔都一位技術人員,總以為自己年輕,身體硬扛得住,結果一次暈倒後,醫院檢查發現自己得了尿毒症,沒有好的身體,你掙再多錢都沒有意義,一旦你因為身體而離開人間,配偶、孩子、錢都是別人的了。

4.2 發展副業

提前佈局 PlanB,做好副業。

做副業的目的,就是增加自己的收入,同時也是倒逼你去學習更多的知識,讓你的技術能力提升更快,也為你未來創業做準備,增加你抗風險的能力。

程式設計師 35 歲危機,如何破局 ?

除了以上好處,副業也會提升你的個人能力、擴大你的圈子。

4.3 擴充圈子

越是成功的人,他的圈子就越廣,資源也越多,人生的路自然就越走越寬。

最近幾年關注的一些公眾號的大佬們,就都在抱團取暖,各種互推,實現資源共享。

所以多向上擴充你的圈子,多走近結交那些正能量、有想法、志同道合的人。

程式設計師 35 歲危機,如何破局 ?

興許下次換工作,是圈子裡的人脈直接內推讓你找到一份滿意的工作,更有可能,圈子裡的幾個朋友因為某一個好點子直接走向創業之路。

5. 寫在最後

再回到文章開頭的問題,其實我 2 年前還很焦慮,但是現在不再焦慮,反倒信心更足了。

我目前基本都是按照上面的軌跡去走,已經走了 2 年,各方面的軟硬技能都已具備,所以在公司,基本不太擔心被裁。

可能有同學會問,那當你 35 歲以後,萬一公司倒閉了呢 ?

如果自己還不到 40 歲,找一份大廠的工作,應該不難,如果到了 40 歲,我也完成一定的財富積累,手中有糧,心裡不慌。

為了以後能有退路,我也在佈局自己的 Plan B,擴充套件自己的人脈圈子,比如寫公眾號、搞創業專案。

如果副業能做起來,說不定以後就靠這謀生,如果沒做起來,我也收穫了人脈和經驗,為下一次創業蓄力,何樂而不為呢?

最後送上大家一句話:工作可以是事業、是熱愛,也可以只是一份工作,給自己留出轉身的空間很有必要,如果把工作看作一份經歷和沿途的風景,在乎過程中的經歷、感受多過最後的結果,可能會讓人生更加充滿期待。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70024420/viewspace-2925721/,如需轉載,請註明出處,否則將追究法律責任。

相關文章