程式設計師的年齡天花板

foruok發表於2015-08-27

我是一個老程式設計師了, 2014 年我不斷在思考一個問題:程式設計師的年齡天花板到底是多少歲?

其他行業裡的老將

農村有一些老人 70 多歲了還能種地,不但能種小麥玉米,還能在自己房子後面種點白菜、蘿蔔、蕃茄、豆角什麼的,自給自足,不靠孩子贍養。

褚時健70多歲承包荒山開始種橙,現在褚橙是知名品牌。

我們家不遠處有個同仁堂,同仁堂裡有中醫館,中醫館裡都是老先生,太年輕的沒人看。

你看國家高階領導人,都沒個年輕的,60多歲就算少壯了……

老程式設計師啊

很多行業對年齡沒有特別限制,有的行業甚至是越老越吃香,可程式設計師呢,很多人都覺得是吃青春飯的,是“以色事人”的,年老色衰就會很悲哀。

果真如此?

國內環境

國內的 IT 公司,軟體開發水平和意識整體較差,多數公司做出來的產品差強人意,上一幫子人做出一東西來,再上一幫子人花一大把錢去推廣,就這麼個現狀吧。這種現狀是由逐利的急切性引起的,逐利的急切性又客觀上造成了對技術的短視,再往下推,自然就是對技術人員和技術能力的不重視,最後也就談不上人才的培養和技術的積累了。

計算機軟體已經成為整個社會發展的基礎支撐,各行各業都需要,各行各業也都需要開發軟體的程式設計師。行業背景不同,對技術的看法自然會有不同。我前面概述的現狀,自然也有一些公司不在其列,但大多數是如此的,90%以上是醬紫:東西做出來,錢賺到了,勝利,其它的,毛線。

在這樣一種心態和現實下,做東西的人,談不上多受重視,很多公司的老闆覺得拉一幫子人就能把東西搞出來,他認為要做的東西根本就沒什麼技術難度,網上抄一抄,加班搞一搞,這麼著就出來了。年輕人身體好,牽絆少,能拼能加班,可以彌補與老程式設計師在水平上的些許差距,為什麼不用年輕人呢?是吧。你說呢。年輕人又便宜,一個老程式設計師的薪水可能可以僱好幾個年輕小夥子,三個臭皮匠能頂諸葛亮,我幾個人還幹不過你一個麼。

團隊分類

為了討論程式設計師的職業壽命,我們先得給公司或者團隊分分類。大概有這麼三類:

  • 外包型
  • 專案型
  • 產品型

我們們一一來說一下吧。

外包型

什麼是軟體外包呢?

來來來,發揮剪報君的特長,看看百度百科的定義:

軟體外包就是企業為了專注核心競爭力業務和降低軟體專案成本,將軟體專案中的全部或部分工作發包給提供外包服務的企業完成的軟體需求活動。

看見了吧,大多數時候,軟體外包乾的就是人家不願意乾的髒活、累活、低技術含量的活。我在“親愛的程式猿們怎麼找工作”一文中已明確我的看法:有產品做,就不要做外包。

我見過的外包,有對歐美的,對日的,對華為的,這幾類很多,前些年中國的勞動力成本低,外包業務很發達,現在印度成本更低並且軟體開發規範程度更高,是比中國更受青睞的外包市場。

做軟體外包的缺點有幾個:

  • 技術積累缺少持續性
  • 不穩定
  • 沒有話語權

專門做外包的公司,有活兒了你就幹,沒活兒啦你可能就得滾蛋。這有什麼可說的呢,我不養閒人呢親。所以這是不穩定。

對程式設計師來講,在外包類公司,是最容易遭遇年齡坎兒的。因為乾的活兒技術含量低(核心的人家自己幹啦),個人的可替代性就強,你一經驗豐富的老程式設計師薪資又高,每月 20K、30K很常見啊,對老闆來講養不起啊,肉疼心也疼,搞幾個年輕的吧,三千兩千都有人幹,還也能幹得了,你說說,你一個人拿的錢能僱七八個年輕人,你多危險呢你。還有你事兒多,有老婆孩子,孩子學校不定什麼事兒呢,晚上還得招呼孩子功課,加個班兒都不痛快,要你幹麼地吧。就算你技術很強,可外包這種性質,打一槍換個地方,活幹完了就了事了,再強也沒你用武之地呀。再說啦,留兩個強人就行了,要那麼多淨浪費公司銀子。

專案型

中國電信、中國移動、中國聯通,電信三家公司,養活了數不盡的專案型公司和團隊啊。還有一眾銀行、金融企業、政企,也養活了數不盡的專案型公司啊。

