許多編程的職位都會(huì)到達(dá)最高峰,并開(kāi)始衰落——這是很多程序員不想面對(duì)的,但卻是一個(gè)不爭(zhēng)的事實(shí)。這之后再找一份程序員的工作會(huì)變得越來(lái)越難,很多人發(fā)現(xiàn)這個(gè)事實(shí)時(shí)束手無(wú)策。本文會(huì)提供一些重要的職業(yè)信息,值得思考一下,以便有所準(zhǔn)備。

TechCrunch 發(fā)布了一篇文章「硅谷黑幕:技術(shù)人員年齡歧視(譯文鏈接)」,文中引用的研究發(fā)現(xiàn):對(duì)一個(gè)程序員來(lái)說(shuō),能從事高效的開(kāi)發(fā)的年齡段是有限的。這個(gè)問(wèn)題確實(shí)存在,而且非常嚴(yán)峻。
程序員的未來(lái)是什么樣的?
程序員的職業(yè)之路是什么樣的?
對(duì)于這些路應(yīng)有什么樣的選擇和期望?
人人都知道程序員可以向經(jīng)理或團(tuán)隊(duì)領(lǐng)導(dǎo)發(fā)展。但很多程序員不明白經(jīng)理這個(gè)職位的期望和工作要求。當(dāng)然,我們都有經(jīng)理,但怎樣才能成為經(jīng)理呢?要具備什么素質(zhì)?中層管理者和一個(gè)高級(jí)程序員之間有什么區(qū)別?
在這篇文章中,我會(huì)拉開(kāi)帷幕,介紹從一個(gè)從初級(jí)程序員到頂級(jí)CTO的潛在職業(yè)之路。
注意:很多偉大的職業(yè)生涯停留在了不同的職位上,直到退休。一些職業(yè)生涯卻連連升級(jí)。但是管理和領(lǐng)導(dǎo)角色并不適合每一個(gè)人,幾年以后你可能會(huì)發(fā)現(xiàn)你在管理上的興趣改變了。二十幾歲的時(shí)候你可能不喜歡做經(jīng)理,但是四十歲時(shí)你可能不再喜歡寫代碼了。未來(lái)什么樣,誰(shuí)都很難說(shuō)。然而,多了解一下你的選擇和情況總是好的。
下面一張圖表示的是程序員的各個(gè)職位的平均工資。注意在垂直水平上,一些人可能拿著兩倍或者三倍于別人的工資(像是銀行,貿(mào)易等行業(yè))。所以這些數(shù)字僅代表了一個(gè)平均水平,并不全面。

初級(jí)程序員
0-3年工作經(jīng)驗(yàn)(一般是剛從大學(xué)畢業(yè))
會(huì)寫簡(jiǎn)單的腳本
初步了解整個(gè)應(yīng)用程序的生命周期
初步了解數(shù)據(jù)庫(kù)和應(yīng)用程序的服務(wù)(隊(duì)列,緩存等)
不需了解復(fù)雜的應(yīng)用中的每一個(gè)部分
當(dāng)你剛剛踏入程序員的行列中來(lái)的時(shí)候,可能會(huì)感到畏縮和煩惱。會(huì)時(shí)常感覺(jué)到自己資歷尚淺,驚訝為什么會(huì)有人寫出這么大而復(fù)雜的程序。不久之后,你就會(huì)想為什么自己還沒(méi)有升級(jí)到高級(jí)程序員??纯雌渌母呒?jí)程序員,你覺(jué)得自己做著跟他們相同的工作。
但是區(qū)別就在于初級(jí)程序員缺乏經(jīng)驗(yàn)。即使是學(xué)習(xí)最快、最聰明的初級(jí)程序員,也沒(méi)有接觸到足夠多的代碼和邊界情況,以勝任高級(jí)程序員的工作。在軟件開(kāi)發(fā)方面,軟件設(shè)計(jì)模式也是一種智慧。雖然在這方面可以閱讀相關(guān)的書籍,但還是需要寫足夠多的代碼,將錯(cuò)誤盡可能地暴漏出來(lái),真正理解軟件設(shè)計(jì)模式的價(jià)值。
高級(jí)程序員
至少四年工作經(jīng)驗(yàn)
能寫較復(fù)雜的程序
深入理解整個(gè)應(yīng)用程序的生命周期
掌握數(shù)據(jù)庫(kù)和應(yīng)用服務(wù)(隊(duì)列,緩存等)
要了解應(yīng)用程序的每一個(gè)方面
稱職的高級(jí)程序員非常擅長(zhǎng)構(gòu)建大型程序。擔(dān)任高級(jí)程序員占了程序員生涯的大部分。事實(shí)上,如果你不喜歡管理的工作而僅僅喜歡寫代碼,可以一直做一個(gè)高級(jí)程序員,我就雇傭了一些終生做程序員的人,但是,當(dāng)老了以后,這項(xiàng)工作也會(huì)變得困難。
這個(gè)職位也可以作為一個(gè)過(guò)渡。一旦你掌握了足夠的技術(shù),那么很可能就有能力擔(dān)任一家技術(shù)創(chuàng)業(yè)公司的創(chuàng)始人或者CTO了。作為一個(gè)創(chuàng)始人或者CTO,寫代碼的就會(huì)就少了,更多的是需要處理事務(wù)的技巧。但是深入理解技術(shù)非常有必要,是做好這份工作必不可少的部分。
團(tuán)隊(duì)領(lǐng)導(dǎo)或架構(gòu)師
七年以上開(kāi)發(fā)經(jīng)驗(yàn)
掌握高級(jí)程序員必備的技術(shù)
團(tuán)隊(duì)領(lǐng)導(dǎo):向架構(gòu)師過(guò)渡
架構(gòu)師:沒(méi)有更高的技術(shù)方面的職位
做了七年程序員之后,如果你覺(jué)得不喜歡管理方面的工作,那么可以考慮一下做架構(gòu)師,這是技術(shù)方面最頂峰的職位。