|
編者按:每個程序員都希望自己在技術(shù)方面更進(jìn)一步,成為程序達(dá)人,開發(fā)高手,技術(shù)大師……;這不僅能獲得更好的職位和更高的報酬,更重要的是,開發(fā)高手還代表著一個開發(fā)者對自己的肯定以及對技術(shù)夢想的忠誠與追求。但如何成為一個開發(fā)高手呢?也許我們能從下面這篇博文中獲得一些啟發(fā)。作者Rick Wagner是一位Java企業(yè)級架構(gòu)師,具有二十多年的開發(fā)經(jīng)驗的資深程序員和COBOLE語言的愛好者。他在文章中指出初級程序員與頂級程序員的根本區(qū)別在于所掌握技術(shù)的“廣度”和“深度”,Rick認(rèn)為這是程序入門者向程序高手進(jìn)階的關(guān)鍵
20年前,當(dāng)我剛開始從事數(shù)據(jù)處理方面的開發(fā)工作時,我在一家為銀行承擔(dān)外包工作的公司工作。開始我只是一個實習(xí)生,畢業(yè)后進(jìn)階為程序員的第一級——“初級程序員”。其實,在我們公司內(nèi)部,對這些Title都做了一些神秘的標(biāo)識,比如我的初級程序員的標(biāo)識是“E07”。
不久,我發(fā)現(xiàn)了我們公司是如何對程序員的級別進(jìn)行標(biāo)識的:
◆ 初級程序員 = E07
◆ 程序員 = E08
◆ 高級程序員 = E09
◆ 超級英雄 = E10 (一種非常罕見的品種)
這些級別不單代表技術(shù)能力,還有薪水,當(dāng)然,薪水是與這些級別排名緊密相關(guān)的,這是不會變的,不管是20年前還是現(xiàn)在。
像所有初級程序員一樣,我希望自己用一到兩年的時間在E07級別工作,然后逐漸向上爬。但有件事一直令我困惑:那些進(jìn)階最高級別的程序員與一直停留在初級的程序員之間到底有什么不同?
一天,我與一個非常棒的E10程序員一起開發(fā)一個項目,他叫James。在這個項目的過程中,我們進(jìn)行了愉快的交談,他的話令我印象深刻:“工作都一樣,無論你是E07還是E10”。
我當(dāng)時目瞪口呆。在那一刻,我意識到,在這個項目中我所做的工作與James所做的一樣重要。我當(dāng)時在做數(shù)據(jù)分析和編碼,James也在做數(shù)據(jù)分析和編碼。雖然他以最高級別的E10在工作,但他所用的編譯器我也在用;他所用的數(shù)據(jù)我也在用;他所用的開發(fā)環(huán)境也跟我一樣。如果他所做的部分遇到困境,我所做的部分也將遇到阻礙。在這個項目中,我們同行。
別誤會我的意思,雖然所做的工作一樣,但初級程序員肯定不如那些程序大牛值錢。今天,我不得不承認(rèn)這個被廣泛接受的事實。但那時,我的這個想法給我?guī)聿豢晒懒康暮锰帲钡浇裉臁?/p>
我試圖尋找我與E10的朋友們到底有哪些區(qū)別。我和他之間到底有哪些不同?我得到的結(jié)論是,至少在兩個方面他比我更優(yōu)秀:廣度和深度。
廣度意味著在技術(shù)方面可支配的工具、技能和方法廣泛的多。當(dāng)時,我只具備一些COBOL編程經(jīng)驗;而E10的朋友不單會COBOL,還精通于匯編、JCL(一種工作控制語言)、操作系統(tǒng)等等多項技能。在今天,這等于一個只會Java的程序員站在另一個Java程序員身邊,他身邊的這位同時還知道C++、C#、Ruby、Python、Erlang以及每一種語言的流行框架。如果一個項目只是需要使用Java,那這兩個Java程序員是平等的。但如果下一個項目需要更多的技術(shù),這種平等的情況就會發(fā)生改變。
另一個方面是深度,是指在其工作領(lǐng)域內(nèi)的知識含量和功底。在過去,我所編寫的COBOL代碼也許跟我的E10朋友一樣好。但如果我的程序有一個Bug,我的辦法只是看著診斷報告不斷進(jìn)行調(diào)試。我的朋友不單會做這些,他還會閱讀一些核心轉(zhuǎn)儲的數(shù)據(jù),將一些重要數(shù)據(jù)轉(zhuǎn)變成匯編程序(他可以從中獲得一些啟發(fā))等等。在另一個我們一起進(jìn)行界面編程的項目中,他可以更好的理解我們所操作的平臺并知道如何完美的利用這個平臺所提供的功能。同樣,我的源碼可能跟他的沒什么太大區(qū)別,但如果我們需要向下一個級別進(jìn)階……是的,我們之間有一個明顯的分界線。
在今天的世界里,這可能意味著程序牛人可以知道如何調(diào)整JVM,選取有用的數(shù)據(jù)分析工具;程序牛人知道如何安裝、配置、調(diào)試和配置平臺。牛人知道如何建立編譯環(huán)境,而初級程序員也許只知道按照已經(jīng)確定的方案(平臺)進(jìn)行開發(fā)。
技術(shù)的廣度和深度,我想,我找到了成為高手的密匙。我需要學(xué)習(xí)更多并努力提到自己的廣度和深度(直到今天,我還在努力!)。20多年前與James的一席談使我知道自己哪里需要提高,這對我在事業(yè)方面的促進(jìn)比我想象的大得多。如果你是這個行業(yè)的新手,希望上面所提到的這些能夠幫到你。
Happy Coding!
原文:A secret key to 'Senior' level programming
鏈接:http://rickwagner.blogspot.com/2010/02/secret-key-to-senior-level-programming.html
it知識庫:尋找成為開發(fā)高手的密匙,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。