什麼是專案型公司呢?就是以給人做專案為主業的公司,接到專案就開工,有錢賺,比如你接人家電信的網上營業廳,比如你接人家某某大型國企的政務資訊化,等等;接不到專案呢,就收縮規模,裁員……就這種啦。我見過很多,電信、金融、石油、電力、教育、政務、鐵路……,各行各業都需要這種專案型公司,用自己公司的人,幫別人幹專案,幹出來活所有權不歸你公司,歸人家,可延續性很差,也不需要多少人來維護,就是要維護,留上一兩個核心的懂業務的就夠了,其它人,鳥盡弓藏,沒專案了你就只好走人了吧。

專案型公司比外包型稍強一些,技術上可以自己選擇,也能夠在某個行業長期積累經驗,甚至你還有可能自己立山頭自己幹。不過對於不能拉隊伍自己搞的普通程式設計師來說,還是可持續性差一些,可替代性差一些。我就見過電信的專案,一個大專案拆成多個小專案,分給七八個小公司來搞,今天你搞著呢,下一期另外一個小公司和對口主管關係好,把你替了……有些程式設計師會在出沒於電信一個大樓裡的幾個公司之間跳來跳去……從這一點上講,程式設計師也不重要啊,公司也不重要啊,這個公司不幹還有那個,這個程式設計師不幹還有那個,另外程式設計師的價值也不高啊,有個懂業務的,配幾個小年輕,事兒也就能搞成,你說你老大不小的,怎麼跟年輕人拼呢……

產品型

毋庸置疑,做產品的公司是程式設計師最好的選擇。一個公司做了一個好產品,運營這個產品,產品會不斷迭代、更新,程式設計師會跟著這個產品一直往前走,公司需要了解產品、瞭解業務、技術積累厚的人才,而要懂業務、懂產品、有積累,都需要時間,等你什麼都瞭解差不多了,也就是個老程式設計師了不是。而且隨著你對產品瞭解的越深,你的不可替代性就越高,價值就越能凸顯出來。當你的不可替代性高時,老闆就要考慮替代的成本。什麼都不懂的年輕後生,根本撼不動你的地位。

做產品的公司有相當數量,也有很多知名的,比如騰訊、百度、阿里、愛奇藝、PPTV等等,開發人員也數量龐大,幾千到幾萬人的都有,但是這樣的公司所擁有的開發人員總數量,與中國幾百萬程式設計師群體相比,還不是一個數量級的呀。那更多的程式設計師在哪裡呢?就在專案型公司、外包型公司。

程式設計師的價值所在

(注:我在“程式設計師保值的4個祕密”一文中討論了和這節類似的問題)

對於程式設計師來講,價值怎麼體現?一個程式設計師的價值,就體現在他的稀缺性上。物以稀為貴麼,亙古不變的道理。

“聞道有先後,術業有專攻”這句話很適用於程式設計師,直白點說,技術的精湛不是以年齡來評判的,有的朋友在上學時的技術水平已經比工作十來年的高了,有工作十年的水平不如工作三年的,當然也有很多程式設計師的技術水平是正比於年齡增長的。

作為一個老程式設計師,只有你的技術能力正比於年齡,才是合格的,否則就必然越走越慢,慢慢掉隊,最終就只能面臨被年輕人擠兌、淘汰的窘況,結果就是被迫離開程式設計師的隊伍。

程式設計師要想讓自己的價值持續增長,有這麼幾個方向可供參考。

(一)選行業

在一個行業內持續積累,對行業的理解到位,積累深厚,你的價值是巨大的。不信你去瀏覽招聘網站上的崗位需求,99%都要求相關行業背景。所以,選擇一個靠譜的、前景好的行業非常重要,只要這個行業能夠不斷髮展、前進,你的積累就是有價值的,你自己就是不斷增值的。

(二)技術

程式設計師,業務積累是屠龍刀,技術積累是倚天劍,兩個都有,那就逢山開路遇水搭橋沒有走不通的路了,你一定是先鋒部隊尖刀兵,到哪裡都具有超強的攻擊性。

技術上最起碼的要求是技術水平和視野對得起年齡,如果有超越年齡的積累和犀利,那就沒話說了,地球人已經阻擋不了你前進的步伐了。

就技術來講,假如你掌握了一門很難又很重要的技術,那單單是這一點,就很有價值。比如你熟悉 Windows 核心或 Android 核心,能夠熟練撰寫各種驅動,那找個月薪五六十K的工作不成問題。再比如你影像處理演算法很牛,再比如你視訊解碼演算法很牛,……像這些特定領域的演算法,我們也叫它技術吧。如果你懂類似的演算法並能實現之,恭喜你,你已經超越了 90% 的程式設計師了,你的重要性和價值將不可估量。

