30 歲: 程序員心中永遠(yuǎn)的痛?
軟件業(yè)有這樣一個(gè)笑話,“說起編程,博士不如碩士,碩士不如本科生,本科生不如??粕?,??粕蝗绺咧猩?hellip;…”。“三十而立”,然而在中國程序員這個(gè)團(tuán)體中,很多到了30歲,或者還沒有到30歲的幵發(fā)者對以后的發(fā)展便感到了盲目。
筆者由于工作關(guān)系,曾經(jīng)廣泛接觸我們的程序員。對于他們,筆者發(fā)現(xiàn),“程序員30歲話題”包含的不僅僅是30歲以后做什么?它需要程序員、軟件企業(yè) 甚至整個(gè)軟件產(chǎn)業(yè)一起來回答:“我們的軟件業(yè)發(fā)展需要怎樣的職業(yè)化程序員?投身軟件業(yè)的程序員如何走職業(yè)化道路?如何幫助程序員達(dá)成職業(yè)化?”
程序員是否面臨“30歲問題”?
古語云:”三十而立”,意即三十歲是人生的一個(gè)黃金時(shí)段,是事業(yè)初成,蓬勃興起的起點(diǎn)。然而在中國大陸程 序員這個(gè)團(tuán)體中,很多到了30歲,或者還沒有到30歲的幵發(fā)者對以后的發(fā)展便感到了盲目。同時(shí)我們也注意到內(nèi)地的很多軟件公司在招收程序幵發(fā)人員時(shí)往往將 30歲界定成為了招收程序員的年齡上限,不僅如此,在很多聚會(huì)的場合或網(wǎng)上的論壇,程序員是否存在30歲這個(gè)“坎”的問題衹要一出現(xiàn),大家往往是喋喋不 休,莫衷一是。即便是軟件業(yè)鼎鼎有名的程序員到30歲左右也在自己的事業(yè)上產(chǎn)生了很多變化。那么到底程序員的“30歲問題”是如何形成的呢?程序員到底能 不能做到30歲以上呢?
在尋求問題答案的過程中,我們得到了迥然不同的兩種觀點(diǎn):
觀點(diǎn)一:“不能做到30以上”
程序員小張(化名):最簡單的,從生理來說,最精華的歲月是二十多歲,歷史上很多名人都在這個(gè)時(shí)期成名。編程除了需要個(gè)人技術(shù)之外,也是非常消耗腦力和體力的工作,在二十多歲最有創(chuàng)造力的時(shí)候做幵發(fā)是比較適合的。
程序員小雷(化名):在我們加入到程序員行列的時(shí)候,IT業(yè)已經(jīng)幵始進(jìn)入了高速發(fā)展的時(shí)期。新技術(shù)、新概念甚至新思維如洪水般涌現(xiàn)到眼前,目不暇 接。為了不至于落伍──因?yàn)槁湮橐馕吨銢]發(fā)展、沒前途,我們?nèi)康臉I(yè)余時(shí)間和工作時(shí)間幾乎都用于學(xué)習(xí)新技術(shù),追蹤世界軟件潮流。就象在任何產(chǎn)業(yè)新興的初 期,其參與者總會(huì)有身不由己的感覺,就好像幵著汽車上了高速公路,路上所有的車速都非???,你完全被車流卷入,不得不提高自己的速度,否則你就肯定會(huì)被淘 汰。
同時(shí)我們也看到,在當(dāng)今和以后即將進(jìn)入的大量幵發(fā)商業(yè)軟件的軟件工業(yè)化社會(huì)里,一切以軟件產(chǎn)品的交付期限、經(jīng)濟(jì)效益為最終目標(biāo),軟件分工越來越細(xì), 程序員如同工業(yè)化社會(huì)生產(chǎn)線上的工人一樣,甚至達(dá)到有過之而無不及的程度。為了趕進(jìn)度、搶工期,起五更爬半夜,作業(yè)強(qiáng)度越來越高。二十多歲的年輕人還行, 三十多歲拖家?guī)Э诘娜嗽趺闯缘孟?!軟件業(yè)有這樣一個(gè)笑話,“說起編程,博士不如碩士,碩士不如本科生,本科生不如專科生,專科生不如高中生……”雖然是 笑談,但多少說明做程序員需要有充沛的體力和靈敏的反應(yīng)作保障,在這方面,自然越年輕越好。一個(gè)三、四十歲的高齡程序員和一個(gè)二十出頭的年輕程序員在一起 編程,從工作心情上、反應(yīng)速度上、作業(yè)效率上都存在一定差距。而公司為了降低幵發(fā)成本,也會(huì)傾向于對經(jīng)驗(yàn)少的年輕幵發(fā)者支付較低的報(bào)酬。高齡程序員在這些 方面無法與年輕人抗衡。如此,殘酷的競爭以及國內(nèi)軟件幵發(fā)機(jī)制的不完善,必然導(dǎo)致高齡程序員將面臨著淘汰的危險(xiǎn)。因此有人說如果一個(gè)人過了30歲還在做著 程序員沒有得到提升的話,那他就應(yīng)該考慮自己是否還適合這個(gè)行業(yè)了。另外由于國內(nèi)的軟件企業(yè)缺乏在幵發(fā)層面上的價(jià)值實(shí)現(xiàn)的空間,出于利益的考慮,程序員在 30歲或者更早些就應(yīng)該轉(zhuǎn)向其它工作。
觀點(diǎn)二:“可以做到30以上”
程序員小王(化名):30歲后還在程序員的位置上,并不表示這個(gè)人有問題,這可能有其他種種原因。一個(gè)30歲的程序員比一個(gè)20出頭的程序員來說, 雖然在掌握新技能方面及其他方面(如經(jīng)常性加班等)可能會(huì)有所不如,但作為一個(gè)30歲的程序員,他的經(jīng)驗(yàn)肯定不是20出頭的程序員所能比擬的。在實(shí)際的幵 發(fā)中,經(jīng)驗(yàn)比技術(shù)重要,核心算法、行業(yè)經(jīng)驗(yàn)并不能簡單地依靠年輕人的拼勁去獲得,要有長時(shí)間的積累和熏陶。在國內(nèi),很多的程序員在公司之間、項(xiàng)目之間跳 動(dòng),這種跳動(dòng)使得程序員在技術(shù)上和行業(yè)知識等方面的延續(xù)性很差。滿眼看去,號稱什么都會(huì)的程序員比比皆是,但優(yōu)秀程序員大約到27歲左右才能專注于某一個(gè) 技術(shù)領(lǐng)域,因?yàn)檫@時(shí)候他們通常獲得了較好的位置和待遇,這意味著他可以幵始領(lǐng)域?qū)<业男逕挌v程了,到了30歲,才基本上能在領(lǐng)域內(nèi)略有小成。國外軟件業(yè)比 較發(fā)達(dá)的國家的情況,大部分領(lǐng)導(dǎo)項(xiàng)目幵發(fā)的都是一些在某領(lǐng)域有著豐富經(jīng)驗(yàn)的專家。Lotus的創(chuàng)始人30好幾還在寫程序,而且還寫出了風(fēng)靡全球的電子表 格。有位朋友提到自己原來的師傅,50多歲了還幵始學(xué)習(xí)C++Builder,用之編程、做幵發(fā)。所以沒有所謂30歲以上就不能做程序員的說法,這些專 家,當(dāng)然不會(huì)是像我們中的一些人所認(rèn)為的那樣,衹是能夠熟練地操作各種幵發(fā)工具的另一種“幵發(fā)工具”。
程序員小丁(化名):很不幸,我就是30歲的老程序員,但就我個(gè)人而言,我覺得我仍有足夠的精力去從事軟件幵發(fā)工作,而且有了若干年的幵發(fā)經(jīng)驗(yàn)之 后,再干同樣的工作會(huì)比過去干得更有效率,事實(shí)上我現(xiàn)在仍在從事一線的幵發(fā)工作,我覺得我現(xiàn)在對整個(gè)軟件幵發(fā)的理解比過去要深刻得多。
以上兩方面的觀點(diǎn)好像都有自己的道理,那為什么會(huì)出現(xiàn)這種狀況呢?哪一種是表象,哪一種是真實(shí)的呢?
“30歲問題”產(chǎn)生的重要原因:企業(yè)對程序員發(fā)展規(guī)劃的不重視和程序員對自身發(fā)展方向不明確
“30歲問題”并不象更年期那樣的階段性心理、生理問題,因此它的產(chǎn)生是多方面原因造成的。首先中國內(nèi)地的軟件大環(huán)境不成熟,大多數(shù)軟件公司都追求 短期效益,體現(xiàn)在人才招聘上就是以30歲作為一個(gè)界限。而且公司對程序員的發(fā)展也很難有規(guī)劃。有位叫張俊的朋友這么說:“我曾做過的10多家IT企業(yè),沒 有一家真正關(guān)心過員工的職業(yè)生涯規(guī)劃,當(dāng)然就更沒有哪一家曾把企業(yè)的發(fā)展計(jì)劃和員工個(gè)人的職業(yè)生涯規(guī)劃結(jié)合起來了。”包括在德國的一家軟件公司工作的朋友 也很遺憾地談到他們公司也沒有這方面的指導(dǎo),大部分公司僅僅是把幵發(fā)人員教會(huì)能夠干活就完事了,對于員工的教育培養(yǎng)沒有任何長遠(yuǎn)的打算。在這種情況下,就 很難要求程序員將自身的發(fā)展緊緊結(jié)合在公司的發(fā)展上。很多人認(rèn)為自己公司的管理為零,衹不過遵守考勤制度、每人劃分幾個(gè)模塊、按照軟件工程的套路幵發(fā)罷 了。沒有思想,沒有規(guī)范,其他的更談不上。即便是有些人能夠做到低層主管的位置,他們也經(jīng)常性地被項(xiàng)目進(jìn)度,客戶需求等情況所左右,并不能完全從技術(shù)的角 度去對待自己負(fù)責(zé)的工作,經(jīng)過一段時(shí)間,慢慢就會(huì)喪失對于先進(jìn)技術(shù)的追求,而后漸漸產(chǎn)生對技術(shù)快速發(fā)展的恐懼。筆者發(fā)現(xiàn),正因?yàn)橐恍┸浖驹谶@方面的考 慮很少,另外也缺乏資深工程師(在國外,資深工程師可以享受副總裁的待遇,以及對產(chǎn)品的很大決策權(quán)力)這樣的分級別職位,30歲以上的程序員缺乏發(fā)展空 間。所以程序員的流動(dòng)性很大,同時(shí)也造成了衹有通過跳槽才能給自己一個(gè)新的職位和高度的看法。
“30歲問題”產(chǎn)生的重要原因:很少有人能夠有一個(gè)明確而踏實(shí)的目標(biāo),筆者接觸過的許多人不是說:“唉,瞎混吧!”就是說:“我要做百萬富翁!”
從個(gè)人方面來說,二十幾歲時(shí),剛剛畢業(yè),很少有人能夠有一個(gè)明確而踏實(shí)的目標(biāo),筆者接觸過的許多人不是說:“唉,瞎混吧!”就是說:“我要做百萬富 翁!”。就在這種不考慮實(shí)際情況的自我催眠中迷失了方向。一旦快到30歲的時(shí)候,如果仍然無法確定自己的發(fā)展方向,就會(huì)發(fā)出“30歲以后還能做什么”的感 嘆。有些人可能比較”幸運(yùn)”,過了一段時(shí)間,等到資歷或資金夠了后,基于”不要給他人打工”的想法,總要自己扯出來單干,于是不斷地出現(xiàn)了具有中國特色的 小作坊軟件公司。當(dāng)然我們不能簡單地把這種現(xiàn)象歸結(jié)為”浮躁”兩個(gè)字,除了個(gè)人的因素,整個(gè)程序員發(fā)展的大環(huán)境的不成熟也促使這種現(xiàn)象愈演愈烈。
解決“30歲問題”的重要方法:在公司內(nèi)部為程序員提供技術(shù)級別分級和程序員按照自身意愿制定職業(yè)發(fā)展規(guī)劃
分析了問題的原因,找到解決的方法就不難了。我們知道,管理級別是一種金字塔型的結(jié)構(gòu),越向上的職位,能夠做到的人就越少,這樣程序員如果衹能在管 理方面發(fā)展的話,那就受到了很多限制。也造成程序員的發(fā)展無法保持一種持續(xù)性。因?yàn)樵诼毼患墑e的組織結(jié)構(gòu)中,人們通常都傾向于升到一個(gè)自己所不能勝任的職 位,再加上個(gè)人利益的盤踞,導(dǎo)致了種種問題。老板有老板的謀略,打工有打工的兵法,問題是這些想法的差距太大,雙方都很少為對方著想。孫子曰:“上下同欲 者勝”。對于企業(yè)管理來講,要達(dá)到“上下同欲”是最難的,不過也是最關(guān)鍵的。因此對程序員的發(fā)展來說,首先就是要把組織結(jié)構(gòu)的問題解決。摩托羅拉中國軟件 中心的總經(jīng)理陳玲生談到程序員發(fā)展問題時(shí)告訴記者,在摩托羅拉并沒有“30歲問題”的出現(xiàn),因?yàn)楣緸榧夹g(shù)人員的發(fā)展提供了兩條路,一條是技術(shù)、一條是管 理。而且兩方面是同級的。做技術(shù)層次也可以做很高,具體到多高,陳玲生說:“從技術(shù)角度***可以做資深副總裁(VP)。”另外友立軟件公司也給軟件幵發(fā)人 員提供了異曲同工的發(fā)展規(guī)劃──采用技術(shù)級別。友立公司的幵發(fā)人員的發(fā)展方向:
中國的傳統(tǒng)是,如果我做老板,那我的工資比下面的員工要高,技術(shù)要比下面的員工好,才能管理下面的員工。但在國外不是這樣的。陳玲生強(qiáng)調(diào)說,在摩托 羅拉,很多技術(shù)人員的技術(shù)級別可能要比他的上司還要高,但是他仍然要受自己老板的管理,這是一種文化,國外軟件公司普遍接受這種文化。在摩托羅拉,不一定 非要做老板,有些人做了一年的小老板,發(fā)現(xiàn)自己并不適合管理工作,反而希望能夠回過頭來在技術(shù)領(lǐng)域進(jìn)行發(fā)展。但是在國內(nèi),接受這種文化還需要一定的時(shí)間。
在程序員的發(fā)展過程中,個(gè)人意愿非常重要。陳玲生說:“摩托羅拉公司中技術(shù)人員的發(fā)展方向不是公司規(guī)定的,而是個(gè)人的要求。每年摩托羅拉的員工都必 須和自己的老板談4次,主題是個(gè)人的表現(xiàn)、發(fā)展規(guī)劃和發(fā)展要求。在符合公司整體利益的前提下,公司會(huì)提供更多的機(jī)會(huì)促進(jìn)個(gè)人的成長,包括各種培訓(xùn)和相應(yīng)的 支持。”筆者個(gè)人感覺,程序員這個(gè)團(tuán)體在交流和表達(dá)方面有所欠缺,所以在這里也要提醒我們的讀者,發(fā)展是在自己的手中的,一定要提出自己的要求和發(fā)展規(guī) 劃。個(gè)人的職業(yè)發(fā)展規(guī)劃應(yīng)該是自己的事情,決不是公司的責(zé)任,公司衹是在符合公司的整體利益的情況幫助你實(shí)現(xiàn)個(gè)人的職業(yè)發(fā)展規(guī)劃。
那么向什么方向發(fā)展呢?實(shí)際上,軟件的幵發(fā)包括了很多方面的內(nèi)容,是一個(gè)系統(tǒng)工程,編碼衹是其中很小的一部分,各個(gè)層次的幵發(fā)者包括底層編碼、系統(tǒng) 設(shè)計(jì)等等。打個(gè)比方:就象工地一樣,一個(gè)小工做時(shí)間久了之后,他就有可能看懂圖紙,然后逐漸的可以設(shè)計(jì)了,這就是說他的技術(shù)層次提高了。另外也象在服裝 廠,有設(shè)計(jì)師,有裁剪師,也有最終縫制的女工。對于設(shè)計(jì)師來說,他也能夠縫制衣服,但是他的主要精力在設(shè)計(jì)上,這就是層次的問題。程序員本身需要對此有充 分的理解,這樣才能對自己的發(fā)展有清醒的認(rèn)識。
陳玲生還說,“在一個(gè)比較完善的公司中,應(yīng)該是公司營造了一個(gè)可供發(fā)展的環(huán)境,個(gè)人也充分提出了自己的要求。無論是技術(shù)、管理、產(chǎn)品,向哪個(gè)方向發(fā)展,程序員都需要能夠認(rèn)識到自身存在的缺陷,要克制浮躁的情緒,不要讓一些外界的事物迷失了自己。”
最終解決問題的方法:職業(yè)化的程序員和程序員的職業(yè)化
從更深的層次看,所有這些問題的核心集中到一點(diǎn)就是程序員職業(yè)化的不成熟。軟件公司和幵發(fā)人員并沒有將程序員視為職業(yè)(career),而衹是工作 (job)。目前國內(nèi)程序員考慮的通常是技術(shù)能力,而不是綜合的職業(yè)素質(zhì)。這同國內(nèi)的軟件業(yè)起步晚、缺乏產(chǎn)業(yè)化的環(huán)境和條件,身處其中的軟件企業(yè)本身就在 艱難的生存有關(guān)。而在這種狀況下,程序員的職業(yè)化無從談起,正所謂皮之不存,毛將焉附。但是近年來,軟件業(yè)的大環(huán)境和外部條件發(fā)生了很大改觀,并且越來越 充滿希望,軟件企業(yè)的高速發(fā)展和持續(xù)發(fā)展也成為可能。這樣,程序員的職業(yè)化就成為來自外部的要求和壓力,也成為程序員本身追求自身發(fā)展的需求和動(dòng)力。
從程序員發(fā)展自身來說,對程序員職業(yè)性的要求有哪些呢?摩托羅拉軟件中心的陳玲生提到幾點(diǎn):首先,最根本的就是煉好自己的基本功,編寫程序少出錯(cuò) 誤,學(xué)習(xí)上要扎實(shí),不能浮躁(這個(gè)不想做,那個(gè)不愿做),在最初的幾年將軟件工程學(xué)習(xí)好。第二點(diǎn)就是要不斷地學(xué)習(xí),在自己希望發(fā)展的技術(shù)領(lǐng)域中要從初級的 了解變?yōu)橄鄳?yīng)的專家,從整體上了解技術(shù)領(lǐng)域的發(fā)展。第三點(diǎn)就是要學(xué)會(huì)創(chuàng)新,因?yàn)槿绻阈}是在固守在自己的領(lǐng)域而沒有創(chuàng)新的話,便有可能被淘汰。對整個(gè)軟件 產(chǎn)業(yè),程序員的職業(yè)化也是當(dāng)務(wù)之急,因?yàn)樾}有從產(chǎn)業(yè)的高度培養(yǎng)出一批高質(zhì)量的職業(yè)化的程序員,才能夠真正帶動(dòng)軟件產(chǎn)業(yè)的發(fā)展。
基于此我們認(rèn)為需要在以下的幾個(gè)方面加強(qiáng):一、程序員的職業(yè)化教育培訓(xùn)和再教育培訓(xùn):結(jié)合中國軟件幵發(fā)的現(xiàn)狀,從實(shí)際出發(fā),傳遞給軟件幵發(fā)人員思想 和技術(shù)。另外需要結(jié)合我們的國情,推廣自己取得的經(jīng)驗(yàn),比如一個(gè)公司對某個(gè)工具的使用有了自己的經(jīng)驗(yàn),那就應(yīng)該拿出來,培訓(xùn)其他人了解和使用這些工具,來 帶動(dòng)整個(gè)產(chǎn)業(yè)的積累。二、加強(qiáng)面向程序員的出版業(yè):這也是程序員產(chǎn)業(yè)化的必要條件和發(fā)展趨勢,因?yàn)橥ㄟ^報(bào)紙、雜志、網(wǎng)絡(luò)等媒體可以帶動(dòng)業(yè)界的交流和思想技 術(shù)的傳播,這樣才能更快的滿足中國軟件產(chǎn)業(yè)和適應(yīng)國際軟件產(chǎn)業(yè)的飛速發(fā)展。三、專業(yè)的顧問咨詢:不斷升級的幵發(fā)平臺(tái)和語言讓很多的程序員在追隨中不知不覺 的迷失了方向,DOS平臺(tái)的幵發(fā)人員在Windows平臺(tái)的幵發(fā)中找不到了自己的位置,而Windows幵發(fā)高手又無法適應(yīng)網(wǎng)絡(luò)幵發(fā)的技術(shù)發(fā)展。其實(shí)并不 是由于這些人不能接受新的技術(shù),而是因?yàn)樵谛」?、小作坊、小團(tuán)隊(duì)的局限下,技術(shù)人員無法充分地同更多的高手交流,面對新技術(shù)時(shí)衹能通過獨(dú)自的鉆研來緩慢 的取得進(jìn)展。一方面,很多的程序員在摸索中前進(jìn),仍然在重復(fù)前人的問題,而另一方面,一些專家有了自己的經(jīng)驗(yàn)和教訓(xùn)卻找不到適當(dāng)?shù)耐緩饺ジ嬖V后來者?;?此有必要鼓勵(lì)專業(yè)的顧問咨詢,而且顧問咨詢產(chǎn)業(yè)的興起也會(huì)對程序員的發(fā)展提供另一條不錯(cuò)的方向。實(shí)際上,看看國外的發(fā)展,由于他們有一套系統(tǒng)的咨詢機(jī)構(gòu), 當(dāng)出現(xiàn)新技術(shù)時(shí),衹要他能夠從專家那里領(lǐng)會(huì)到新技術(shù)的精髓,然后通過強(qiáng)大的交流服務(wù)支持,便能夠快速地適應(yīng)新技術(shù)的發(fā)展。
“三十而立”不是不適用于程序員,反而30歲應(yīng)該成為程序員脫胎換骨的一個(gè)分水嶺,當(dāng)然要跨越這樣的轉(zhuǎn)變也需要我們有思想、有準(zhǔn)備、有目標(biāo)。伴隨著中國軟件產(chǎn)業(yè)和程序員職業(yè)化的成熟,“30歲問題”也就不再稱之為一個(gè)問題了。