程式設計師為什麼會憂慮自己的未來?

陳馳遠發表於2017-06-02

從去年開始,我參加了一些分享交流,也對外發過一些自己對工作所遇問題的思考。不少程式設計師加我好友諮詢問題,幾乎每個人問的問題都跟職業規劃有關。這提醒了我,其實我自己也一直在思考同樣的問題並嘗試規劃未來。於是想和大家分享一下自己在這方面的感悟。

本文僅從我自己的角度來剖析對程式設計師職業規劃的看法,並不全面。而下文中提到的程式設計師群體也泛指在一線具體執行編碼任務的程式設計師,不包含一些高精尖技術崗位的專業技術人才或是已經有自己明確職業規劃,已經進階成功的工程師。

什麼引發了焦慮?

網際網路是一個新興但高速發展的行業。新興意味著沒有那麼多的職場楷模給新人指明方向,也沒有一套公認的穩定可複製的職業發展路線。高速發展意味著變革與競爭,大量新人因為行業紅利湧入,你無時無刻要跟一群優秀的熱血青年同場競技。

網際網路行業工作強度很大,而中國的網際網路從業者更忙。程式設計師更是戰場中的排頭兵,身體健康的透支導致很難長期抗戰。當你意識到自己跟不上節奏的時候,不管是出於對身體狀況的擔憂,還是對未來潛在威脅的恐懼,又怎會不感到焦慮呢?

而程式設計師的職業特性加劇了這種焦慮,主要表現在以下幾方面:

一、程式設計師職業複利性較低。

什麼叫複利性?

就如同利息的計算方法一樣,在本金相同的情況下,複利獲得的利息回報要高於單利,而年期越長,複利效應越高。職業一樣有複利效應,一個複利高的職業在職業生涯中後期會展現出越來越高的價值。醫生、律師都是複利性很高的職業。

而程式設計師職業複利性較低,主要有兩個原因:

  1. 專業性強,通用性差。不同技術種類有著自己的技術棧,共用的只有設計思想、程式設計正規化,基礎技術等通用知識。
  2. 在沒有明確規劃的情況下,大多數程式設計師日常工作積累的不是通用知識與綜合能力,而僅僅是某項技術的熟練度與經驗。這是根本原因。

程式設計師為什麼會憂慮自己的未來?
後端技術棧

程式設計師為什麼會憂慮自己的未來?
前端技術棧

這造成了一個問題——當職業生涯遇到瓶頸時,程式設計師很難完成一次完美的進階。讓我們分析下最常見的三類方案:

  1. 技術職位之間的轉崗。這是最普遍的一種情況,Android轉IOS,後端轉前端等都在此列。雖然設計原則、程式設計正規化等技術知識是通用的,但作為一線的執行者,技術的熟練度才是影響你工作效率的最大因素,你必須對技術棧非常熟悉才能體現工作的專業度。 轉崗往往是無奈之舉。

  2. 技術轉產品/運營崗。很多工程師抱怨產品經理設計的產品有問題,邏輯不嚴密,用起來很彆扭。但讓工程師做產品,問題一般會更多。為什麼呢?最大的原因在於程式設計師的思維模式或多或少會受到程式設計的影響,偏向理性與具象化,缺少了感性的察言觀色以及換位思考的能力。設計好一個產品,邏輯嚴密只是條件之一,但並不是最重要的條件。產品經理需要從使用者的行為中挖掘出使用者真正的需求,提煉歸納並設計成一個可用的產品。這是大多數程式設計師很難做好的事情。

  3. 技術轉管理崗。BAT都有自己的M崗位,高工都可以選擇是繼續走技術路線還是嘗試走管理路線。很多程式設計師安慰自己,哪天真寫不動程式碼了,那我就做技術經理吧。但我認為管理崗的轉變比前面兩類都難。管理是一門很深的學問,執行和管理是兩回事,需要從根本上改變思維模式。評判一個工程師的好壞可以看工程師的產出,而評判一個管理者的好壞在於整個團隊的產出和效率。很多優秀的程式設計師自己技術能力很強,卻很難帶領整個團體一起向前進。

二、程式設計師職業的壁壘沒想象中高,魯棒性低。

魯棒性也指抗變換性,一個好的職業需要有高的魯棒性。大部分程式設計師把自己的職業與某項技能繫結。做過程式設計的都知道,一個高耦合低抽象的編碼魯棒性一定低。網際網路行業變化太快,回頭看下諾基亞的發展,Windows桌面應用開發,整個行業如同大浪淘沙。隨著雲平臺的崛起,公有化平臺的發展,API服務的開放,可以預見從業者的工作效率會大幅提高,同時很多職業可能會再次洗牌:基礎運維工程師,DBA,基礎演算法工程師,安全工程師,影象演算法工程師,資料工程師等等都在此列。

