程序員職業(yè)之路的選擇

0 評(píng)論 3315 瀏覽 3 收藏 11 分鐘

許多編程的職位都會(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è)平均水平,并不全面。

2

初級(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ù)方面最頂峰的職位。架構(gòu)師有時(shí)候也寫代碼,但大多數(shù)時(shí)間他們?cè)谠O(shè)計(jì)復(fù)雜的系統(tǒng),然后交給由初級(jí)和高級(jí)程序員們組成團(tuán)隊(duì)來(lái)實(shí)現(xiàn)。架構(gòu)師的工作就是,利用他技術(shù)方面的智慧以及多年的經(jīng)驗(yàn)(學(xué)習(xí)程序的模式和反模式),來(lái)為軟件項(xiàng)目創(chuàng)建合適的架構(gòu)。有新的需求的時(shí)候,軟件架構(gòu)師需要對(duì)項(xiàng)目選擇正確的方向,并估算應(yīng)用程序的規(guī)模。

首席開(kāi)發(fā)人員的工作是給其他初級(jí)的和高級(jí)的程序員指導(dǎo)和方向。雖然首席開(kāi)發(fā)者通常不會(huì)做雇傭、解雇程序員的事情,但是他們的許多工作和經(jīng)理無(wú)異。他們需做開(kāi)發(fā)方面的協(xié)調(diào),并在寫代碼的時(shí)候做出實(shí)現(xiàn)方面的決定。

中層領(lǐng)導(dǎo)

通常包含經(jīng)理和負(fù)責(zé)人等職位(開(kāi)發(fā)經(jīng)理,項(xiàng)目經(jīng)理,產(chǎn)品經(jīng)理)

做發(fā)人員的老板(例如人事工作)

向高級(jí)主管匯報(bào)工作

管理人員通常向工程師發(fā)展。他們的方向很多:如果你喜歡接觸開(kāi)發(fā)團(tuán)隊(duì),并對(duì)細(xì)節(jié)感興趣,那么可以選擇產(chǎn)品經(jīng)理,做你的伙伴們的盟友;如果你對(duì)產(chǎn)品特性和增強(qiáng)其性能著迷,那么做一個(gè)產(chǎn)品經(jīng)理是最好的選擇。

然而大多數(shù)人的選擇是開(kāi)發(fā)經(jīng)理。這是個(gè)經(jīng)理中經(jīng)典的職位,要求平衡項(xiàng)目經(jīng)理和產(chǎn)品經(jīng)理的需求和開(kāi)發(fā)團(tuán)隊(duì)的性格之間的矛盾。這個(gè)職位對(duì)人事處理和化解矛盾的技能要求較高,要經(jīng)常做出退讓。開(kāi)發(fā)經(jīng)理的工作不僅僅是雇傭新人,在必要時(shí)也要解聘一些人。這就意味著很難和他們成為朋友。因?yàn)橐坏┖退麄兂闪伺笥眩吞幵诹艘粋€(gè)尷尬的位置。如果你認(rèn)識(shí)的一個(gè)人從開(kāi)發(fā)人員的職位升到了開(kāi)發(fā)經(jīng)理,你會(huì)發(fā)現(xiàn)這個(gè)人幾乎在一夜之間變了。這就是為什么,這通常是一份費(fèi)力不討好的工作。

但如果領(lǐng)導(dǎo)一個(gè)團(tuán)隊(duì)勝利了,也是非常有收獲的。如果你想提高領(lǐng)導(dǎo)才能,準(zhǔn)備做一個(gè)管理角色,可以讀讀 Phil Jackson 的書?《Eleven Rings: The Soul of Success》?

高層領(lǐng)導(dǎo)

VP,CTO 或CEO

是中層領(lǐng)導(dǎo)的老板(例如 負(fù)責(zé)人事)

向另一個(gè)高層領(lǐng)導(dǎo)或者董事會(huì)報(bào)告

和中層領(lǐng)導(dǎo)顯而易見(jiàn)的不同是,高層領(lǐng)導(dǎo)負(fù)責(zé)管理中層領(lǐng)導(dǎo)。然而經(jīng)理通常是不需要管理的,他們需要的是指導(dǎo)。中層領(lǐng)導(dǎo)需要知道高層領(lǐng)導(dǎo)的方向并跟進(jìn),不會(huì)得到非常具體的指示。

高層領(lǐng)導(dǎo)的工作是,做重要的決定,并激勵(lì)工作人員緊跟決策,增加對(duì)工作目標(biāo)的信心。

你在這條路上走得越遠(yuǎn),寫代碼的機(jī)會(huì)就越少。到達(dá)頂峰的時(shí)候,做的都是人事方面的工作了。中層領(lǐng)導(dǎo)依然能在核心技術(shù)方方面體驗(yàn)到樂(lè)趣,但是對(duì)于高層領(lǐng)導(dǎo),就必須把所有的時(shí)間花在人事上:激勵(lì)員工,領(lǐng)導(dǎo),指定策略。如果你寫代碼,也只能是不重要的項(xiàng)目(除非你是比爾蓋茨,但大多數(shù)人不是比爾,他是個(gè)極端的特例)。Phil Jackson 的書要求,在這個(gè)職位上必須經(jīng)常閱讀,不能安于現(xiàn)狀。

高層領(lǐng)導(dǎo)的工作要求確保公司的每一個(gè)人都朝著相同的方向努力,確保方向的正確,確保每一個(gè)人知道他們朝這個(gè)方向努力的原因。這個(gè)工作難度非常大,而且充滿著危險(xiǎn),心酸和陷阱。如果你想要一個(gè)高層領(lǐng)導(dǎo),讀一讀Ben Horowitz的《The Hard Thing About Hard Things》.

高層領(lǐng)導(dǎo)從來(lái)都不是天生的,而是經(jīng)過(guò)不斷地努力達(dá)到的。Ben Horowitz的博客里有有關(guān)成為CEO的例子。

結(jié)論

今天,程序員的選擇是豐富多彩的。而且對(duì)于程序員的職業(yè)要求比歷史上任何時(shí)候都要高。對(duì)程序猿來(lái)說(shuō)這是一個(gè)好的時(shí)代。但是任何時(shí)候規(guī)劃你的職業(yè)都不算晚。希望本文能排得上用場(chǎng),給你一些指導(dǎo)和精神食糧。

本文譯者:賴信濤、英語(yǔ)原文?轉(zhuǎn)載自:PMTOO

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 目前還沒(méi)評(píng)論,等你發(fā)揮!