每日最新頭條.有趣資訊

程式員能靠技術度過中年危機嗎?

編輯 | 小智

這是所有人都會經歷的過程,有些已經平安渡過,有些還在惶恐不安。聽聽過來人的建議,走出自己的路線。

編者按

做 InfoQ 公眾號這幾年來,接觸到的一線開發可謂數不勝數。這些人向我提過很多問題,技術問題有之,職業規劃有之,撩妹脫單有之(雖然我都解答不了…),但出現頻率最高的,卻還是這些問題:“我可以寫代碼一輩子嗎?”、“我已經三十多了,依舊只能寫代碼,還要繼續下去嗎?”、“某司程式員34 歲就被失業了,我馬上就三十了,怎麽辦?”

這些問題,可以籠統地歸結為“中年危機”。程式員群體,作為互聯網大潮裡早期紅利的既得利益者,享受著高出其他行業不少的薪資,卻也在互聯網發展日趨瓶頸的今天,開始恐慌未來:技術發展永遠日新月異,可我卻不能永葆年輕,怎麽辦?

作為一個同樣即將邁入中年,同樣迷茫困惑的編輯,我找了一些過來人,分享他們的經驗,以饗讀者朋友。正文內容均已獲得授權,特此聲明。

溫酒的看法

知乎上因為程式員多,所以一直有很多誤區。其中之一就是:程式員的中年危機。

何止是程式員有中年危機啊?只有程式員會人到中年嗎?只有程式員是青春飯嗎?只有程式員人到中年薪水就不漲了嗎?只有程式員有爹媽嗎?只有程式員有孩子嗎?顯然不是的。

什麽是中年危機?就是人到中年,突然父母老了,孩子有了,自己步入中年了帶來的生活成本大 UP,遠遠超過了收入 UP 的預期。那麽其他職業有沒有中年危機?顯然是有的。哪個職業沒爹沒媽沒老婆孩子的?哪個職業招聘不是寫了 35 歲以下的?哪個職業到了中年還能給你漲收入的?都沒有的,大家都一樣。中年危機是一個必然要面對的問題。

其他不講技術的職業能靠技術度過中年危機嗎?不能。那程式員憑什麽說自己能?中年危機的本質剛才已經講過了,是生活成本 UP,收入期望 DOWN,直到入不敷出。所以要度過中年危機,需要一個家庭的努力。努力維持生活成本 UP 在可控範圍內,收入期望的 DOWN 在可控範圍內。而這些戰略上的東西,和技術其實沒什麽關係。或者說,技術上鑽研得越多,很有可能你在這方面鑽研得就少了,反而不妙。

是的,最終解決問題的方案,說來說去還是開源節流。開什麽源?三產、投資。什麽三產?自媒體,起點小說,美術外包,音樂外包,淘寶小作坊賣西餅糕點等等等等。比如那些賣成功學成長課讓你怎麽成功提升自己的。注意我說的是賣這些東西可以算三產,去聽顯然算智商稅。什麽投資?房子的租金,這裡一定要說一句:不要賣掉房子,不要賣掉!賣掉現金流是愚蠢的!

節什麽流?孩子教育成本,家庭開銷,老人養老成本。什麽教育成本?不要買學區房,不要補課,有才能培養才能,沒才能多玩耍,多學學能混一口飯吃的技能。什麽家庭開銷?減少外食,減少保姆等日常開支,減少衣著成本,自己乾,鍛煉身體鍛煉技能身心健康。什麽養老成本?父母要多運動,飲食健康,小毛小病勤去醫院,要早交社保領退休金,要有精神寄托不用整天纏著你。減少父母工作量,管理好父母的財政。

以上。哪一條是靠技術的?沒有的。事實上哪怕一個人技術再好,收入再高,一到中年,搞不定開源節流,一樣完蛋。中年危機的本質都是從家裡開始爆發的,壓力都是從家人身上來的。因為人到中年,可能是你這輩子第一次收入停滯不前,他人對你的期望無法實現的時機。這就導致了生活品質和規劃如果不能提前做好計劃和準備,一定會有家庭成員的欲望得不到滿足的情況出現。

年輕的時候,人們選擇激進的應對手段:媳婦要求買房,好我多賺點買房。孩子要求更好的學校,好我多賺點讀私立。父母要求更好的養老條件,好我多賺點贍養他們。而人到中年,再用激進的手段,基本上是要完蛋的。因為大多數時候,這種中年人往往已經磨到了你人生的天花板。再要激進,無非就是撞個頭破血流。