從另外一個角度來說,假設你運氣很好,選擇了一項長期熱門的技術比如Web前端開發。但是因為行業紅利太高,無數聰明、努力、上進的熱血青年湧入其中。隨著社群的發展,線上教育的普及,達到同樣熟練度的時間越來越短,而熱門網際網路技術的發展是以月計,你需要花費大量的時間去學習積累新技術。新人與你的差距會越來越小,你會隨時面臨被超車的局面。這意味著,很多時候即使你認為自己經驗更豐富,能力更強,但你卻得不到理想的職位及薪資待遇。

三、程式設計師職業能撬動的價值有限。

這個概念受啟發於《葛洛夫給經理人的第一課》一書。葛洛夫試圖定量的分析經理人的產出,於是提出了一個公式:經理人的產出 = 他直接管轄部門的產出 + 他間接影響所及部門的產出。為了定量的分析職業的價值,我也引入了一個公式:產出的價值 = 他自身的產出 + 他直接影響部門的產出 + 他間接影響所及部門的產出

職業能影響的人越多,創造的價值越高,職業的上限價值也越高。

網際網路行業的供求關係以及價值體系,造成了一個現象:程式設計師供不應求使其入行薪資高,但是工作五年以上薪資趨向於穩定。對於絕大部分公司的絕大部分職位,當熟練度和經驗達到某一個閾值的時候,選擇成本是趨同的,自身效率提高所能帶動的價值提高已經很有限。正因為如此,從業者在享受了薪資高速增長之後,很難接受薪資增幅趨緩,職業生涯遇到瓶頸引發焦慮。

程式設計師為什麼會憂慮自己的未來?
薪資發展

我的規劃是什麼?

分析了這麼多,我最想表達的意思是:所謂的穩定,是最大的謊言。在高速發展的行業,根本沒有一個穩定的職業。解決焦慮的最終辦法是重新定位自己的職業生涯,儘量不以所謂的熟練度和經驗作為自己的競爭力,將自己的職業生涯押注在某項低門檻的技術上,而是根據自身的情況,持續不斷提高綜合競爭力,加強自己的不可替代性。

首先我會分析自己的特點,這是建立與他人的差異性和自己獨特標籤的關鍵所在,也是最值得加強的地方。我最大的特點是什麼?

  1. 有野心。我不想選擇一種得過且過的生活,而會選擇一個產出價值更高的事情來做,影響更多的人,創造更高的價值。
  2. 會溝通。我溝通能力不錯,既可以對外談合作,又可以對內做管理。這會是我相對一般技術型程式設計師一個很大的不同。
  3. 專業強。在專業技能層面我有較深的認識與理解,雖然談不上頂尖,但我知道怎麼運用自己的知識能力找到最適合現狀的方法解決幾乎所有日常問題。技術積累永遠是我最核心的競爭力。

知道自己特點之後,我會以此為基礎來增強自己的不可替代性。不可替代性不僅僅只是基於個人的能力,還有這幾點是需要日常注意積累的:

  1. 健康的身體。在經歷過一次生病後,我更加意識到擁有一個健康的身體才是最重要的。積極健身可是我們青橙員工的必備素質。
  2. 思想與格局的高度。思想的高度並不是一朝一夕就能拔高的,而是在經歷了來自工作與生活的各種挑戰之後,靜下心來反思總結,從而慢慢積累並提升。
  3. 人脈與影響力。樂於記錄和分享自己的工作感悟。抓住向其他人學習的機會,比如參加一些會議或交流,不管是同行業還是其他行業的,都是很有必要的。人脈和影響力的積累與格局的高度也是相輔相成的,與某些方面比自己優秀的人交流往往會收穫滿滿。

當我有了明確的方向並且每天都能看到自己進步的時候,就會對未來充滿憧憬。我給自己未來的定位是做一名解決者。何謂解決者?面對未知或已知的問題,知道如何分析本質原因,制定並實施解決方案。附加打油詩一首:

文能設計定需求,武可寫碼做架構。
進做招商引融資,退做大V佔風口。
產品體驗包上線,還要招人帶節奏。

總結

每個人的情況都是不同的,可以做出的選擇也有無數種。而我對這個問題的認知帶有很強的自我侷限性,隨著自身的發展也許將來我的想法也會和這篇文章有出入。但是分析問題的方法是類似的,希望你在看完後會對職業規劃這件事有新的思考,我的知乎名是陳馳遠,歡迎加我討論。如果你覺得文章讓你有所收穫,轉發和打賞都是對我的鼓勵。

題圖:美劇Lost海報
讚賞通道在這裡:

程式設計師為什麼會憂慮自己的未來?

相關文章