|
編者按:原文作者Jenkov是一位丹麥資深開發(fā)人員,從事軟件開發(fā)已有十多年。常有讀者咨詢他,“怎么才能成為一位專家級(jí)的開發(fā)人員?”(這個(gè)“專家”不是頭銜,應(yīng)是指硬實(shí)力,“成為專家”和“被視為專家”是兩碼事)。所以他在下文中給出了相關(guān)建議。另外,他也提醒到,這些建議因人而異、因所用技術(shù)而異,并非適合所有人。

什么是“專家”?成為“專家”需要多長(zhǎng)時(shí)間?
在我開始討論如何成為一名專家之前,我們一起來(lái)花上30秒時(shí)間,看看專家的定義,還有成為專家需要多長(zhǎng)時(shí)間?
在使用某一技能三個(gè)月后,你還不是專家,即便使用時(shí)間是三年,你還不是。馬爾科姆·格萊德威爾在《異類》一書中指出,成為一名真正的專家,需要10000小時(shí)。10000小時(shí)!如果一天用10小時(shí),每天都學(xué)習(xí),則大概需要3年時(shí)間。如果一天5小時(shí),一年學(xué)習(xí)200天,則大概需要10年時(shí)間。10年!
根據(jù)這一說(shuō)法,我想起來(lái),我曾在有3年開發(fā)經(jīng)驗(yàn)時(shí),自認(rèn)為是一個(gè)專家級(jí)或高級(jí)開發(fā)人員。如今,在2010年我已有約10年經(jīng)驗(yàn),我已經(jīng)知道,自己已經(jīng)掌握多少東西,還有多少東西尚未知曉?,F(xiàn)在,我已覺得自己不再是一名專家了。
此外,在過(guò)去10年當(dāng)中,這一行業(yè)(Java企業(yè)級(jí)開發(fā))已經(jīng)發(fā)生了翻天覆地的變化,所以我過(guò)去掌握的技能,已不再“風(fēng)光”。所以,即便你是專家,你可能也會(huì)發(fā)現(xiàn)自己正在過(guò)時(shí),不得不重頭開始。
還有一件事:你不可能是全才(即:各個(gè)領(lǐng)域的專家)。這也就是說(shuō),你或許在某一技能上比張三優(yōu)秀,但張三在另一技能上或許比你優(yōu)秀。你不可能在任何方面都比別人優(yōu)秀或比不上別人。你總是能從他人身上學(xué)到東西。(更不能因?yàn)閯e人使用的技術(shù)和你不同而去攻擊他人,只要?jiǎng)e人不是一無(wú)是處,你就可以從他們那里學(xué)到很多東西。正所謂,“三人行必有我?guī)?rdquo;。這也是《成為一名優(yōu)秀程序員所需要知道的那些事》之一)。我曾經(jīng)遇到過(guò)一些開發(fā)人員,他們總以為自己在全方面都比他人優(yōu)秀似的,即便事實(shí)并非如此。
事實(shí)上,這通常就是區(qū)分新手的一種方法。不管是在線上還是線下,新手總是相信自己知道一切,并會(huì)至始至終地爭(zhēng)辯。他們的爭(zhēng)辯相當(dāng)絕對(duì),比如“這個(gè)總是比那個(gè)要好”,或“這就是解決事情的唯一方法”等。專家則幾乎不會(huì)那樣做。他們知道,一切事情取決于具體情況(也就是“具體情況,具體分析”),開發(fā)人員所掌握的技能,公司所選擇的工具,公司政策,個(gè)人喜好等等。沒(méi)有經(jīng)驗(yàn)的開發(fā)人員(和普通人)一般都認(rèn)為“世界是非白即黑”。而專家知道,世界還充滿了灰色區(qū)域,甚至還有其他大量顏色和色調(diào)。
如何成為一名專家
對(duì)于大多數(shù)你需要學(xué)習(xí)的技能,這里有四個(gè)步驟,以助你成為一名專家。在大多數(shù)情況下,你可以按照順序完成如下步驟,也可以從上至下重復(fù)如下步驟:
- 1. 學(xué)習(xí)技能;
- 2. 實(shí)踐技能;
- 3. 討論技能;
- 4. 傳授技能。
在你掌握一門技能之前,你必須先學(xué)習(xí)相關(guān)理論。你可以通過(guò)書籍和教程,或課程教育,或綜合前面這些方法來(lái)學(xué)習(xí)理論。
實(shí)踐技能
一旦你掌握了技能相關(guān)理論,你需要在現(xiàn)實(shí)中運(yùn)用該技能。通過(guò)實(shí)踐,你會(huì)知道你所學(xué)的理論,哪些地方正確,哪些地方有誤。當(dāng)然了,你在大學(xué)中所學(xué)到的理論,通常在現(xiàn)實(shí)中并不奏效,或者根本不適合你所處的環(huán)境。
討論技能
一旦你使用技能已有很長(zhǎng)一段時(shí)間,并且發(fā)現(xiàn)自己能解決很多需要該技能的問(wèn)題,那這時(shí)候你應(yīng)該和其他經(jīng)驗(yàn)人士討論它了。討論使用該技能的最佳方法,技能相關(guān)理論的局限是什么,還可以增加什么東西等等。簡(jiǎn)而言之,討論如何進(jìn)一步推動(dòng)該技能。(比如一個(gè)API,如何優(yōu)化/改進(jìn)它等。)
傳授技能
向他人傳授技能,無(wú)疑是完善自身技能的一種好辦法。可能有很多事情只顧著做了,但并未考慮為什么要那樣做。因?yàn)楸仨殻ㄏ蛩耍┙忉屇愕姆椒?,這會(huì)迫使你自己重新思索“為什么要做”和“做了什么”。
此外,你的技能上或許有些邊邊角角事從來(lái)都不需要掌握的。(比如,Web服務(wù)規(guī)范的邊邊角角)。因?yàn)橐獋魇谧约旱募寄?,這迫使你也要掌握這些空白了,這會(huì)讓你更上一層樓。
如何成為一名專家級(jí)的開發(fā)人員
既然我已經(jīng)談?wù)摿巳绾纬蔀橐幻毡橐饬x上的專家,我將進(jìn)一步談?wù)撊绾纬蔀橐幻麑<壹?jí)的開發(fā)人員。
作為一名開發(fā)人員,你將很可能在特定行業(yè)(至少有一段時(shí)間)做軟件開發(fā),使用特定的平臺(tái)。如果不是,如果你一直在選擇工具或行業(yè),就像一些Web開發(fā)人員一樣,那么你很可能將永遠(yuǎn)不會(huì)成為一名真正的專家。你會(huì)成為萬(wàn)金油或三腳貓(在某些方面還是挺有用)。如果你沒(méi)有專注某一平臺(tái)或行業(yè),而你又想成為一名專家,那你要學(xué)會(huì)專注了。
1998年,那是一個(gè)春天,我開始做Web應(yīng)用,開始了我的職業(yè)生涯。我發(fā)現(xiàn)自己一直在更換著工具,也就是說(shuō)我并沒(méi)有真正擅長(zhǎng)于某種工具。我只是一直在為新工具而戰(zhàn)。后來(lái),我決定專注一門面向?qū)ο笳Z(yǔ)言和一個(gè)平臺(tái),并選擇了Java。那時(shí)候還沒(méi)有.NET。所以從1999年開始,我一直只用Java。
在成長(zhǎng)為專家的路上,你必須要選擇一個(gè)平臺(tái),可能還有一個(gè)行業(yè)。行業(yè)并不特別重要,但擁有業(yè)務(wù)領(lǐng)域知識(shí),這將真正增強(qiáng)你的實(shí)力。
在你學(xué)習(xí)一個(gè)平臺(tái)時(shí),你可以選擇一門語(yǔ)言來(lái)入手。比如,Java語(yǔ)言。在你學(xué)習(xí)語(yǔ)言之后,則需要學(xué)習(xí)一個(gè)平臺(tái)(包括所有的API和工具)。在Java中,有兩大平臺(tái):標(biāo)準(zhǔn)版(J2SE)和企業(yè)版(J2EE)。(編者注:還有微型版(J2ME))
一旦你開始掌握選擇的平臺(tái),你應(yīng)當(dāng)開始學(xué)習(xí)獨(dú)立于平臺(tái)的技能,比如模式設(shè)計(jì)、分布式系統(tǒng)設(shè)計(jì)、系統(tǒng)機(jī)構(gòu)和可用性等等。在你取得進(jìn)步時(shí),你將要花更多的時(shí)間來(lái)學(xué)習(xí)這些技能。這是好事。因?yàn)檫@些技能不受平臺(tái)限制,更容易轉(zhuǎn)移新的技術(shù)平臺(tái)。
最后,你或許會(huì)脫離軟件開發(fā),轉(zhuǎn)入到諸如項(xiàng)目管理或架構(gòu)師的完全不同的業(yè)務(wù)領(lǐng)域。請(qǐng)謹(jǐn)記,一旦你停止使用你的開發(fā)技能,你的專家之路將更加長(zhǎng)遠(yuǎn)了。
下面有一張關(guān)于你的“專家之路”的圖表。你從最低端開始,逐層上升。藍(lán)色層表示獨(dú)立于平臺(tái)的技能。其他顏色層表示特定的平臺(tái)。即便下圖中并沒(méi)有你的平臺(tái),你也可以自行添加。
(圖:“專家之路”:語(yǔ)言-> 平臺(tái)-> 獨(dú)立于平臺(tái)的技能)
你必須根據(jù)你所處的行業(yè)、所在的公司和所使用的平臺(tái)來(lái)填入具體的工具和技術(shù)等。這些事情,我無(wú)法一勞永逸地為各位一次性做好。
怎么知道自己該學(xué)習(xí)什么,查看招聘廣告不失為一個(gè)好辦法。看看最常用的工具和技術(shù)?閱讀一些在線軟件雜志,看看行業(yè)人士討論最多的技術(shù)是什么?泡相關(guān)論壇和博客,看看他們最常問(wèn)的問(wèn)題是什么?還有,人們談?wù)撟疃嗟募夹g(shù)是什么?總之一句話,什么技術(shù)是明天的熱點(diǎn)?
本文出處:伯樂(lè)在線- 職場(chǎng)博客
本文鏈接:http://www.jobbole.com/entry.php/337
Via:Jenkov 編譯:伯樂(lè)在線 敏捷翻譯組 @關(guān)關(guān)
如需轉(zhuǎn)載,但請(qǐng)注明文章來(lái)源和超鏈接等版權(quán)信息,否則視為侵權(quán),謝謝合作!
it知識(shí)庫(kù):如何成為一名專家級(jí)的開發(fā)人員,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。