所以真正解決中年危機,靠的是家庭,靠的是媳婦的收入和支持,是父母的養老保險和義務勞動,是孩子的成長和回饋,是家庭的理解和包容。和技術一毛錢關係都沒有。

空白白白白的看法

老陳是我的前同事,一個典型的 IT 技術男。他是電腦科班碩士,畢業後一直從事軟體開發工作,平時不太喜歡和別人聊天,隻喜歡靜靜的坐在那裡寫代碼。前段時間回到上海,他專門打電話約我一起吃飯,說是想要出來自己創業,想谘詢我一下開公司的事情。

飯桌上幾杯酒下肚,老陳向我倒起了苦水:原來最近公司不太景氣,升職加薪都遇到了瓶頸。他今年已經 38 歲了,月薪稅後 3w 出頭,看上去還不錯,但家庭開銷,子女教育,父母養老等等方面的費用不斷增加,讓他也感到壓力山大。公司內遇到天花板,他就想去外面看看。哪知道投遞了一圈簡歷,卻更讓他心灰意冷。原來以他的薪資和資歷,去投遞其它公司研發總監之類的高管崗位卻約不到面試機會。因為他就是一個技術人員,沒有管理和帶人的經驗,連簡歷篩選也過不了。而放低身段去應聘程式員的崗位,即便薪資出的到,但用人部門更傾向於招聘年輕的候選人。用獵頭的話來說:“現在的用人崗位比較介意年齡”。

他在公司裡面也是壓力重重,他自身一直做業務系統的,手裡掌握的技術新畢業的大學生用個 3 年就能掌握了。那些年輕的程式員,能熬夜,能加班,無牽無掛,工資還低。所以公司也更傾向於用這些年輕人。之前公司效益不錯,所以老的一批程式員還能養著,現在效益下滑,難保不向他們這些年紀大的程式員“開刀”。

那麽程式員如何度過中年危機呢?按照我工作年限,我應該是沒資格來說這件事的,不過周邊有不少朋友是 CTO,技術 VP 之類的高管,都是順利度過“中年危機”的優秀人才,我專門為了這個問題去向他們請教,結合他們的意見,我總結了 4 條建議如下:

專注本業,做深做強

程式員這個職業和律師,醫生,運營等職業不同,它要求從業人員有更好的新技術學習能力,反而對於從業人員的經驗要求不高。從程式語言來說,2000 年初 JAVA 才剛剛起來,不到 10 幾年的時間已經代替 C++ 成為使用最多的技術語言。而 GO,Groovy,Python 等後起之秀也快速發展,大有趕超之勢。這就要求這個行業的從業人員需要具備快速的技術學習能力。如果你是一個技術狂人,能夠快速的學習新的技術語言,並對枯燥的 IT 技術甘之如飴,那麽持續沿著技術這條路走下去也是一種選擇。畢竟每一個行業,總需要能夠鑽研最底層技術的人。

我就認識一位 C++ 語言的大拿。要說現在 Java 廣泛應用於系統開發吧,但很多電腦底層的編譯器,Java 的 Jvm 都是用 C/C++ 來編寫的。他因為在這個領域研究很深,一樣能夠找到很好的工作,拿著不菲的工資。不過這類人我覺得是鳳毛麟角的,畢竟抱著原版 C++ 教材像讀小說一樣的“神人”真的不多見。所以你要做到這條,首先要對自己的專注力、持續力、技術能力有一個非常客觀的判斷。

走架構 / 管理路線

這個路線某種程度上是程式員這個行當中吃“經驗”飯的路線。架構 / 管理需要的不僅僅是了解技術,還要具備豐富的行業經驗,良好的溝通能力,全面的管理手段。這些都可以在一個程式員日常的工作中進行積累,從而完成一名程式員的轉型。

就好像老陳之前的不少朋友,他們平時工作中比較注意積累這方面的經驗,現在有不少人已經走到了管理崗位,還不乏總監、VP 乃至於 CTO 這樣的高級崗位。不但薪資高,而且職業生涯也得到了延伸。

嚴格意義來說,走這條路線某種程度上已經脫離了技術背景,更像是走企業管理路線了。但不得不說,這是一條不錯的路線。只是近年來新型公司,特別是互聯網公司都講究扁平化管理,這樣的“坑位”也不多了,所以如果有這樣的機會一定要珍惜。

轉行到關聯行業

