
如果將程序員分為本文的8種類型,你會(huì)是哪一種呢?
在求職的時(shí)候,相信很多人都被問過(guò)這樣的問題,“你對(duì)自己未來(lái)5年的職業(yè)規(guī)劃是怎么樣的?” 每當(dāng)我被問起這個(gè)問題的時(shí)候,我的腦海里總是浮現(xiàn)出TwistedSister樂隊(duì)1984年拍攝的一段視頻里的這個(gè)場(chǎng)景:一位老師對(duì)著他的學(xué)生大喊,“我想要你告訴我,不,是告訴全班同學(xué),你究竟想要過(guò)怎樣的生活?”

注:TwistedSister是一支源自美國(guó)紐約的搖滾樂隊(duì),成立于1970年代早期。后來(lái)經(jīng)過(guò)將近10年的奮斗,他們?cè)?0年代初取得了較大的突破。然而由于他們的叛逆形象和古怪行為,在他們最風(fēng)光的時(shí)候,他們被美國(guó)政府看作是重金屬毒害青少年的一個(gè)典型例子,于1988年被迫解散。
你自然會(huì)想:我要變得很牛!或者至少成為一個(gè)很牛的程序員。盡管這個(gè)問題看起來(lái)并不像其他一些同樣老掉牙的問題那么嚴(yán)肅(比如,“你覺得你最大的弱點(diǎn)是什么?”),但很可能你還是覺得難以回答。也許有時(shí)候你表現(xiàn)得太牛了,不屑于回答這樣的問題。但要小心了,你可能會(huì)惹惱別人。
在我看來(lái),這個(gè)問題同樣是一個(gè)相當(dāng)嚴(yán)肅的問題,值得好好思考一番。不是為了應(yīng)付面試官,而是為了你自己。
對(duì)于這個(gè)問題,大部分人都會(huì)選擇一個(gè)不痛不癢的答案來(lái)敷衍面試官。但它也確實(shí)引出了一個(gè)更為深層次的問題:一個(gè)軟件開發(fā)人員究竟該有怎樣的職業(yè)生涯?當(dāng)然,我們選擇這一行是因?yàn)槲覀兿矚g這行,并且幸運(yùn)地得到了老天的眷顧,我們干上了這一行。但你能在50歲的時(shí)候依然坐在電腦前敲代碼嗎?60歲呢?所以,我們得趁還年輕的時(shí)候好好思考一下這個(gè)問題:作為一個(gè)程序員,最完美的職業(yè)生涯應(yīng)該是什么樣的呢?
那我就來(lái)告訴你吧,基本上,這個(gè)世界上的程序員可以有8種境界:
1. 不朽的程序員
這是最高境界!雖然人已經(jīng)走了,但是他的代碼卻依然活著。他成為計(jì)算機(jī)博物館中的一個(gè)永久收藏。其他為數(shù)眾多的程序員都在學(xué)習(xí)他的作品。他在生前可能得到過(guò)圖靈獎(jiǎng),或者發(fā)表了大量有影響力的論文,或者是發(fā)明了一些影響到計(jì)算機(jī)專業(yè)課程設(shè)置的基礎(chǔ)技術(shù)。他已經(jīng)不僅僅只是擁有一個(gè)維基百科的條目,事實(shí)上,有很多專門的網(wǎng)站來(lái)講述他的作品以及他生平的事跡。
在人的有生之年能夠達(dá)到這一境界的程序員屈指可數(shù)。
代表人物:Dijkstra、Knuth、Kay。
注:Dijkstra是一名荷蘭的計(jì)算機(jī)科學(xué)家,他因發(fā)明了計(jì)算機(jī)編程語(yǔ)言而于1972年獲得了圖靈獎(jiǎng)。Knuth是《計(jì)算機(jī)程序設(shè)計(jì)藝術(shù)》一書的作者,他被稱為算法分析之父。Kay是一名美國(guó)的計(jì)算機(jī)科學(xué)家,是面向?qū)ο缶幊?、視窗圖形用戶界面設(shè)計(jì)的先驅(qū)者,他有一句名言是:“預(yù)測(cè)未來(lái)的最好辦法是創(chuàng)造未來(lái)?!?/p>
2. 成功的程序員
成功的程序員不僅擁有廣泛的知名度,同時(shí)還運(yùn)營(yíng)著一個(gè)不錯(cuò)的公司,甚至控制了整個(gè)產(chǎn)業(yè)鏈。他們擁有絕對(duì)的自由,可以做著自己想做的事情。他們同時(shí)還有著把“自由”帶給廣大程序員同胞的夢(mèng)想。
這一境界的程序員最受人羨慕。要到達(dá)這一境界,更多的是需要商業(yè)上的才能,而不是你的編程能力。
代表人物:比爾·蓋茨、Carmack、DHH。
注:比爾·蓋茨是微軟公司的創(chuàng)始人,他是個(gè)電腦神童,13歲開始編程,20歲開始領(lǐng)導(dǎo)微軟;他同時(shí)也是個(gè)商業(yè)奇才,他利用自己的遠(yuǎn)見卓識(shí)和精明的商業(yè)頭腦讓微軟名噪天下,把軟件做成了人們生活中不可或缺的東西,成就了今日的微軟帝國(guó)。Carmack是Id軟件公司的創(chuàng)始人,該公司主要從事電腦游戲以及游戲引擎的開發(fā),作品有《半條命》、《反恐精英》、《毀滅戰(zhàn)士》等。DHH是一名丹麥的程序員,他建立了“Ruby on Rails”Web應(yīng)用架構(gòu),并與人合寫了《Web開發(fā)敏捷之道:應(yīng)用Rails進(jìn)行敏捷Web開發(fā)》一書。
3. 知名程序員
進(jìn)入這一境界的程序員也不錯(cuò),當(dāng)然前提是,你得有一份不錯(cuò)的工作。
這個(gè)境界的程序員雖然在圈子里很有名,但是成為名人并不意味著你可以靠這個(gè)賺取收入并且養(yǎng)活自己。出名固然不錯(cuò),但成功更為關(guān)鍵。你可能在一家非常知名的大型技術(shù)公司工作,也可能在一家很有影響力的小公司,或者是在一個(gè)很有希望的創(chuàng)業(yè)團(tuán)隊(duì)。不管怎么樣,其他的程序員都或多或少地聽說(shuō)過(guò)你,并且你對(duì)你所在的領(lǐng)域有著積極的影響。
4. 勝任的程序員
你作為一名軟件工程師非常成功,因?yàn)槟愕哪芰κ鼓阍诠ぷ髦杏稳杏杏?。你從?lái)不會(huì)為找一份滿意的工作而發(fā)愁。你的同事也非常尊敬你。每一家你工作過(guò)的公司都因?yàn)槟愕募用硕谀承┓矫娴玫搅颂嵘?/p>
但問題是:你接下來(lái)的方向在哪里?
5. 普通程序員
這個(gè)境界的程序員能夠基本應(yīng)付一般的編程工作。他們自己也很清楚,由于天資所限,他們很難成為杰出的程序員。
其實(shí),天賦跟成功的關(guān)系并不大。如果你有敏銳的商業(yè)嗅覺和不錯(cuò)的人際交往能力,你依然可以變得很成功。如果你是一個(gè)普通的程序員,但你還能靠這一行當(dāng)過(guò)上不錯(cuò)的生活,那已經(jīng)說(shuō)明你是很有才的,只是你不必非得干程序員這一行。
人貴自知之名。通常你的能力都會(huì)比你自認(rèn)為的要低。缺乏天賦并不是什么大不了的事情。要勇敢一點(diǎn),發(fā)掘自己的特長(zhǎng),并且充分地加以發(fā)揮。
6. 業(yè)余程序員
業(yè)余程序員通常都熱衷于編碼。他們可能是一些很有前途的學(xué)生或?qū)嵙?xí)生,也可能正在參與某些開源項(xiàng)目,或者利用個(gè)人閑暇時(shí)間開發(fā)一些“好玩的”應(yīng)用程序或網(wǎng)站。從他們的代碼和創(chuàng)意可以看得出,他們是一群很有想法、充滿激情的人。
成為一名業(yè)余程序員是件好事。這個(gè)境界的程序員可以通過(guò)自我提升,很快速地勝任程序員這個(gè)職業(yè)。
7. 低調(diào)的程序員
還有一些坊間流傳的比較有個(gè)性的程序員,比如JoeCoder,很有能力但是沒啥令世人矚目的成就。他們可能服務(wù)于某家大型公司。對(duì)于這些人來(lái)說(shuō),寫代碼僅僅是份工作而已,并非他們生活的全部。這沒什么錯(cuò),挺好的!
8. 爛程序員
這個(gè)級(jí)別的程序員技能極其匱乏(已無(wú)境界可言),他們通常是因?yàn)槟承╆幉铌?yáng)錯(cuò)的原因才干上這一行的。他們所做的任何事情都會(huì)給他們的同事帶來(lái)痛苦和災(zāi)難——當(dāng)然可能也有一個(gè)例外,就是他們的同事也是一幫差勁的程序員,差到連身邊全是一幫爛程序員都意識(shí)不到。
如果要給爛程序員下一個(gè)定義的話,那就是:沒有金剛鉆,卻偏偏攬了瓷器活。
應(yīng)該承認(rèn),以上所有的這些境界定義得并不嚴(yán)謹(jǐn)。其實(shí),不是所有的程序員在他們的職業(yè)生涯中都渴望相同的東西。思考一個(gè)程序員在他10年、20年、乃至30年、甚至一生的時(shí)間內(nèi)所能達(dá)到的成就,是非常有意義的!想一想,你最崇拜哪個(gè)程序員?到底是他的什么成就,使得你對(duì)他有如此的崇拜?
話說(shuō)回來(lái):你究竟想要過(guò)怎樣的生活?
