一篇摘自求索閣的文章,分析的很透徹,相比那些有關“程式員是青春飯”的泛泛而談的文章要有深度的多,文章從中國IT業的狀況、中國的曆史分析產生“程式員不超過30歲”這個觀點的原因,以及這個觀點的錯誤之處。這是一篇既積極又理性的文章,我喜歡(不喜歡那些空洞的所謂的催人向上的文章和消極的使人沮喪的文章)。原文如下求索閣:
軟體之路:也談“程式員不超過30歲”
總是不斷地在論壇、部落格乃至報刊、雜誌上看到關於“程式員是否可以幹到30歲之後”,或者“程式員30歲以後能夠做什麼”,這樣的討論。這樣的討論多了,似乎在校念電腦的學生也沒出校門就開始嚴肅思考自己30歲之後應該轉行幹什麼的問題。
這個觀點對整個產業影響不小,然而,我似乎無法為“不能幹到30之後”這個論點找到充分的論據。反之,我覺得做程式員至少可以做到五十歲。首先聲明一點:本人已經三十大幾了,還在幹程式員的活,所以以下的討論可以說是親身感受。
我首先不理解的是:程式員需要很高的能力嗎?30歲之後就沒有這樣的能力了嗎?
程式員需要怎樣的能力
本人從事這個職業10年,感覺程式員這個職業其實和別的職業沒有什麼本質的區別。總體來看,如下的能力或品質是我覺得需要具備的:
細緻認真:這其實是大多數行業的要求。對於程式員這個行業來說,要求比某些行業可能更高些。編碼的一點疏忽就可能使程式錯誤,從而造成損失。
對抗壓力:壓力主要是來自按時完成編碼、項目或軟體產品。但這種壓力並非程式員專屬,在這個激烈競爭的時代,有幾個行業不是這樣壓力重重呢?
勤於學習:這個是程式員相對獨特的要求。IT業的技術更新總是很頻繁,因此,總是需要不斷地學習新東西。不過,醫生也是一個要求不斷學習的行業,所以,也不能說不斷學習就是一個完全獨特的要求。
邏輯思維:毫無疑問,編程是一個主要依靠邏輯思維的腦力活。但是,從本人編程10年的經驗來看,程式員需要的邏輯思維能力,經過高中數理化訓練的人應該就問題不大。
對於這些能力來說,三十歲是個界限嗎?
》》》軟體開發人員很難超過40歲嗎
身體承受能力界限?首先,30歲是否是身體承受能力的界限?相信大家也會覺得這是不可能的。古語云,“30而立”,剛剛“而立”就無法在身體承受“細緻認真”、“對抗壓力”了?如果真是這樣,社會上絕大多數工作都應該設立30歲退休的標準。
精神承受能力界限?那麼,30歲是否就不適宜於在精神上承受程式員這個職業所造成的壓力了呢?事實上,30歲這個歲數和是否能夠承受這種壓力無關,是否能夠承受這種壓力,和每個人自己的壓力承受能力相關。如果一個人25歲能夠承受這種壓力,基本上沒有道理說到30歲就無法承受了。要真是30歲以上精神承受能力就不行了,軍隊的指揮官就必須由30歲以下的人擔任了。
邏輯思維能力界限?程式員需要的主要是邏輯思維能力,30歲正是邏輯思維能力發展比較好的時候,所以這也並不是一個界限。
學習能力界限?學習能力就更加不存在界限了。豈不聞古時之人尚有“秉燭”之說,現代人營養良好,學習條件優越,只要自己願意,終身學習都沒有問題。
那麼,在中國的IT產業中,為什麼“程式員不過30歲”之說如此盛行呢?我覺得IT產業本身的曆史是原因之一,另外,中國特殊的社會文化也起了推波助瀾的作用。
產業曆史催生“程式員不過30”說
事實上,所謂“程式員不過30”之類的說法,並不是30歲真的是什麼必然的界限,這種說法更類似於一種價值取向——不是過30歲就幹不了程式員這活,而是“不願意過了30歲還在幹程式員”。這確實是一種在IT產業內才有的一種特殊的價值取向。我們似乎沒有聽說過“公務員科員不過30”、“生產線上工人不過30”、“軍人計程車官不過30”或類似的言論。個人感覺,這樣的價值取向和IT產業的發展曆史不無關係。
》》》從國企到外企:不惑之年何處去
我覺得這主要是90年代IT風潮,一夜致富效應的影響。90年代末網路泡沫經濟,真的是一場燒錢的盛宴。凡是和IT沾邊,帶點新意的概念,在很短的時間內就可能被大家捧到天上去。所有人都在歡呼知識經濟的到來——經濟上升可以無限持續,僅僅憑藉一個什麼基礎都沒有的所謂“概念”,就可以融入大批的資金。在這樣的背景下,無數的人一夜暴富(當然,他們花的都是不是自己的錢,而是瘋狂追捧的投資人的錢)。在這樣的背景下,進入IT這個行業的許多人都希望自己有一天也一夜暴富。這個時代崛起的IT億萬富翁大都是20-30歲,這就樹立了標杆,給人以強烈的刺激,讓人感覺如果到了30歲還沒有步入富翁的行列,在這個行業中就白混了。幹程式員是無法成為富翁的。我覺得,這是“程式員不過30”說法的大時代背景。在一個大多數富翁(其中不乏優秀的、創業成功的程式員)都如此年輕的行業中,提出“程式員不過30”不是什麼讓人太驚訝的事情。
只不過,時過境遷,現在,IT業已經掉進了凡間,成為了一個正常的、逐步成熟的工業。一夜暴富的機會已經大大減少。再用“程式員不過30”這樣的言論來刺激從業人員,誤人不淺。
社會文化助長“程式員不過30”說
當前世界對中國說法褒貶不一,但沒人不承認中國是個處於劇烈變化中的社會,用20年走過了工業化國家100年走過的路程。在如此劇變的社會中,社會階層也在不斷地變化和重組,這就註定中國人會目睹若干人的暴富,若干人的“成功”。而且,社會是如此賣力地宣傳這些人成功之後的故事,而鮮為關注這些人成功之前付出的努力和代價,以及客觀揭示他們具備怎樣的條件、經受了怎樣的風險。這就讓所有中國人幾乎一致地做著“發家致富”夢,整個社會處於浮躁不安之中。在這樣的社會環境中,如果你恰恰又處於一個年輕人曾經不斷暴富的IT行業,那麼,希望自己30歲之後不再是程式員(後面的潛台詞:比程式員掙得更多,“錢”途更廣闊),恐怕確實是多數人的夢想。
官本位主義使“30歲之後不再做程式員”的想法進一步強化。中國有漫長的封建社會曆史,在我們的古代社會中,“做官”是任何理性人的最高人生理想。這樣的思想到了現代,雖然有所弱化——畢竟現代人實現自己人生價值的選擇多了——然而,大家還是普遍傾向於做“官”(或管理者),而不是做“兵”(或生產者)。落實到程式員身上,就體現為“程式員不過30”,為何?30歲之後還在做程式員,說明成為“管理者”的希望更加小了,上升得慢了。而大家普遍的看法是:不能一直做技術。
》》》搞技術的有前途嗎
“不能一直做技術”這種想法,也是中國社會比較獨特的現象。我們具有“重仕輕技”、“重道輕術”的傳統。孔夫子說過(原話記不清了),“如果一個男子沉迷於具體的技能,那麼他就沒出息了,所以,對一個有出息的人的來說,理想狀態應該是什麼技能都不會,把所有的心思用來琢磨人。”個人覺得,這幾乎是傳統文化最大的糟粕之一。大家都知道,德國這個國家自從進入工業化社會之後,就一直是一個工程師國家,而且,德國的職業學校也非常多,培養出了非常多的專業技能人員。正是這樣的人口構成和工程師文化,奠定了德國在工業化社會中的地位。
國人還比較看重“道”而輕視“術”,也就是說,喜歡在抽象層次上泛泛地討論事情,覺得把事情的基本原理摸清得差不多了,就不太願意深入下去研究各種應用的細節,因為那屬於“術”一級的問題,普遍的感覺是——層次低了點。在這樣的文化影響下,希望自己可以儘快(30歲)脫離“術”的束縛,進入“道”層級,也就不是太奇怪的事情了。
總之,“程式員不過30”之說,我認為不具備什麼真正的意義,不過是反映了在我們這個劇烈變化的社會中,在新銳富翁曾經層出不窮的IT產業中,在我們這個官本位主義、重仕輕技的社會中,一種被放大了的“做官”的願望,一種力爭暴富的說法。
至少幹到50歲!
有人可能會發話了:“照你看來,程式員能夠幹到多久?”我認為答案很簡單:想幹多久都可以。“什嗎?!照你的意思,幹到50、60歲都可以?”60歲是否還能夠幹程式員,我不太清楚,但按照我自己的情況,再結合現在社會發展的趨勢來看,個人感覺至少幹到50歲問題不大。理由如下:
1)中國勞動力逐漸在短缺。未來20到30年,中國社會將逐步進入老齡化的時代。看著小區內和我年齡差不多的住戶,我經常都在想:40年後中國若干小區中最發達的產業一定是老年看護。曾經看過NHK講述日本農業人員老齡化的紀錄片,其中講到,在日本的某著名農業區,農民平均年齡是72歲,很多已經80歲的人還在幹活,所以,當地農會會長最頭疼的問題就是如何說服大家增加生產,因為老頭老太太們幹不動了,生產積極性不高。雖然這是日本農業的情況,但是,中國未來面臨的人口老齡化的壓力是相同的,我們這代人想要輕輕鬆鬆50歲就退休,恐怕是沒有可能了——少數年輕人無法負擔起龐大的養老金。也許我們註定了要幹到70歲。等我們到了50歲,也許還屬於是“壯年人口”呢,那個時候,想想以前認為“30歲就幹不動程式員”,可能已經是個笑談了。
2)中國軟體業逐漸在正常化。之所以大家以前覺得程式員辛苦,幹不長,一個重要的原因是加班太多,經常一做項目就加班加點。這裡且不說幹軟體是否真的累到了獨一無二的地步——現在社會上各個行業普遍都有加班多的現象(這並不是說加班合理,只是說軟體行業的加班並反非特別突出)——單說軟體程式員這個行業本身,其實也是在逐漸正常化的。至少中國軟體企業開始認同正常化管理而不是小作坊作風了,至少中國軟體企業認識到過程的重要性了(CMMI)。不但如此,中國軟體行業也開始認識到了,一天編出5000行程式來未必是高效率,未必是什麼好事,一天保質保量編出200-300行程式,就已經是很不錯的生產率了。有了規範管理和生產率的共同認識,程式員這個行業的勞動強度其實就減輕了不少,總是靠體力吃青春飯的現象逐漸會成為過去。
3)中國的智慧財產權保護在改善。雖然改善比例有限——盜版率每年下降大約10%,但是,至少我們可以預期未來20-30年後智慧財產權保護得不錯。咦,這也有助於高齡程式員的就業?當然。未來智慧財產權保護完善的時候,就是使用新技術的成本大大提高的時候。我們不是總笑話日本人使用老技術嗎,君不見日本到現在還用VC6.0和VB6.0來編寫軟體的項目多的是。為什嗎?成本低啊,這些開發工具價格低,開發技術成熟。我們也會有這樣一天,所以,並不是只有掌握最新技術的人才有出路,隨著智慧財產權保護的完善,中國的高齡程式員們也可以使用老技術掙錢,沒準還掙得更多些,因為會老技術的人少啊。
4)中國社會需要大量專門技能人才而不是大量中層管理員(當然,有能力的高層管理員總是需要而且稀缺的)。不是總有人說編程是“軟體藍領”嗎?看看世界工業發展的趨勢,那就是藍領工人吃香啊,你要是一個手藝嫻熟的鉗工,掙的錢恐怕不比中層管理員少。翻翻最近大公司裁員的新聞,也會發現裁減的主要是管理崗位的員工。為嘛?最終還是需要幹活的人啊。軟體這個行業也是這樣。優秀的程式員什麼時候都是缺乏的。雖然在中國當前的社會氛圍中,安心做事的人較少,但是,隨著社會的成熟,一夜暴富的機會終將大大減少,有一技之長以謀生恐怕是大多數人的歸宿。自己在這10年中看到了太多的人放棄做技術,不斷地看到新人接替老手的工作,不斷地看到培訓新人、離開、再培訓新人的過程。正因如此,感覺整個行業永遠都是新人。想想看,在這樣一個環境中,如果你把自己磨練成了真正優秀的程式員,想30歲就不幹,社會都不允許,至少幹到50歲!