程序員的年齡天花板
我是一個老程序員了, 2014 年我不斷在思考一個問題:程序員的年齡天花板到底是多少歲?
其他行業(yè)里的老將
農(nóng)村有一些老人 70 多歲了還能種地,不但能種小麥玉米,還能在自己房子后面種點白菜、蘿卜、西紅柿、豆角什么的,自給自足,不靠孩子贍養(yǎng)。
褚時健70多歲承包荒山開始種橙,現(xiàn)在褚橙是知名品牌。
我們家不遠(yuǎn)處有個同仁堂,同仁堂里有中醫(yī)館,中醫(yī)館里都是老先生,太年輕的沒人看。
你看國家高級領(lǐng)導(dǎo)人,都沒個年輕的,60多歲就算少壯了……
老程序員啊
很多行業(yè)對年齡沒有特別限制,有的行業(yè)甚至是越老越吃香,可程序員呢,很多人都覺得是吃青春飯的,是“以色事人”的,年老色衰就會很悲哀。
果真如此?
國內(nèi)環(huán)境
國內(nèi)的 IT 公司,軟件開發(fā)水平和意識整體較差,多數(shù)公司做出來的產(chǎn)品差強人意,上一幫子人做出一東西來,再上一幫子人花一大把錢去推廣,就這么個現(xiàn)狀吧。這種現(xiàn)狀是 由逐利的急切性引起的,逐利的急切性又客觀上造成了對技術(shù)的短視,再往下推,自然就是對技術(shù)人員和技術(shù)能力的不重視,最后也就談不上人才的培養(yǎng)和技術(shù)的積 累了。
計算機軟件已經(jīng)成為整個社會發(fā)展的基礎(chǔ)支撐,各行各業(yè)都需要,各行各業(yè)也都需要開發(fā)軟件的程序員。行業(yè)背景不同,對技術(shù)的看法自然會有不同。我前面概述的現(xiàn)狀,自然也有一些公司不在其列,但大多數(shù)是如此的,90%以上是醬紫:東西做出來,錢賺到了,勝利,其它的,毛線。
在這樣一種心態(tài)和現(xiàn)實下,做東西的人,談不上多受重視,很多公司的老板覺得拉一幫子人就能把東西搞出來,他認(rèn)為要做的東西根本就沒什么技術(shù)難度,網(wǎng) 上抄一抄,加班搞一搞,這么著就出來了。年輕人身體好,牽絆少,能拼能加班,可以彌補與老程序員在水平上的些許差距,為什么不用年輕人呢?是吧。你說呢。 年輕人又便宜,一個老程序員的薪水可能可以雇好幾個年輕小伙子,三個臭皮匠能頂諸葛亮,我?guī)讉€人還干不過你一個么。
團隊分類
為了討論程序員的職業(yè)壽命,我們先得給公司或者團隊分分類。大概有這么三類:
-
外包型
-
項目型
-
產(chǎn)品型
咱們一一來說一下吧。
外包型
什么是軟件外包呢?
來來來,發(fā)揮剪報君的特長,看看百度百科的定義:
軟件外包就是企業(yè)為了專注核心競爭力業(yè)務(wù)和降低軟件項目成本,將軟件項目中的全部或部分工作發(fā)包給提供外包服務(wù)的企業(yè)完成的軟件需求活動。
看見了吧,大多數(shù)時候,軟件外包干的就是人家不愿意干的臟活、累活、低技術(shù)含量的活。我在“親愛的程序猿們怎么找工作”一文中已明確我的看法:有產(chǎn)品做,就不要做外包。
我見過的外包,有對歐美的,對日的,對華為的,這幾類很多,前些年中國的勞動力成本低,外包業(yè)務(wù)很發(fā)達,現(xiàn)在印度成本更低并且軟件開發(fā)規(guī)范程度更高,是比中國更受青睞的外包市場。
做軟件外包的缺點有幾個:
-
技術(shù)積累缺少持續(xù)性
-
不穩(wěn)定
-
沒有話語權(quán)
專門做外包的公司,有活兒了你就干,沒活兒啦你可能就得滾蛋。這有什么可說的呢,我不養(yǎng)閑人呢親。所以這是不穩(wěn)定。
對程序員來講,在外包類公司,是最容易遭遇年齡坎兒的。因為干的活兒技術(shù)含量低(核心的人家自己干啦),個人的可替代性就強,你一經(jīng)驗豐富的老程序 員薪資又高,每月 20K、30K很常見啊,對老板來講養(yǎng)不起啊,肉疼心也疼,搞幾個年輕的吧,三千兩千都有人干,還也能干得了,你說說,你一個人拿的錢能雇七八個年輕人, 你多危險呢你。還有你事兒多,有老婆孩子,孩子學(xué)校不定什么事兒呢,晚上還得招呼孩子功課,加個班兒都不痛快,要你干么地吧。就算你技術(shù)很強,可外包這種 性質(zhì),打一槍換個地方,活干完了就了事了,再強也沒你用武之地呀。再說啦,留兩個強人就行了,要那么多凈浪費公司銀子。
項目型
中國電信、中國移動、中國聯(lián)通,電信三家公司,養(yǎng)活了數(shù)不盡的項目型公司和團隊啊。還有一眾銀行、金融企業(yè)、政企,也養(yǎng)活了數(shù)不盡的項目型公司啊。
什么是項目型公司呢?就是以給人做項目為主業(yè)的公司,接到項目就開工,有錢賺,比如你接人家電信的網(wǎng)上營業(yè)廳,比如你接人家某某大型國企的政務(wù)信息 化,等等;接不到項目呢,就收縮規(guī)模,裁員……就這種啦。我見過很多,電信、金融、石油、電力、教育、政務(wù)、鐵路……,各行各業(yè)都需要這種項目型公司,用 自己公司的人,幫別人干項目,干出來活所有權(quán)不歸你公司,歸人家,可延續(xù)性很差,也不需要多少人來維護,就是要維護,留上一兩個核心的懂業(yè)務(wù)的就夠了,其 它人,鳥盡弓藏,沒項目了你就只好走人了吧。
項目型公司比外包型稍強一些,技術(shù)上可以自己選擇,也能夠在某個行業(yè)長期積累經(jīng)驗,甚至你還有可能自己立山頭自己干。不過對于不能拉隊伍自己搞的普 通程序員來說,還是可持續(xù)性差一些,可替代性差一些。我就見過電信的項目,一個大項目拆成多個小項目,分給七八個小公司來搞,今天你搞著呢,下一期另外一 個小公司和對口主管關(guān)系好,把你替了……有些程序員會在出沒于電信一個大樓里的幾個公司之間跳來跳去……從這一點上講,程序員也不重要啊,公司也不重要 啊,這個公司不干還有那個,這個程序員不干還有那個,另外程序員的價值也不高啊,有個懂業(yè)務(wù)的,配幾個小年輕,事兒也就能搞成,你說你老大不小的,怎么跟 年輕人拼呢……
產(chǎn)品型
毋庸置疑,做產(chǎn)品的公司是程序員最好的選擇。一個公司做了一個好產(chǎn)品,運營這個產(chǎn)品,產(chǎn)品會不斷迭代、更新,程序員會跟著這個產(chǎn)品一直往前走,公司 需要了解產(chǎn)品、了解業(yè)務(wù)、技術(shù)積累厚的人才,而要懂業(yè)務(wù)、懂產(chǎn)品、有積累,都需要時間,等你什么都了解差不多了,也就是個老程序員了不是。而且隨著你對產(chǎn) 品了解的越深,你的不可替代性就越高,價值就越能凸顯出來。當(dāng)你的不可替代性高時,老板就要考慮替代的成本。什么都不懂的年輕后生,根本撼不動你的地位。
做產(chǎn)品的公司有相當(dāng)數(shù)量,也有很多知名的,比如騰訊、百度、阿里、愛奇藝、PPTV等等,開發(fā)人員也數(shù)量龐大,幾千到幾萬人的都有,但是這樣的公司 所擁有的開發(fā)人員總數(shù)量,與中國幾百萬程序員群體相比,還不是一個數(shù)量級的呀。那更多的程序員在哪里呢?就在項目型公司、外包型公司。
程序員的價值所在
(注:我在“程序員保值的4個秘密”一文中討論了和這節(jié)類似的問題)
對于程序員來講,價值怎么體現(xiàn)?一個程序員的價值,就體現(xiàn)在他的稀缺性上。物以稀為貴么,亙古不變的道理。
“聞道有先后,術(shù)業(yè)有專攻”這句話很適用于程序員,直白點說,技術(shù)的精湛不是以年齡來評判的,有的朋友在上學(xué)時的技術(shù)水平已經(jīng)比工作十來年的高了,有工作十年的水平不如工作三年的,當(dāng)然也有很多程序員的技術(shù)水平是正比于年齡增長的。
作為一個老程序員,只有你的技術(shù)能力正比于年齡,才是合格的,否則就必然越走越慢,慢慢掉隊,最終就只能面臨被年輕人擠兌、淘汰的窘?jīng)r,結(jié)果就是被迫離開程序員的隊伍。
程序員要想讓自己的價值持續(xù)增長,有這么幾個方向可供參考。
(一)選行業(yè)
在一個行業(yè)內(nèi)持續(xù)積累,對行業(yè)的理解到位,積累深厚,你的價值是巨大的。不信你去瀏覽招聘網(wǎng)站上的崗位需求,99%都要求相關(guān)行業(yè)背景。所以,選擇一個靠譜的、前景好的行業(yè)非常重要,只要這個行業(yè)能夠不斷發(fā)展、前進,你的積累就是有價值的,你自己就是不斷增值的。
(二)技術(shù)
程序員,業(yè)務(wù)積累是屠龍刀,技術(shù)積累是倚天劍,兩個都有,那就逢山開路遇水搭橋沒有走不通的路了,你一定是先鋒部隊尖刀兵,到哪里都具有超強的攻擊性。
技術(shù)上最起碼的要求是技術(shù)水平和視野對得起年齡,如果有超越年齡的積累和犀利,那就沒話說了,地球人已經(jīng)阻擋不了你前進的步伐了。
就技術(shù)來講,假如你掌握了一門很難又很重要的技術(shù),那單單是這一點,就很有價值。比如你熟悉 Windows 內(nèi)核或 Android 內(nèi)核,能夠熟練撰寫各種驅(qū)動,那找個月薪五六十K的工作不成問題。再比如你圖像處理算法很牛,再比如你視頻解碼算法很牛,……像這些特定領(lǐng)域的算法,我們 也叫它技術(shù)吧。如果你懂類似的算法并能實現(xiàn)之,恭喜你,你已經(jīng)超越了 90% 的程序員了,你的重要性和價值將不可估量。
(三)產(chǎn)品意識
做產(chǎn)品也是講感覺的,當(dāng)然有時我們覺得對產(chǎn)品的把握是產(chǎn)品經(jīng)理的事兒,這么講對,也不對。產(chǎn)品經(jīng)理雖然是不掛銜的 CEO ,但產(chǎn)品的最終實現(xiàn),是要靠程序員的,假如你對產(chǎn)品沒有熱情、沒有感覺,無所謂好無所謂壞,那很難做到出色了。
我有一個很樸素的想法,一個程序員,要想做一個不那么糟糕的產(chǎn)品,一定要有愛,就像天龍八部里的段譽哥哥,見到美女就愛得要死要活,對每一位妹妹的 愛都是發(fā)自真心的、都是熾烈的、都是讓人魂牽夢縈的。惟其如此,你才能像張京兆(張敞,曾任京兆尹)為妻子畫眉那樣用心雕琢你的產(chǎn)品,對每一個細(xì)節(jié)都念茲 在茲直到完美。這是講我們程序員要愛產(chǎn)品,愛各種各樣的產(chǎn)品,是做出好產(chǎn)品的前提。
你愛你做的產(chǎn)品,打心眼里希望她好,就有了第一個前提了。那接下來就很容易進入角色了,每做一個產(chǎn)品都會有積累,走心嘛,沒積累才奇怪。慢慢你就會培養(yǎng)出對產(chǎn)品的獨特感覺,形成產(chǎn)品意識,鶴立于程序員群里了。
再羅嗦一點,業(yè)務(wù)積累是屠龍刀,技術(shù)積累是倚天劍,那產(chǎn)品意識就是張無忌了,由他來控制屠龍刀和倚天劍,那就能發(fā)揮無上威力了。
公司的招聘要求分析
在現(xiàn)實中,公司招聘程序員時,多數(shù)時候會提到業(yè)務(wù)和技術(shù)方面的任職要求,我截取了兩則招聘信息,貼出來看看:
這是招聘 Android 開發(fā)工程師的,職位要求里的第5點,就是行業(yè)業(yè)務(wù)要求。1、2、3、4都是技術(shù)要求了。
再看一個:
這個職位要求很硬很牛逼了,大部分都是技術(shù)方面的,不過第6點,依然是行業(yè)業(yè)務(wù)相關(guān)的。
其實我比較中意的是一個人是否愛他喜歡他所做的事情,如果你愛,泛愛眾,又是真愛,那你就有了坐著火箭飛行的基礎(chǔ)了,如果沒有這一點,嗯,頂多是做到稱職而已。不過你翻遍招聘網(wǎng)站的招聘需求,這方面的要求都很少見到,原因大概是很難描述、量化,因為它實在是一個軟指標(biāo)。
結(jié)論
我要亮出我的觀點,評說就任人了。
我的結(jié)論是:程序員的價值與年齡沒有直接關(guān)系,價值不會反比于年齡。作為軟件開發(fā)人員,自己不要給自己在年齡上設(shè)限,很多事情我們沒做成,很多時候我們沒能取得更大的成就,都是因為我們先給自己設(shè)置了限制,用這個限制禁錮了自己。
下面這張圖來自 cnbeta 的文章“2014年中國程序員調(diào)查報告”,他說明了國內(nèi)程序員的年齡分布情況:
圖1 程序員年齡分布
誰說程序員干不過三十歲呢,圖1表明,30歲以上的程序員占比高達 48.62%,占整個程序員群里的將近一半。
2015年1月22日,我去參加 Qt 西安開發(fā)應(yīng)用研討會,有一哥們就是老程序員,40多了,寶刀正鋒利呢。
王江民30多歲寫軟件,43歲搞出橫掃殺軟市場的江民殺毒。
我的老上司,40來歲了寫直播流媒體協(xié)議,P2P的,傳輸效率高且穩(wěn)定。
……
年齡只是一個自然現(xiàn)象,而我們的經(jīng)驗、認(rèn)知、能力、心智成熟度,在合理的情況下,都是隨著年齡增長的,廉頗不老,黃忠能戰(zhàn),只要你走在正確的方向上有值得稱道的積累,緣何不能橫刀立馬顧盼自雄耶。
國外的研究論文和結(jié)論
讓我們看一下國外牛人的研究吧:“ Is Programming Knowledge Related To Age?”。這個鏈接是英文的,pdf 版本,基于 Stack Overflow上的數(shù)據(jù)分析得出的結(jié)論。嫌 E 文難看的,來看個中文的:“程序員越老越博學(xué)嗎?”,該文引用了“Is Programming Knowledge Related To Age?”的數(shù)據(jù)和結(jié)論。
“Is Programming Knowledge Related To Age?”這篇論文的結(jié)論是:
-
程序員技術(shù)能力上升是可以到50歲或60歲的。
-
老程序員在獲取新技術(shù)上的能力并不比年輕的程序員差。
隨著年齡老去的,是我們的身體,而永葆年輕的,則是我們的心。心不老,青春在,寶刀寒光仍閃耀,依舊斬上將首級于萬千敵陣中如兒戲爾。程序員,走自己的路,讓用年齡唱衰我們的人說去吧。