進階為高階開發者不是一蹴而就的。
前一段時間,我在Udemy上看到一個課程,其旨在讓你從初級開發者提升至中高階水平。這個課程包括許多技術、各種主題。該課程設計成帶你涉獵大量軟體和概念,最後你破繭成蝶,可以自詡是中級或高階水平。
但問題在於,這根本不是成長為高階開發者的途徑,主要是因為我們大多數人通常在課程接近尾聲時忘記了在課程之初學到的東西。我們在工作或日常活動中幾乎不會使用這些技術。確實是“學而不用則廢”。
這種途徑行不通的另一個原因是,高階開發人員不應該是萬事通: *他們不需要無所不知。*
我記得,在經過多年的自由職業後從事的第一份企業軟體工作中我就真實地遇到了這種情況。
有一次開站立會議時,專案經理詢問某位高階開發者是否可以承擔一項新任務。令人驚訝的是,這位高階開發者說:“我沒有XXX方面的經驗,我覺得最好指派給對XXX更加得心應手的其他人員。”
我震驚了!你的意思是高階開發者不是無所不曉?你的意思是我們可以承認我們無法勝任某些事或者承認他人知道得更多?這是年輕開發人員常有的天真想法。
從那時起,我一次又一次見證了高階開發者由於缺乏知識而將任務指派給初級人員。在這裡不是一場競爭。
如果不是無所不知,那麼是什麼成就了高階開發者呢?讓我們首先來看一下我在高階開發者中注意到的特徵。
高階開發人員的特徵(Traits)
他們具有“全域性思維”,因此在架構和高層討論中起到重要作用。在進行編碼時,他們編寫簡潔的程式碼。在出現問題時,他們可以為公司或其他開發人員排除障礙或使其走出困境。他們會拒絕不必要的功能或存在風險的功能。他們研究且明智地選擇所需的技術甚至技術棧。他們能夠估計專案進度並將專案拆分為各個小部分,並分配給中級和初級開發人員處理。他們在很多技術方面具有廣博的知識。
等等!我知道你在想什麼 —— 這最後一點與第一個主張—無法通過“學習”晉升為高階開發者—完全相悖。
不對,你其實完全可以。這也將引出我的主要觀點。
成為高階開發者的唯一因素(Only Factor)
作為高階開發者的確需要熟悉各種技術,但這並不是通過參加Udemy這類線上課程而實現的。你不能急於求成,因為最終使你成為高階開發者的唯一因素是時間。
沒錯,就是時間!
這是一個長期累積的過程——處理專案、犯錯誤、編寫程式碼、參加會議、解決問題,以及使用廣泛的技術。
學習使你靈活自如應對任何程式碼庫的編碼概念和理論基礎;幫助你的同事擺脫困境;以及對自己的錯誤負責。
而經歷所有這些事情都需要時間。
通過多年實戰,你將逐漸成熟。你將從他人那裡獲得認可,然後贏得高階開發者的頭銜,而不是自封為高階開發者。
總結
因此,如果你希望成為一名高階開發人員,那麼請繼續努力,投入時間,不懼怕犯錯誤並且從中學習。享受你作為初級者的時光,因為本質上是訓練場,而且所有樂趣和成長都發源於此——不過這又是另一個話題了。你在那裡所花費的時間有朝一日終會讓你成為高階開發者。
討論
你是高階開發者嗎?你為之付出了什麼?對於希望在幾年後升任職位的初級者,你有什麼建議?
注:文中提到的Udemy是美國的一個線上課程學習平臺,向成人/學生提供各類包括程式設計培訓在內的課程教學。
本作品採用《CC 協議》,轉載必須註明作者和本文連結