IT 開發和語言一樣,只是一項工具。必須要和其它業務行業結合才能夠產生價值。這就給了技術人員一個選擇,可以結合自己之前服務的行業進行轉行。比如,一個技術人員一直從事金融領域的技術開發,通過日常積累了解了不少金融知識。那這個時候,你就可以轉行為 BA(Business Analyser)或者 PM(Product Manager)。要知道,一個懂技術的 BA 或者 PM 是非常受企業歡迎的。

我就認識一個美女,因為受不了開發的高強度工作,轉行做了 PM。她自身是電腦專業畢業,本身也做過開發。所以她在涉及產品的時候,充分知道哪些系統可以做,哪些系統做不了,能夠寫出“靠譜”的需求說明書(程式員們的最愛)。這樣她的產出就非常好,自然深的老闆的喜愛。

基於自己已有的優勢,再學一門手藝,從而跨門檻的跳到一個重視經驗的行業中。這簡直就是當前互聯網最喜歡的“降維打擊”嘛。如果你足夠努力,而且學習和溝通能力不錯,這也是一條挺好的路線,機會多,太空大,值得推薦。

創業開個公司

說實話,這真的是一條最最艱難的路線。開公司和做副業不一樣,它考量的是一個人的綜合能力,需要應付的方方面面的問題數不勝數。前文提到的老陳,我就覺得如果去創業很容易失敗。因為打工時候只要做好自己的事情即可,但創業的時候是什麽事情都要做!

當然,我身邊就有創業成功的例子,比如雲舒。但他自身在做程式員的時候也是大神級的人物,他來創業不是走投無路,而是實現自我價值。更不要提他自身的綜合能力也是非常棒的。這麽說吧,他不來創業也能夠在原來公司做的風生水起。所以這條路是推薦給那些非常優秀的人的,如果是工作中走頭無路,創業基本上也是死路一條。

不管是上面哪一條,其實都需要大家提前做好自己的職業規劃,選擇一條最適合自己特點的路線,早布局,早沉澱,早打算,早 …。總之,所有事情的準備越早越好,老祖宗不是說過嘛,凡事預則立,不預則廢。為了和你 35 或 40 歲的中年危機說拜拜,還是早些準備起來吧

范凱的看法

在我還是 25 歲的時候,我和很多程式員一樣,其實有同樣的擔心,老了以後怎麽辦?寫代碼難道還能寫到 30 歲?

當我 30 歲的時候,我發現自己創業去了,雖然非常苦逼,但是苦中作樂,還挺有挑戰的。當然創業是沒有退路的,創業要是失敗了,估計更加沒人要了。所以還是先想創業的事吧,35 歲的大齡程式員問題還是 5 年以後再說。

一晃我就 35 歲了,創業公司賣給 CSDN 了,我在 CSDN 當 CTO 了。話說這個 CTO 其實也很苦逼,操心的事太多,每天各種雜事,壓根沒空想中年危機的話題。

然後我馬上就 40 歲了,不算有錢,但養活自己完全沒問題,想著趁自己還能蹦躂幾年,再做點什麽吧,就到丁香園了。

現在回想 25 歲的時候,當初的擔憂真的是杞人憂天了。我現在寫代碼也完全沒問題,偶爾也會寫點代碼練練手,自娛自樂一下。但是從 2010 年我 34 歲開始,工作上我已經不適合寫代碼了。不是我不願意親自寫代碼,我反而覺得寫代碼很有成就感,而是我不寫代碼對公司的價值更大,我需要把時間和精力放在規劃產品方向、決策技術架構、培養團隊,提升公司戰鬥力上。

那些 70 後的程式員都消失了嗎?

如果你現在去一家互聯網公司看看,你會發現程式員的主力都是 90 後了,80 後都很少,至於 70 後幾乎絕跡。那麽一個有趣的話題是:「70 後的程式員都消失了嗎?」

其實沒有消失,而是 70 後的程式員已經成為各個互聯網公司,各個 IT 公司的高層了。那麽你會問:「一個公司就幾個高層職位,哪有那麽多職位給 70 後呢?」

答案是:「20 年前根本就沒有多少 IT 公司,70 後的程式員也沒有現在動輒上百萬的規模」。這 20 年來,整個 IT 和互聯網行業擴大了 100 倍都不止,創造了海量的就業機會,無論是高層還是一線崗位。

