如何成為一個專家級的開發(fā)者
原創(chuàng)【51CTO譯文】如何成為一個專家級的開發(fā)者?怎樣才能尋找到成為開發(fā)高手的密鑰?這樣的問題我們不止一次的提到過,當(dāng)然,適合大家的專家之路并非只有一條。它取決于你為其開發(fā)軟件的行業(yè)是什么,和你的公司使用的工具是什么等等。
這篇文章會提供一條一般性的,可以適合你自己情況的專家之路,其中包括文章作者的一些觀點(diǎn)——關(guān)于如何成為一個專家級的開發(fā)者。
51CTO推薦閱讀:充滿荊棘的專家程序員之道
當(dāng)你瀏覽這篇文章的時候請記?。撼蔀橐粋€真正的專家和被當(dāng)成是一個專家之間是有區(qū)別的。許多人都被晉升為專家,但是他們真的不是。但是,如果有人相信他們是,他們就會一直賺很多錢,雖然他們很平庸。另外,有許多專家,沒有人知道他們是專家。如果你真的是一個專家,你的下一步行動就是要被大家當(dāng)成是一個專家。如何做到這一點(diǎn)已經(jīng)超過了這篇文章的討論范圍。這是一個的不同主題——關(guān)于個人品牌等。
什么是“專家”,要花多長時間才能成為一個專家?
在開始討論如何成為一個專家之前,我們先來花30秒的時間來說明專家是什么,和要花多長時間才能成為一個專家。
在你使用一項(xiàng)技能3個月以后,你不是一個專家,使用3年以后也不是一個專家。根據(jù)Malcom Gladwell的圖書《局外人》所說,要成為一個真正的專家需要平均花費(fèi)10000個小時。如果你喜歡自命不凡。10000個小時!如果一天花費(fèi)10個小時,然后每天都努力,需要3年?;蛘?,更加自命不凡一些,一天花費(fèi)5個小時,一年只有200天在努力,需要10年。整整10年!
根據(jù)這個斷言,我發(fā)現(xiàn)在我有3年經(jīng)驗(yàn)的時候我曾認(rèn)為我自己是一個專家或一個資深開發(fā)者?,F(xiàn)在,在2010年的時候我已經(jīng)有10年的經(jīng)驗(yàn)了,我已經(jīng)學(xué)習(xí)了很多需要了解的知識,但是我一直不知道還有多少知識需要學(xué)習(xí),現(xiàn)在我不再感覺自己是一個專家了。
另外,在最近這10年里,行業(yè)(Java企業(yè)級開發(fā))已經(jīng)發(fā)生了很大的改變,所以我過去掌握的技能,都不那么“酷”了。即使你是一個專家,你也會發(fā)現(xiàn)你自己變得過時了,必須要重新開始學(xué)習(xí)。
還有一件事:你不可能是各個領(lǐng)域的專家,這意味著在某種技能上你也許比某人更優(yōu)秀,但是在另外一種技能上比某人可能就比你更優(yōu)秀了。你在每一種技能上都比別人優(yōu)秀或比別人更差,這是不可能的。你總是能從其他人身上學(xué)到一些東西的。我過去曾經(jīng)遇到過幾個開發(fā)者,他們總是表現(xiàn)的好像他們在所有方面都很優(yōu)秀似的,即使在事實(shí)并非如此的情況下,他們也還是這樣做。
實(shí)際上,這通常是鑒別新手的一種方法:相信他們自己知道所有的事情,在線或離線的情況下一直不停的爭論。他們的爭論帶有絕對傾向,比如“這個總是比那個更好”,或“這是做這件事的唯一方法”等等。專家從來不這樣。他們知道,一切都取決于具體情況,你的開發(fā)者掌握的技能,你的公司選擇的工具,公司策略,個人喜好等等。缺乏經(jīng)驗(yàn)的開發(fā)者(和一般人)都傾向于相信世界是非黑即白的。而專家知道,世界充滿了灰色地帶,甚至還有許多額外的顏色和色調(diào)。
如何成為一個專家
對于你需要學(xué)習(xí)的大多數(shù)技能,有四個步驟可以幫助你成為一個專家。大多數(shù)情況下你可以按順序進(jìn)行這些步驟,也可以按從上到下的方式迭代這些步驟。這些步驟是:
1,學(xué)習(xí)它
2,實(shí)踐它
3,討論它
4,傳授它
學(xué)習(xí)它
在你掌握一項(xiàng)技能以前,你必須首先學(xué)習(xí)它的理論。你可以通過圖書,手冊,培訓(xùn)來學(xué)習(xí)理論知識,或綜合運(yùn)用這些途徑來學(xué)習(xí)理論知識,在51CTO之前報(bào)道過的《為什么5%的技術(shù)人員開發(fā)效率是其他95%的20倍?》的文章中,也曾提到過這一點(diǎn)。
實(shí)踐它
一旦你已經(jīng)學(xué)會了這項(xiàng)技能的理論知識,你需要實(shí)踐這項(xiàng)技能,通過實(shí)踐你的技能,你可以認(rèn)識到你學(xué)到理論知識哪些是正確的,哪些是錯誤的。是的,往往大學(xué)教給你的理論在現(xiàn)實(shí)中并不起作用,或者并不能在你現(xiàn)在的情況下使用。
討論它
一旦你已經(jīng)使用這項(xiàng)技能很長時間了,并且你發(fā)現(xiàn)你能夠解決很多需要這項(xiàng)技能的問題,那么該是和其他有經(jīng)驗(yàn)的人討論這項(xiàng)技能的時候了??梢杂懻撘幌聭?yīng)用這項(xiàng)技能的最佳方式是什么,理論的限制在哪里,可以補(bǔ)充些什么等等。簡而言之,就是討論如何進(jìn)一步推動這項(xiàng)技能(比如一個API,如何使它更好/與眾不同等)。
傳授它
把你的技能教給其他人,真的是一個彌補(bǔ)你的技術(shù)上的不足的好方法??赡茉S多事情只是做做而已,但是并沒有思考為什么要這樣做。如果必須要解釋你的方式和方法,可以強(qiáng)迫你思考這樣做的原因。
另外,可能有一些你技術(shù)上的空白點(diǎn),你從來都不需要掌握它們(比如說,Web服務(wù)的規(guī)范)。如果必須要傳授你的技能,將可以強(qiáng)迫你掌握這些空白點(diǎn),讓你有更大的進(jìn)步。
#p#
如何成為一個專家級的開發(fā)者
現(xiàn)在,我已經(jīng)談了如何成為一個普遍意義上的專家,下面我來談一談如何成為一個專家級的開發(fā)者。作為一個開發(fā)者,你很可能正在使用一個特定的平臺,為一個特定的行業(yè)開發(fā)軟件。如果不是這樣,如果你經(jīng)常要選擇工具和行業(yè),就像一些Web開發(fā)者那樣,那么你很可能從來都沒有成為一個真正的專家。你只會成為一個雜而不精的人。你需要集中你的精力。(相關(guān)文章推薦:程序員的十大技術(shù)煩惱)
我從1998年開始了我作為Web應(yīng)用程序開發(fā)者的職業(yè)生涯,然后我發(fā)現(xiàn)我自己經(jīng)常要更換工具,這意味著我無法真正的熟練使用其中任何一個工具。我只是一直在努力學(xué)習(xí)新的工具的使用方法。然后我決定把注意力集中一門面向?qū)ο蟮恼Z言和一個平臺上,于是我選擇了Java。那時.NET還沒有出現(xiàn)。自從1999年,我一直只使用Java。
在你的專家之路上,你必須選擇一個平臺,可能還要選擇一個行業(yè)。行業(yè)并不是特別重要,但是業(yè)務(wù)領(lǐng)域的知識可以增強(qiáng)你的簡歷。
當(dāng)你學(xué)習(xí)一個平臺的時候,你可以從一門語言來入手。例如:Java語言。在你學(xué)習(xí)了那門語言以后,你需要學(xué)習(xí)這個平臺(包括所有的API和工具)。在Java中,平臺被劃分成了兩個:標(biāo)準(zhǔn)版和企業(yè)版。
一旦你開始掌握你的平臺,你應(yīng)該開始學(xué)習(xí)一些獨(dú)立于平臺的技能,像設(shè)計(jì)模式,分布式系統(tǒng)設(shè)計(jì),架構(gòu),可用性等等。當(dāng)你取得進(jìn)步的時候,你會花更多的時間來學(xué)習(xí)這些技能。這是一件好事情。這些技能可以更容易的遷移到一個新的技術(shù)平臺上。
最后,你可能會完全脫離軟件開發(fā)工作,進(jìn)入到像項(xiàng)目管理,架構(gòu)師那樣的完全不同的業(yè)務(wù)領(lǐng)域。請記住,一旦你停止使用你的開發(fā)技能,那么你也就在專家之路上駐足不前了。
這是一張圖表,表示你的“專家級開發(fā)者之路”。你從底下開始,一直向上面一層前進(jìn)。藍(lán)色的層是獨(dú)立于平臺的層。其他顏色的層是特定于平臺的層。即使你的平臺不在這里面,你也可以自己把它添加上。
從語言上升到平臺,再到平臺獨(dú)立的技能,用這種方式來成為一個專家級的開發(fā)者
你不得不針對你的行業(yè),你的公司和你的平臺添加具體的工具。我無法一次性的為每一個人做這件事情。
找出你應(yīng)該學(xué)習(xí)什么的一個好方法是看招聘廣告??纯此麄兺ǔP枰裁垂ぞ吆图夹g(shù)?讀一下在線的軟件雜志??纯此麄冋?wù)摰淖疃嗟氖鞘裁醇夹g(shù)?瀏覽一下論壇,看看人們問的最多的問題是什么?還有,人們討論的最多的是什么技術(shù)?換句話說,什么會成為將來的熱點(diǎn)?
關(guān)于作者
作者Jakob Jenkov是一名資深的獨(dú)立軟件開發(fā)者,同時也是部分學(xué)科的科學(xué)家、哲學(xué)家以及企業(yè)家。
原文作者:Jakob Jenkov 周雪峰 譯
原文地址:http://tutorials.jenkov.com/software-as-career/how-to-become-an-expert-developer.html
【本文是51CTO精選譯文,轉(zhuǎn)載請務(wù)必標(biāo)明作者和出處!】
【編輯推薦】