1. 程式人生 > >而立之年再談大齡程式設計師要不要轉管理路線

而立之年再談大齡程式設計師要不要轉管理路線


引子

        很多程式設計師都有一點技術情節,喜歡“專心搞技術”,不喜歡管理,尤其管人。甚至為自己是“專注於技術”而自感清高,有點看不起那些“外行管理內行”或者急於轉型管理的Leader。 而且IT這個行業,有些時候確實是擁有技術就擁有很大的話語權,這個行業中確實不乏一些技術牛逼、敢和Leader叫板,甚至和老闆拍桌子的人。 那麼我們是應該在技術路線上一根筋鑽到底,還是“為五斗米折腰”去轉型呢?  

我的個人經歷

        是的,鄙人也曾經持有上面的想法,只是技術從未達到那種爐火純青、登峰造極的境界,年齡卻越來越大(雖然年輕時也偶爾反駁領導幾句,但好在未曾拍過桌子),而職位卻原地踏步。曾經Boss有兩三次找我面談,在對我表示認可的同時提出讓我帶團隊,都被不識時務的我以各種理由拒絕了。

        當然細細回想起來,也並非是我情商太低,而是錯誤的預判了部門的發展形勢,以及沒有想到不做Leader的後果...

  •          Boss第一次找我談想不想管人的時候,我大概二十五六歲,還算年輕。當時覺得自己技術積累還不深,走管理方向必然分散很多精力,怕一不小心成了在公司熬資歷的混子,萬一想出去的時候在沒有技術競爭力。而且當時部門才十多個人,Boss一個人就管的妥妥的,我沒想明白還要這種小管理人員作何用(而且大家組織關係都掛載Boss下面,績效考核權也在Boss手中)?    

哪知道此後部門發展迅猛,從十幾個人到三十多、五十多,呼啦一下就到一兩百。曾經只是象徵性管著一兩個人的“雞肋”管理,突然之間手下一二十號人,也擁有了招聘、考核權利,儼然生殺大權在握。而Boss自然越來越忙,忙到只有這些Leader才有資格和他開開會,其他小兵幾個月可能都見不上Boss一面,更別說面談的機會了。

  •          Boss最後一次跟我談的時候,我28歲。當時剛剛帶隊完成一個大版本的開發,做的還不錯,但也很累,可以說精疲力竭。女兒剛出生幾個月,基本上每天加班、平時都見不到面。Boss說想讓我帶一個新團隊,具體業務就不細說了,免得被對號入座。但我又錯判了形勢。因為我覺得他講的是一個內部支撐的專案,我們公司雖然規模還可以,但仍比不了BAT,TMD以及某為、某易,鄙人認為恐怕內部支撐的專案很難得到重視、而且當時確實也沒有人力支撐,再加上鄙人對該技術領域基本沒有了解,以我一貫的性格,肯定不希望被別人罵“外行指揮內行”。於是我猶豫了。 
       此後的形勢既如我所料,又出乎意料。Boss從其他公司挖了一個對該領域比較擅長的專家作為新團隊Leader,專案人員上也通過招聘、內部抽調等方式補充到位。我不看好的內部支援專案,後來確實沒什麼下文(因為我從來沒聽說有哪個團隊在用)。但他們依然是Boss眼中的核心專案,因為其定位已經由內部支援轉為直接對外銷售(雖然業績還不明朗)。

