如果你不想走管理路線,程序員職涯要如何成長?
在你的一生中,持續待在軟件工程師這個職位是一個好的職涯選擇嗎?或是你必須轉換到管理職位以繼續攀登工程生涯的階梯?這就是最近在 Quora 上工程師想知道的事,并且這是一個重要的且值得解決的問題。特別是那些對于管理群眾不會感到興奮的人。
好消息是持續擔任軟件工程師的職位并且不用選擇管理這個職位是一個很好的職涯選擇。然而如果你想穿透所謂透明天花板的話,不要指望單憑多年的技術經驗攀登職涯階梯。以下是一個粗略的模型公式,你的職涯成就與你所創造的價值成正比。
技術能力 + 經驗 ≠ 影響力
在 Google 這樣的公司,擁有超過 10 年以上經驗的工程師經常會問為什么他們在職涯階梯仍然只是一名資深軟件工程師?在他/她們早些年工作職位晉升上似乎很快是發生什么事?為什么他們有些同儕會獲得提拔?
這些工程師特別是那些不選擇管理職位的工程師所犯的其中一個***的錯誤-認為技術能力加上經驗等同增加影響力。他們守住一個信念,如果他們持續做好工作,他們***將會得到職位晉升的獎賞。這種心智模式是有缺陷的,原因有二
***,你寫程序和建構軟件的技術能力隨著時間維持在平穩狀態(譯注 :也等于是沒有陡峭的成長狀態)。當你***次剛開始工作的時候,你經常會犯了技術上的錯誤。每一個小項目都具有學習機會以砥礪你的編程技能。隨著時間進展,你在編程和軟件設計上更加熟練并且很少犯錯。所以你的早期職涯階梯晉升是你早期技術學習反映的結果。過了 10 年以后,你還是會學習并且可能還會選擇新的編程框架和語言-但是你的能力進展和提升是不會像***年那樣地引人注目。
第二,經驗并不會直接轉換成影響力。如果從現在開始算,10 或 20 年后,你還是在解決同樣的擴展( scale )和規模( scope )的問題如同你今天正在處理的一樣,那么你并沒有增加你的能力去創造影響力。況且如果你無法創造更多的價值,為什么雇主愿意付給你更高的薪水相較于沒有那方面經驗的人?這個觀察是獨立于產業或是職業。
保持你正在做的事是很容易,舒適,甚至是有樂趣的- 而且它可以是一個合理的生活方式決定,如果你寧愿把精力花在別的地方 – 但是你也無法期待你的職涯會自己成長。重要的不是有多少年的經驗,而是你創造創造了多少的價值。為了讓你的職涯保持成長,你必須保持追尋新的方法去增加你的影響力。
管理只是一個杠桿點來增加你的影響力
轉換到管理工作是一種方法 – 但不是唯一的方法- 對于在職涯有一個成功的發展而言。許多任務程師成為管理者,因為管理工作提供了一個明顯的和明確的杠桿點來擴展你的影響力。當團隊成長的時候是需要管理者的,并且有多年的技術開發經驗對于在發展管理技能是一項很有用的資產。作為一名管理者,你對部屬有影響力,而且還直接主導他們的工作-進一步說,如果你是一位好的管理者的話,你增加了每位團隊成員所創造出來的價值。如果那個增加的價值的總和,超過了你以一位獨立貢獻者的角色所能創造的,你的職涯在總體上是向前進的。
然而管理并不是職涯成長的唯一途徑,也不是每一位強大的工程師適合成為一位經理人。只要你能找到其他的優勢來擴大你的影響,你的職涯將持續成長。在大多數大型公司里,技術還是扮演一個重要的角色,例如,Google、Facebook、Amazon、MicroSoft 等公司,除了管理職位,它們都有一個明確定義的技術職涯軌跡以認知其它存在的杠桿點。仍然有許多任務程師以攀爬這個階梯成為一位最重要的工程師而奮斗。管理工作外的非傳統路徑需要更多的創造力,在管理工作外成功的工程師較少有可敘事的案例可以讓我們可以在后面追隨仿效。
所以不用成為一名經理人而且你的職涯還可以持續成長的秘密是什么?
關鍵的發現是,當你的技術編程能力可以在穩定狀態( 譯注:也等于是沒有陡峭的成長狀態),你的技術貢獻影響力則不需要。用你的才能決定要將力氣花在什么地方以將你的影響力***化- 例如決定要寫什么代碼,建構什么軟件,并解決其業務問題 – 這是沒有界限的。這個才能從其他人區隔出了最有價值和性能的工程師。
所以當一位軟件工程師要如何增長你的影響力而不用成為一位經理人?你可以識別并且解決商業的核心問題,或是你能夠讓你周圍的人更有效率地解決這些商業核心問題。你的技術努力與商業價值并行讓你的職涯得以成長。當你投入的時間可以直接轉換成有意義且可度量的結果,當你的努力直接移動公司成長和營收指針,你的雇主有了誘因給予你更多的資源和彈性,所以你可以更快速完成更大的成果 (注一)
這里有一些基于我所知道的軟件工程師范例,如何讓你可以放大你的影響力且不用去擔任管理職位(并且在一家新創公司不用擔任共同創辦人,這個職位通常是做管理工作):
建構可以讓你周圍的工程團隊產能倍增的工具和抽象層。例如,Jeff Dean,經由他對 Protocol Buffers,MapReduce,BigTable,Spanner和其它系統架構的貢獻,已經讓其他 Google 工程師超過一個重量等級的產出。這也是為什么 Google 設置了 Google 高級研究員的技術標準,基本上是為了 Jeff Dean,不用感到太意外。
在軟件或是其它工程團隊的實驗設計,開發具備足夠的專業能力可供咨詢,因為你的回饋意見有足夠的價值而少花了幾天或幾周的工作,或是將關鍵的項目從失敗轉向成功。
你在一個深入的技術領域成為專家,而這些是一個成長中的公司所需要的資源。例如,你成為一位機械學習專家然后在 Facebook 的新聞投放排行( news feed ranking ),在 Google 的廣告排行,或是在 Airbnb 的搜索排行等公司的相關部門上班。你投入的項目直接轉換成一家公司的成長與營收。
你識別了一個關鍵的商業機會,也許是借由與業務和商業團隊一起工作后看到這個機會,然后你成為公司內新創團隊中的一份子去協助他們的需求并將產品做出來。
你創建了到職和輔導新進人員的流程,并教導和訓練其他的工程師,而且你讓他們在團隊中顯著地增加更多的價值。
你在一個緊密的招聘流程中扮演一個關鍵的角色,并且你幫助招募工程師且將雇用工程師項目結案。
你為你的公司建設工程品牌的付出有很顯著的貢獻。例如,如果「多樣性」是公司工程品牌強大的部分,在業界招聘人才時,你可以往「多樣性」的狀態前進。
這些都是如何增加你的影響力中的幾個少數范例,但是可能達到的路徑是沒有極限的。要注意的是這些路徑所沒有提到的-建置軟件為***的目標- 更進一步說,它是幫助團隊和商業成功的方式。
專注在你所創建***的價值。你的職涯成功了并且成長也會隨之而來。