程序員從初級到中級的10個秘訣

2016-08-18 23:16:29

原文作者:Justin James
原文鏈接:10 tips to go from a beginner to intermediate developer
譯者:boxi

苦於無法為想升級的初級程序員尋找到竅門?作者以其如何實現這種跳躍的建議來填補瞭這一信息鴻溝。


在一封與TechRepublic會員交流的郵件當中,他提到瞭面向程序員的博客、文章及雜志分成兩類: 面向初學者類(“hello world”這種類型的教程)以及面向專傢類(MSDN雜志)。這個觀點很好,有關程序員如何從初級躍升到中級的信息極少。以下是為瞭實現這種轉變需要你去做的10件事。

#1: 學習另一門語言

其 實你學的是哪一門語言並沒有關系,但是學習另一門語言(不管你已經瞭解多少種語言)將把你打造為更好的程序員。能學會一門與你日常使用的語言風格迥異的語 言則更佳。打個比方,如果你是C#程序員,學習VB.NET或者Java對你的幫助就沒有學習Ruby或者Groovy大。

我說“學另一門 語言”的意思是要真正學會它。學習一門語言包括三個領域的知識:語法、內置操作符和庫,以及“如何使用”。前面兩個簡單;我認為一名有經驗的程序員,根據 語言的不同,能在半小時到幾小時內掌握足以維護代碼的語法知識。操作符和庫隻不過是知識逐步積累的過程,你什麼時候想清楚要瞭解什麼瞭,再去查閱參考材料 也不遲。隻有第三項,“如何使用它” - 要花上你幾個月的時間去跟這門語言打交道,真正的奇跡就在此發生。我建議用這門語言的風格去做一個適合該語言的項目。

真正學會瞭另一門語言之後,我敢保證你的程序員水平一定會突飛猛進。

#2: 學習先進的搜索技術、手段和及策略

作為一名好的程序員,不僅僅是技能的問題瞭,而是你尋找信息的技巧,這個趨勢越來越明 顯。對大部分人而言,僅僅輸入“現代語言及開發框架”,這都是泛泛之談,記不住多少的。因此,你完成工作的能力通常取決於你的檢索能力。不幸的是,瞭解到 如何找到準確而高質量的信息可不僅僅是跑到TechRepublic來找答案,或者在你選好的搜索引擎上敲幾個字那麼簡單。

“技術 (Techniques)”、 “手段(tactics)”和“策略(strategies)”看起來是一回事,實際上並非如此。你需要學會的技術是掌握你喜愛的搜索引擎的高級搜索系 統;你需要瞭解諸如佈爾操作符,如何過濾結果(像“非”關鍵字,域限制等等),關鍵字的詞序扮演什麼角色,等等。一句話,RTFM(Read The Fucking Manual,讀那些他媽的手冊)吧。

你應該學會這些手段,諸如如何接近特定的搜索,以及瞭解自己實際上想查些什麼。查錯誤很容易 — 隻需查出錯代碼即可 — 但是許多搜索的關鍵字選擇要困難得多。

至於策略,你需要學會的東西,包括像應該使用哪種搜索引擎(提示:普通的搜索引擎不一定就是最佳選擇), 使用普通搜索引擎前應該訪問哪個網站,甚至是應該到哪個論壇去尋求幫助,等等。

#3: 幫助別人

教別人始終是學習一切東西的最好方法之一。相對而言,由於你在開發領域還是個新手,認為自己沒什麼可教給人傢的,這可以理解。但這毫無意義。記住,你所學到的一切都是你從別人或別處學到的;因此請嘗試一下,成為另外一個人要請教的“別人”。每天盡量花一點時間試著回答TechRepublic上的問題,其他網站的亦可。讀讀其他會員的回答,你也可以學到很多東西。

#4: 有耐心,常練習

研究表明,要成為一名“專傢”,需要花費10年,或者10000到20000小時的刻意練習時間。 真的很久。還有,成為專傢不盡然就是執行10年同樣的任務;通常這意味著要在特定領域內執行廣泛的任務。需要花費大量的時間和精力才能成為"專傢";做幾年程序員是不夠的。想在30歲左右成為一名高級軟件開發工程師 ?要麼盡早接受教育/培訓,要麼你得願意在閑暇時間進行大量的工作、閱讀和練習。我從高中開始編程,還犧牲瞭許多休息時間去跟蹤行業發展、學習新技能等等。結果,我獲得中級和高級程序員的時間就比我的大部分同事都要早得多,隨著時間的推移,這些就轉化成為很多的金錢。

#5: 對教條拒之門外

是 時候開誠佈公瞭:也許初級程序員瞭解的東西還不足以說出做某件事情有一種最好的方式。尊重朋友或者權威的觀點是好的,但直到你更有經驗之前,不要把他們的 觀點說成是你自己的。很簡單,如果你所瞭解的不足以讓你獨立地找出這些東西來,你又怎麼會認為你知道哪一位“專傢”是對的呢?話是難聽瞭點,不過請相信 我;由於受某些愚蠢建議的蠱惑,或者追隨某些根本不知道自己在說些什麼的所謂專傢,白白把自己的職業生涯耽擱瞭幾年,這樣毛頭小夥程序員,我見過多瞭。 這一點有一個很好的例子,就是面向對象結構的濫用。 比如說,許多初級者讀瞭一些有關面向對象的信息後,突然間,他們那簡單的應用程序的類圖看起來就像埃菲爾鐵塔一樣瞭。