我的觀點和理由

       講了這多,似乎都是流水賬,文不答題。接下來言歸正傳,結合我的這些經歷說說要不要轉管理路線。 首先說結論:
  •  如果在一個很優秀的平臺,擁有技術無限成長的空間(比如很多朋友都對鄙人講某baba公司,有很多資深的技術大牛,P8,P9都在寫程式碼),那麼我想這不是問題,海闊憑魚躍,你可以隨便選擇;  
  • 如果種種原因,你不在這種平臺,那麼儘量在二十五六歲之前打好技術基礎。二十七八歲就要好好拓展知識面,關注更多的技術領域和框架、管理和溝通技巧,有機會就要牢牢把握(這叫勇於承擔);
  •  如何判斷你所在的平臺是否擁有無限的技術成長空間呢?那些新成立的網際網路小公司我不敢妄下結論,但對於有一定規模的公司,看看你身邊那些30歲及以上的程式設計師,有多少真正成為了令人欽佩的技術專家?有多少人在混日子?有多少人已經離職?有多少人轉了管理?那麼我想這個問題不難回答。   

 至於這麼選擇的原因,總結下來有以下幾點:  
  1. 基於前面所分析的,你所在的公司能否在技術發展方向提供足夠大的平臺? 如果不能,而且你也不打算換一個平臺,那麼應該如何選擇,顯而易見。 
  2. 你的技術水平能否和工作年限成正比?很多時候,受個人努力和公司平臺侷限,往往工作了十幾年的人,由於身體和家庭的原因,放在工作上的精力越來越少,而且一直以來都是寫一些上層業務的程式碼,業務邏輯變來變去,程式碼流程改來改去。卻很少有機會深入分析深層原理、專注於把技術優化到極致、不斷拓寬自己技術視野,甚至對自己產品的瞭解都仍然只侷限在一個較小的領域。打個比方,今天還在做外賣平臺,明天可能又要支援打車功能了。可能很多用到的很多核心程式碼都已被封裝成通用的庫,你只負責呼叫、組裝(亦稱:搬磚)。這樣做很容易導致的後果就是,你工作十多年之後做的事情,那些畢業三四年的人也能做,而且人家精力比你更充沛,薪資要求比你更低。看看17年網上流傳的中年程式設計師危機,這其實是一個很致命、而且無法迴避的問題。不要抱怨公司不養老,公司是盈利機構,養的閒人太多,失去競爭力,最終還是會倒下的,到時候傾巢之下安有完卵。
  3. 那麼有人說,這個問題不做技術也存在啊,想把管理做好也很辛苦很累啊。是的,但就我的理解來看,在很多不需要很深的技術就可以成為Leader的中小公司,這兩種辛苦是不一樣的。對於非大神級別的碼農來說,很多時候寫程式碼是不求有功但求無過,是需要非常精確邏輯,一點考慮不周就是一個bug,甚至是致命問題。但是如果你的大局觀還不錯,溝通能力也可以,對產品較深的理解和前瞻性,做管理的話則只需要把握好正確的方向,在一些很細小的問題上,往往沒有精確的是非評判標準。比如說,一個Leader可能需要週末出差去見客戶,可能需要深夜給Boss寫彙報PPT,但不需要今天晚上一定要把某個bug定位出來並且fix掉。再打個比方,在一些中小公司,可能做管理你只需要告訴團隊,我們走京滬高速從上海去北京,這是地圖,預計需要XX個小時,可能收費XX元,請務必預留足夠時間,確保在XX時間之前到達。但如果你是碼農,一路上你就必須時刻關注這裡限速多少,下一個匝道要不要出去?一旦錯過一個出口,你可能就會揹負很大罵名。
             總結一下就是做Leader,你的大局觀、良好的前瞻視野、溝通管理協調能力、良好的總結概括彙報能力,都是你核心競爭力的一部分。這些能力一旦形成,往往不需要很精確的學習,只要保持這種努力的慣性就可以。而寫程式碼則不同,業務一變,你要重來;新出一種語言,你要重新學。Java 10釋出了,C++ 20都快要出來了,你發現一夜之間你好像不懂java、不懂C++了。更不要說近些年新興起的一些語言和開源專案…      
             當然這是就鄙人自身經歷體會總結的,說的不對也請大家不要罵娘~~相信在大神如雲的一流公司肯定不是這樣。但是這些大神肯定也不會有時間來看我瞎逼逼跟我擡槓。^_^  
  4. 如果你不去做Leader,那麼這個空缺的崗位就一定會由別人來做,而你往往就是他的下屬,而且可能幾年之內都不會再有這種升遷的機會。這一點,領導在和你溝通時可能不會明說,但千萬不要像鄙人一樣愚鈍。也許你確實不看重名利,但你要考慮如果你不去做Leader,那麼領導可能會任命他眼中的第二、第三人選。換言之,可能某個能力暫不如你的人會成為你的上司。你是否願意被他指揮? 再進一步想想,當你三十五六,甚至40多歲時,還被一個二十六七的小夥子帶著每天寫程式碼、改bug、通宵發版本,這畫風……
  5.  對於很多人來說,寫程式碼很難以一當十。你精通Linux核心嗎?你精通網路安全嗎?你精通效能調優嗎……如果這些都做不到,那麼或許只有成為Leader,把團隊帶好,才能創造更大價值。否則你充其量也就只能是一個“優秀的程式設計師”,那麼在收入等方面的發展空間也可想而知。 
  6. 隨著年齡增大,你會深刻明白平臺的作用,以及只有整個團隊做出成績,個人價值才能更好得到體現,正所謂水漲船高。那麼如果你有足夠的能力,成為Leader無疑是幫助團隊走向成功的最佳途徑。否則你可能會發現,航空母艦上的普通士兵似乎也比你這個破船上的“大副”過得好。
  7.  雖然我們說是金子總會發光,但不可否認很多時候關鍵任務更容易出成績,而一些髒活累活往往有苦勞沒功勞。成為Leader,有利於你遠離髒活累活,只處理核心工作。雖然有些不厚道,但職場生存就是這樣。同樣道理,你可以相對靈活的安排自己的時間,把別人做髒活累活的時間用來給自己充電,逐漸積累和擴大自己在技術、視野等各方面的優勢,到最後很可能就是有很多事情只有你能hold住了。  
  8. 很多公司裡,Leader掌握的資訊量和其他人完全不對等(當然某些非常open、共享的網際網路公司除外)。比如某些專案的核心設計,未參與進來的人可能接觸不到;比如某某問題的定位報告,可能當事人只發給了Leader;比如和客戶的溝通交流,可能只有Leader參與了。其結果和7類似,導致Leader的成長速度遠比其他人更快。
  9. 當機會擺在你面前時,你的退讓在自己看來或許是“讓賢”,覺得自己不夠完美,擔心把事情搞砸。但是在領導看來,是當他需要有人來分擔一部分管理職責的時候,你退縮了,而別人勇敢站出來,主動承擔。那麼你是領導,你會更看好誰? 此時最好的選擇當然是迎難而上,當然你可以把自己的顧慮直接說出來,需要領導提供什麼幫助支援,比如:提供內訓機會、在公開場合宣佈對你的任命、在必要時候給你“撐腰”等等。