高級工程師如何跳出年齡歧視的怪圈?
【CSDN編者按】年齡歧視是技術圈經久不衰的話題。很多人會說,35歲就是程序員的分界線,有的人會轉向管理崗位,開啟另一片事業晴天;有的人則會被技術圈淘汰,只能在一隅之地做顆螺絲釘。那麼對於技術上已經有所沉澱的高級工程師來說,下一個目標究竟應該怎麼制定?
以下為譯文:
假設你已經做程序員很多年了,中間得到過一次或兩次升職,如今下一步該怎麼走,你有點彷徨。在這之前,職業生涯的發展目標直截了當:學會獨立工作,然後升職到高級軟體工程師或一些同等的職位。
但現在面對前方的道路你有點迷茫。
我要放棄編程,成為一個經理嗎?
我還需要學新的技術嗎?或者我的技術力足夠了?
我的目標是什麼?
......
在這篇文章中,我將提出一種不同的職業發展方向,一種可以給你更多自主權和擁有更多討價還價能力的職業發展方向。
與成為經理不同,在這條路上你還可以繼續編程。
從編程到解決問題
作為程序員,最終的工作核心是解決問題,而不是寫代碼。
解決問題需要以下幾點:
找到並確立問題;
提出解決方案;
實現解決方案。
上面每一條都可以看成是一個技能樹:一套能夠單獨和並行發展的相關技能。但是,在實際工作中,我們往往都是按照相反的順序從第三個技能樹開始,然後隨著經驗的增加,逐個添加其他技能樹。
Randall Koutnik將這些描述為職業發展中的如下頭銜:實現人員,解決問題的人,發現者。
作為一名實現人員,你是一個沒有經驗的程序員,你的任務是由其他人定義的:你只需要實現小的明確指定好了的代碼塊。
假設你的工作是為動物的主人建立一個網站。你去上班並接受任務:「在這裡添加一個下拉菜單,列出所有鬣蜥的疾病,你可以從IGUANA_DISEASE表中獲得數據。選擇一個菜單項時,重定向到相應的頁面。「
你不知道為什麼用戶想列出鬣蜥的疾病,而且你也不必花太多時間來確定實現的方法。你只是按照別人的吩咐去做。
隨著經驗增多,你會變成一名解決問題的人:面對不太明確的問題時,能夠提出解決方案。
假設你遇到了一個問題:「我們需要在網站上添加一個區域,方便寵物主人弄清楚他們的寵物是否病了。」你清楚你有什麼數據以及可以使用哪些API,你與設計師一起想出了一個用戶界面,然後你創建了一個實現計劃。最後你開始寫代碼。
最終你會成為一名發現者:你開始自己發現問題並弄清楚根本原因。
你和經理討論鬣蜥的這個功能:幾乎沒有人養鬣蜥,那為什麼還要將它們與貓貓狗狗同等對待呢?更加不用說編寫鬣蜥專屬的代碼簡直就是浪費時間,難道不應該編寫適用於所有動物的通用代碼嗎?
經過一番討論後,你發現必須重做網站架構,業務邏輯和設計,才能避免在每次添加新動物時編寫新代碼。如果你想出正確的架構,添加新動物只需要一個小時的工作,那麼公司就可以用很低的成本服務於許多動物市場。設計和實現解決方案可能需要你與整個團隊合作完成。
成為發現者的好處
許多程序員最終都是解決問題的人,而且不知道下一步該做什麼。如果你不喜歡做管理,那麼成為發現者是很好的下一步選擇,原因有兩個:自主權和效率。
Koutnik的主要觀點:在這三個階段中,每一個階段都會為你提供更多的自主權。作為一個實現人員你幾乎沒有自主權,作為一個解決問題的人你就有更多的自主權,而作為一個發現者,你所擁有的自主權很多:你只拿到了一堆模糊的目標和限制條件,你可以自己去弄清楚要做什麼。這很有趣。
而且還有另外一個好處:當你從實現人員轉向解決問題的人,再到發現者時,你會變得更有效率,因為你做的工作更少了。
如果你只是負責實現其他人指定的解決方案,那麼你可能會遇到效率低下的解決方案。
如果你只是按照表面描述的問題想出一個解決方案,那麼最終有可能你解決的問題不對,因為可能所有的問題的都是由另一個更基本的問題引發的。
如果你能深入診斷和識別潛在的問題,提出解決方案並與他人良好地合作,那麼你所做的工作就越少,你的工作效率就越高。
利用你的高效
如果你是發現者,那麼你的工作效率會更高,這樣你就能成為更有價值的員工。你才是那個發現了難題、幫他們找到原因所在、發現了客戶真正需求的人。
這意味著你有更多的談判籌碼:
你可以更加理直氣壯地要求漲工資;
即使面對不了解的技術,你也可以找到更好的工作;
你甚至可以要求一周休3天。
所以如果你想繼續編程,你仍然想在職業生涯中有所進步,那麼就開始尋找問題吧。如果注意觀察,你就會發現問題無處不在。
原文:https://codewithoutrules.com/2018/10/10/beyond-senior-software-engineer/
作者:Itamar Turner-Trauring
譯者:彎月,責編:郭芮
※月餅之王花落誰手?全網都在銷售它!
※一行代碼搞定整數二進位中的連續 1 判定!
TAG:CSDN |