那麽還有 70 後程式員奮戰在 coding 第一線的嗎?當然有!比我還大一歲的高春輝,中國互聯網的活化石啊。老高身為一家公司的老闆,仍然不肯放下 coding 的樂趣,至今堅持親自寫代碼。

所以看起來,到了 40 歲,無論自己寫不寫代碼,似乎都不至於年老色衰,程式員這個職業的保鮮期似乎沒有娛樂圈短。作為一個年輕程式員的你來說,應該怎樣延長自己的保鮮期呢?

20-27 歲:技術積累

假設本科 22 歲畢業,那麽工作的前 5 年對你來說是打基礎的階段。在這 5 年時間裡面,你要積累足夠的代碼量,打磨自己的技術實力,成為某一個技術細分領域的牛人。

而我自己當年在這個階段的努力程度是如饑似渴的,春節都不回家,蹲在出租房裡面啃技術文檔。剛參加工作的時候,曾經連續一個月在公司打地鋪睡覺。

28-35 歲:形成思維方法論和知識體系

當你積累足夠的代碼量,例如超過 10 萬行代碼以後,你應該形成了自己的思維方法論和自己獨立的學習技巧,任何新的技術在你眼中都能迅速的看到技術的本質,快速吸收成為你的知識體系的一部分。

到了這個階段,你會發現你所完全不了解的新技術新知識是非常少的,新技術對你來說也不過是幾天時間就把玩的很好的玩具,學習越來越輕鬆,掌握的知識儲備越來越多。

你開始逐漸的不再滿足於純技術領域的探索,而是思考更多的問題:如何將技術轉化為生產力;什麽技術在什麽樣的場合能夠發揮最大的價值;技術團隊應該怎樣構建;在一家公司裡面,我怎樣才能將自己的技術能力最大化的發揮出來?

在這個階段,積累技術對你來說簡直是小菜一碟,你更需要磨練的是思考能力,形成自己的思維方法和知識體系,這將是你幫助你一生的武器。

35 歲以後:了解自己,把自己變現

毋須諱言的是,35 歲以後你的一線 coding 能力一定是下降的,你寫代碼絕對不如 25 歲的程式員快,效率高。但是這不重要,因為編程只是你整個武器庫當中相對最不重要的了,你的經驗,你的視野,你的架構能力,你的管理能力,你分析和解決問題的能力已經遠遠不局限於技術這個領域。

30-35 歲這個階段,最關鍵的是了解自己。知道自己擅長什麽,自己的優勢在哪裡,怎樣才能夠最大化自己的價值,同時也知道自己有什麽缺陷,怎樣避開做自己不擅長的事情,不勉強自己,不讓自己處於對自己不利的環境,這是人生的智慧。

一個人能夠客觀的認識自己是非常困難的,很多人終其一生都沒有活明白,既不知道怎樣發揮自己的天賦,也拒絕承認自己的缺陷。在 35 歲以後,要接受一個不完美的自己,知道怎樣揚長避短,最大化個人價值。能夠做到這一步的程式員,人到中年完全不是程式員生涯的終結,反而會走向個人事業的巔峰。

成長為核心業務的核心骨乾?

成長為技術管理層?

轉型業務專家,轉型做業務谘詢顧問?

轉型產品經理,產品總監,走產品線?

這些都可以,都是一些具體的職業發展路線的選擇問題。然而無論選擇,只要你始終保持開放的學習心態,不斷積累知識和經驗,構建個人的知識體系,磨練自己的思考能力,並且時常自省,中年對你來說完全不是危機,而是巔峰。

寫在最後

「程式員能純靠技術渡過中年危機嗎?」這個問題,我看了數十個人的看法,絕大多數答主都認為純靠技術渡過中年危機不現實,有這樣技術實力的人永遠都是少數。至於怎麽用常人能落地的手段去做一些嘗試,我在正文部分選取了三位有代表性的回答作為參考。

有一位答主從前輩那得到的點撥我覺得非常有見地,最後再 share 給大家:

“你思路要開闊點,一個項目成功可不僅僅是寫代碼這麽簡單。你也做過很多項目效益分析,你自己想想,有幾個項目是真的死於技術不行的。如果老闆期望過高呢?如果給的資源不夠呢?如果其他部門不配合你呢?你做精準行銷,人家一線銷售根本不鳥你,你怎麽精準?如果你能從結果出發,倒推做成項目需要什麽。用這些分析去影響業務部門,豈不是比別人挖好了坑,自己邊罵邊填更好?”

獲得更多的PTT最新消息
按讚加入粉絲團