(三)產品意識

做產品也是講感覺的,當然有時我們覺得對產品的把握是產品經理的事兒,這麼講對,也不對。產品經理雖然是不掛銜的 CEO ,但產品的最終實現,是要靠程式設計師的,假如你對產品沒有熱情、沒有感覺,無所謂好無所謂壞,那很難做到出色了。

我有一個很樸素的想法,一個程式設計師,要想做一個不那麼糟糕的產品,一定要有愛,就像天龍八部裡的段譽哥哥,見到美女就愛得要死要活,對每一位妹妹的愛都是發自真心的、都是熾烈的、都是讓人魂牽夢縈的。惟其如此,你才能像張京兆(張敞,曾任京兆尹)為妻子畫眉那樣用心雕琢你的產品,對每一個細節都念茲在茲直到完美。這是講我們程式設計師要愛產品,愛各種各樣的產品,是做出好產品的前提。

你愛你做的產品,打心眼裡希望她好,就有了第一個前提了。那接下來就很容易進入角色了,每做一個產品都會有積累,走心嘛,沒積累才奇怪。慢慢你就會培養出對產品的獨特感覺,形成產品意識,鶴立於程式設計師群裡了。

再羅嗦一點,業務積累是屠龍刀,技術積累是倚天劍,那產品意識就是張無忌了,由他來控制屠龍刀和倚天劍,那就能發揮無上威力了。

公司的招聘要求分析

在現實中,公司招聘程式設計師時,多數時候會提到業務和技術方面的任職要求,我擷取了兩則招聘資訊,貼出來看看:

這是招聘 Android 開發工程師的,職位要求裡的第5點,就是行業業務要求。1、2、3、4都是技術要求了。

再看一個:

這個職位要求很硬很牛逼了,大部分都是技術方面的,不過第6點,依然是行業業務相關的。

其實我比較中意的是一個人是否愛他喜歡他所做的事情,如果你愛,泛愛眾,又是真愛,那你就有了坐著火箭飛行的基礎了,如果沒有這一點,嗯,頂多是做到稱職而已。不過你翻遍招聘網站的招聘需求,這方面的要求都很少見到,原因大概是很難描述、量化,因為它實在是一個軟指標。

結論

我要亮出我的觀點,評說就任人了。

我的結論是:程式設計師的價值與年齡沒有直接關係,價值不會反比於年齡。作為軟體開發人員,自己不要給自己在年齡上設限,很多事情我們沒做成,很多時候我們沒能取得更大的成就,都是因為我們先給自己設定了限制,用這個限制禁錮了自己。

下面這張圖來自 cnbeta 的文章“2014年中國程式設計師調查報告”,他說明了國內程式設計師的年齡分佈情況:

圖1 程式設計師年齡分佈

誰說程式設計師幹不過三十歲呢,圖1表明,30歲以上的程式設計師佔比高達 48.62%,佔整個程式設計師群裡的將近一半。
2015年1月22日,我去參加 Qt 西安開發應用研討會,有一哥們就是老程式設計師,40多了,寶刀正鋒利呢。

王江民30多歲寫軟體,43歲搞出橫掃殺軟市場的江民防毒。

我的老上司,40來歲了寫直播流媒體協議,P2P的,傳輸效率高且穩定。

……

年齡只是一個自然現象,而我們的經驗、認知、能力、心智成熟度,在合理的情況下,都是隨著年齡增長的,廉頗不老,黃忠能戰,只要你走在正確的方向上有值得稱道的積累,緣何不能橫刀立馬顧盼自雄耶。

國外的研究論文和結論

讓我們看一下國外牛人的研究吧:“ Is Programming Knowledge Related To Age?”。這個連結是英文的,pdf 版本,基於 Stack Overflow上的資料分析得出的結論。嫌 E 文難看的,來看箇中文的:“程式設計師越老越博學嗎?”,該文引用了“Is Programming Knowledge Related To Age?”的資料和結論。

“Is Programming Knowledge Related To Age?”這篇論文的結論是:

  • 程式設計師技術能力上升是可以到50歲或60歲的。
  • 老程式設計師在獲取新技術上的能力並不比年輕的程式設計師差。

隨著年齡老去的,是我們的身體,而永葆年輕的,則是我們的心。心不老,青春在,寶刀寒光仍閃耀,依舊斬上將首級於萬千敵陣中如兒戲爾。程式設計師,走自己的路,讓用年齡唱衰我們的人說去吧。

相關文章