作者 | Luis Minvielle
譯者 | 仇凱
審校 | Noe
如果你是正在培訓班學習編程基礎知識的學生,那么你需要多長時間才能成為軟件編程專家呢?加拿大作家馬爾科姆·格拉德威爾(Malcolm Gladwell)在他的暢銷書《異類》(Outliers)中提出了著名的一萬小時定律——這是一條經驗定律,用于說明任何人在成為某些領域的專家和成功人士之前需要學習和訓練的時間。
根據格拉德威爾的推理,披頭士樂隊之所以能成為成功的樂隊,是因為60年代初他們在漢堡(德國北部的港口城市)工作,通過在該市夜總會不停地巡回演唱,積累了大約一萬小時的現場演唱經驗。
此外,比爾·蓋茨之所以能成為一名傳奇程序員——在那個時代,他是世界上最優秀的50位程序員之一——因為他首先投入了一萬小時來讓他的代碼有效、快速和無異常報錯。他在年輕的時候就這樣做了——十幾歲的時候,他溜進了高中的計算機實驗室,自學了編程的基礎知識和理念。到他創立微軟時,蓋茨雖然是一個剛起步的商人,但他是一位技術專家,是一位經過一萬小時定律認證的開發人員。
這條定律簡單的令人著迷——格拉德威爾將復雜理論歸納為易于理解的口號——并使其變成學習和成功的參考標準。甚至保羅·麥卡特尼(Paul McCartney)也表達說,“這符合很多事實情況”。
如果我們運用格拉德威爾的調查結論并將該定律應用到程序員的職業生涯中,我們將輕松地判斷成為一名編程大師需要多長時間——或許它還能提供一份參考指南,讓我們了解何時可以提出升職加薪的要求。
從學徒到大師
為了這個測試,讓我們假設一萬小時定律非常準確(劇透警告:據稱,事實并非如此)。另外,假設你參加了一個全日制的高強度培訓班(類似于沃耕編程訓練營),夢想成為一名數據科學家。這意味著,當你完成課程時,你已經練習了大約 350 小時——占最終目標的3.5%。
但這僅僅是開始。2020年,79%的培訓班畢業生在課程完成后的六個月內找到了工作。一份工作——或者高中計算機實驗室——可能是提升編程水平的最佳場所。
所以,成為一名專業程序員需要經過漫長的道路,但是需要多久呢?考慮到350小時的時間優勢和(悲觀情況下)六個月的中斷情況,你現在就可以對此進行評估。
如果你在一家公司找到了一份數據科學家的工作,并且以每周5天、每天8小時的時間來開展編程工作并磨練你的技能,那么你將花費大約5年半的時間達到一萬小時定律的要求。不是很輕松,但也并不十分困難!
我是一名工作了3840小時的工程師,我要求加薪。
不,請不要對你的老板這么說。但是,由于工資通常是松散的等級系統來決定的,因此對于一名擁有3840小時專業經驗的程序員來說,可能意味著你已經具備要求增加你月收入的條件了。
你可以用3840小時做多少事情?首先,你可以觀看黑客帝國超過1500次,或者觀看每場冠軍聯賽決賽的重播近40次。但是,最重要的是,如果你擁有3840小時作為程序員的經驗,這意味著你已經投入了至少兩年的時間來練習、工作和磨練你的編程能力,并且大家都會認可你的進步。
那么,到這個時候,你就不再是初級工程師了——你可以稱自己為中級工程師。正如我們之前提到的,擁有2到3年的程序員經驗意味著你將能夠爭取大約8到9萬美元的薪水(在美國)。
一萬小時定律讓我們可以非常容易地評估自己在兩年內取得的進步:因為我們談論的是一萬小時目標中的3840小時,我們會說,當你已經完成了超過三分之一預期路程時,你已經是一名中級工程師。
高級工程師里程碑
如果你是高級工程師,則意味著你知道如何同時成為專家和初學者:高級工程師能夠輕松探索新的編程語言或概念。這也可能意味著你的領英收件箱經常會被塞滿:根據美國勞工統計局的數據,幾乎98%的高級軟件工程師都很容易被雇傭。
更重要的是,37%的高級軟件工程師通常只在一家公司呆一到兩年。統計數據反映了市場(無論是私有領域還是公開領域)對全方位、經驗豐富的軟件開發人員的高需求。如果你是高級工程師,那么你一年內很有可能會獲得數十個工作機會的邀約。
那么,在成為高級軟件工程師之前,我們應該編程多長時間呢?研究中心似乎傾向于用年限來作為評估依據:至少需要以程序員的身份工作五年,你才能夠成為高級工程師。
是的:五年,相當于完成一萬小時定律的要求。格拉德威爾的定律完全符合行業標準。格拉德威爾的看法是,大量練習不僅能獲得專業知識,同樣也會帶來成功。
所以,根據他的觀點,如果你非常努力地進行五年的編程訓練,你就會積累一萬小時的“飛行時間”——這將為你的成功做好準備。如果可能的話,那時候你的薪水應該在11萬美元左右,如果你在硅谷工作,薪水會更多。
總結
一萬小時定律的美妙之處在于它和編程職業幾乎完美匹配:如果我們盲目選擇相信并遵從定律,那么成為數據科學專家、網頁開發專家或Ninja(一種注重速度的構建工具)程序專家將花費相同數量的時間,也就是五年左右。業界似乎也在遵從這個定律,即隨著工作年限的增加而給予員工更高的薪水——隨著你的專業知識而增加。
當然,職業生涯有起有落。你可能每天只花三個小時編程,這會使你消耗更長的年限來達成一萬小時定律的要求。此外,你也可能會在一個充滿激情的項目上投入大量精力,這使得你能夠以低于五年的速度達成目標。
即便如此,這種分析的另一種看法是,在大多數人力資源團隊眼中,你距離成為他們認可的“高級”人員還有五年的時間。而且,如果這個理論被證明是正確的,那么你距離職業成功也只有五年的時間了。
譯者介紹
仇凱,51CTO社區編輯,目前就職于北京宅急送快運股份有限公司,職位為信息安全工程師。主要負責公司信息安全規劃和建設(等保,ISO27001),日常主要工作內容為安全方案制定和落地、內部安全審計和風險評估以及管理。
原文標題:The 10,000 hour rule won’t make you a coding expert, but it’s a good start
鏈接:https://thenextweb.com/news/10000-hour-rule-coding-expert