37歲碼農(nóng)現(xiàn)身說法:大齡程序員找工作
前幾天突然接到dk的電話,要和我聊聊天。
他說他們部門調(diào)整,雖然他留了下來,但還是非常焦慮。人無遠慮必有近憂,他這次被刺激到了,想提高一下自己,以免下次再有類似的心驚肉跳。但怎么提高呢?
程序員考慮的當然是技術(shù),但現(xiàn)在真不知道學什么了:干了三四年的開發(fā),手頭的工作馬馬虎虎都沒什么問題了。就算有問題,也是業(yè)務(wù)邏輯上的問題,系統(tǒng)太復雜,吃不透;或者系統(tǒng)里一些過時的/生僻的技術(shù),真心覺得沒必要花時間花精力去研究,能對付就行了,是不是?反正下家單位99.99%的幾率是不會用到這些東西的的。
那么就是一些新技術(shù)了。新技術(shù)雜得很,不知道學什么,框架類庫啥的其實沒什么技術(shù)含量,一兩個星期就可以上手,上手了之后呢?往深里學?其實和老舊技術(shù)一樣的問題,誰知道下一份工作用不用得上呢!而且沒趣,大概是因為沒有挑戰(zhàn)性吧,反正就那個樣,還能咋的?
一直聊到這里,我都非常理解。我這個十年的老碼農(nóng),體會比他還深。其實稍微干上一些年頭,就是這個樣子,看起來像是“學習熱情下降”“懶得學習”,但本質(zhì)上呢,兩個原因:
1、本身的技能增強,能夠應(yīng)付日常工作,沒有剛?cè)胄袝r那么大的壓力了。
2、學習的邊際效益遞減,所以開始考慮投資/收益比了。
剛?cè)胄械臅r候,技術(shù)一丁點的進步,都能帶來非常大的成就感,至少能少挨點罵,是不是?積累到一定時候,就可以跳個槽漲點工資啥的。但三五年過后,我已經(jīng)會了Bootstrap+JQuery+ASP.NET+Autofac+AutoMapper+NHibernate+mysql,再會一個Entity Framework或者Dapper又有多大意義呢?真要用的話,也就一兩周時間的問題。你說找工作的時候,會因為你只會NHibernate,沒用過Entity Framework就直接把你pass掉?這種面試官確實有,但屬于腦子進水的那種,不多,碰到了算是運氣。再說了,真是這種leader,你在他手下待著有意思么?
但接著dk問了我這么一個問題:
要不要像我一樣去考個軟考,補一補算法啊原理之類的東西?
哎呀,這個問題可把我給難住了。了解我的同學都知道,我不光是考過軟考,還寫了一篇讓人熱血澎湃的文章,自吹自擂了一番,什么“十年磨一劍,重劍已經(jīng)成型”。但實際上呢,這些年我回頭看看,軟考里面,至少60%的知識是沒啥用的——我說的是“至少”。包括被吹上天的《數(shù)據(jù)結(jié)構(gòu)和算法》、《操作系統(tǒng)》,以及《編譯原理》,據(jù)說這被稱之為程序員的三大浪漫?浪漫確實是浪漫,但既然是浪漫,換言之就是不實用。
我知道我這個觀點有很多同學無法接受,估計兩個原因:一是學校老師長期的灌輸,比如“編程=數(shù)據(jù)結(jié)構(gòu)+算法”;二是似是而非的直覺,“這玩意這么難,學會了應(yīng)該很厲害吧”,大概這就是所謂的不明覺厲啦?
中國的大學教育水平我就懶得說了,說了無非也就是拉仇恨。我就說說這個“難”和“賺錢”。數(shù)據(jù)結(jié)構(gòu)和算法肯定有點難——對于大多數(shù)正常人類而言,但難就一定掙錢嗎?比如計算機最核心的技術(shù)是什么?是不是芯片?在什么科學院研究所里搞芯片的那些人掙的錢有BAT里面的碼農(nóng)掙得多?別說和碼農(nóng)比了,可能連UI連產(chǎn)品經(jīng)理都不過。
我還想引申一點,難不一定賺錢,苦也一樣。我當年做裝修的時候,問我一個長輩:“你們喲,就這樣玩兒一樣的就把錢掙了,而且還是掙大錢。為什么我這么苦這么累都掙不到錢?”他說了一句話:“賺錢不費力,費力不賺錢”。
這么多年過去了,這話我還記得很清楚,因為我一直都在反復咀嚼:太特么有道理了!!!
不說自己創(chuàng)業(yè),就說打工。工資就一定和能力(我就不說“技術(shù)”了,技術(shù)只是“能力”的一部分)成正比么?不要那么太天真,真的。那只是一種理想,甚至連理想都不算——不知道多少人希望自己的工資超過自己的能力,別人的能力超過別人的工資。
35歲以后的程序員去哪兒了
我最近也在找工作,沒辦法,一起幫要盈利不知道要等到猴年馬月,我得先找點事做養(yǎng)活自己。很多同學好奇“35歲以后的程序員”到哪去了?能不能找到工作?是不是只能跳樓……借這個機會,現(xiàn)身說法,給大家匯報一下吧。
我在重慶,工作機會呢,確實不多,我記得是從國慶過后就開始刷新簡歷開始找工作。自己也隨便投了一些簡歷,篩選條件大致是:十年工作經(jīng)驗或月薪20K以上,要求的Title是CTO或者技術(shù)合伙人。面試了三家,其中一家明顯不靠譜的創(chuàng)業(yè)公司就不說了,另外兩家都沒成。
其中一家技術(shù)很對口,.NET方向的,號稱在美國和加拿大有研發(fā)中心,人力總監(jiān)和我聊了很久,但還要他們的CTO看看,我有點懵,回頭才發(fā)現(xiàn)他們是招developer這個級別的,然后我就知道沒戲了。另外一家是互聯(lián)網(wǎng)公司,職位倒是CTO,但要求的語言是JAVA,看在他們月薪50K的份上,去看了看,當然我知道在重慶基本上是不可能拿這么高的。他們公司明顯有問題,什么都在招:CTO在招,CEO也在招,銷售總監(jiān)也在招……所以我提了個方案,先試崗一個星期看看,結(jié)果就沒有結(jié)果了,呵呵。
經(jīng)常有同學問工作“好不好”找,這個我真沒法回答,因為不知道“好不好”怎么界定。我個人覺得,還將就吧,畢竟是在重慶,在獵聘網(wǎng)上,我把期望工作地點放寬到成都/上海,現(xiàn)在已經(jīng)收到很多邀請了——但基本上都是JAVA,不到萬不得已,我是不愿意轉(zhuǎn)JAVA的。
.Net VS Java
這里說一下.NET和JAVA的問題,很多同學很關(guān)心這個。我有一種直覺,我找到的工作肯定還是歐美背景的,呵呵。其實我很想去國內(nèi)的互聯(lián)網(wǎng)公司看一看,但好像沒這種機會了。.NET開始估計和國內(nèi)互聯(lián)網(wǎng)企業(yè)絕緣了?大致來說,我現(xiàn)在知道的,.NET開發(fā)的三個去處:
- 歐美企業(yè)。用.NET開發(fā)的很多,我不確定是為什么,知識猜測:.NET不免費但省人工,歐美的人工很高,所以企業(yè)寧愿選擇給微軟的服務(wù)費。當然,現(xiàn)在.NET core出來以后他們就更開心了。
- 傳統(tǒng)生產(chǎn)企業(yè)。做一些內(nèi)部系統(tǒng),比如OA啥的,和windows、office緊密相連,用慣了微軟這一套,技術(shù)棧自然而然的就是.NET了。
- 其他中小型外包公司。技術(shù)實力不是很強,用.NET現(xiàn)成的東西成本低好上手。要么就是不擔心盜版不盜版的問題,比如800元建站的那種;要么就是給政府醫(yī)院做點項目,windows的授權(quán)費啥的反正沒人心痛……
舒服的話,當然是第1種了,但是呢,要英語好。
英語這一條,可能要難住很多人。比如我之前歐美企業(yè)的面試,就是從國外打過來的長途電話,純英文交流??赡芗词故菤W美外資企業(yè),.NET開發(fā)的工資還是比不過一線互聯(lián)網(wǎng)企業(yè)(JAVA啥的)。但是歐美外資企業(yè)講規(guī)矩人性化,我干.NET十多年了,真就沒怎么加過班,996行軍床啥的想起來就怕,真的。
所以我給dk的建議,實在沒學的,學學英語吧,O(∩_∩)O哈哈~
說實話,我覺得學英語比學《數(shù)據(jù)結(jié)構(gòu)和算法》難多了……
人脈
其實還有很多很難很難的東西,比如人脈。
我現(xiàn)在缺的就是人脈。
想想我之前還自己投簡歷,真的是太low了。在一個行當里已經(jīng)做了十年,還需要自己投簡歷,確實掉價了。正常的渠道,要么是獵頭,要么是朋友推薦。而無論哪種方式,技術(shù)的作用其實很小的。比如我應(yīng)聘一個CTO的職位,我就是公司里面技術(shù)最牛的人物了,誰來面試我的技術(shù)?換一個方式想一想,你現(xiàn)在要請一個律師,你怎么判斷這個律師的業(yè)務(wù)水平?你是不是只能聽朋友介紹,相信你的朋友;或者相信你的直覺,直覺從哪里來?這個律師在什么所,開什么車,穿著打扮談吐氣質(zhì)……但這些東西真的能證明這個律師的業(yè)務(wù)水平嗎?
所以,公司的CTO技術(shù)還沒你強,這太正常不過了。人家坐上那個位置,靠的不是技術(shù),靠的是老板對他的信任。一點都不要抱怨,這很公平。你經(jīng)歷越多,就越能明白:信任,其實是這個世上最寶貴的東西!能讓別人相信你,能讓更多的人相信你,讓更重要的人相信你,這就是本身。就像一起幫,要是大家都相信它使用它;或者某個風投的大V相信它愿意不遺余力的給它投錢,這不就成了嗎?飛哥哪里還需要慘兮兮的找工作?
而且,如果你的技術(shù)真比CTO還強,這是一件很幸運的事。要么是這個CTO有胸懷,要么是這個公司有制度,你沒有事先就被剔出去。以前我講過,找工作靠運氣,這份offer你沒拿到,既可能是你技術(shù)差,也可能是你技術(shù)太強。你有沒有想到這一點?面試官一看簡歷,把他招進來,不是撬我的位置么?稍稍用點手段,就把你pass了。這才是一個企業(yè)招聘的常態(tài),管理者總是傾向于(有意無意的)招聘比他稍弱的人——有一個專門的術(shù)語描述這種現(xiàn)象的。隨著企業(yè)的發(fā)展,新來的人只會越來越弱,對企業(yè)的發(fā)展來說是很不利的。要不然我為什么要自己去學編程?
功夫在詩外
好吧,上面兩段聊得有點跑題了。和dk后面又聊了一些,大概都是這個意思:功夫在詩外。決定你十年之后職位和薪水的,更多的是技術(shù)以外的東西。除了上面說的人脈,還包括你的名望、這十年的履歷,以及漸漸成型的言談舉止,等等。但這些東西,如何通過“刻意的練習”(新學的詞)來獲得——抱歉,我沒準備割韭菜,說實話吧,主要還是靠運氣。
這個答案可能很多人也接受不了。我自己都覺得有些暮氣,但我真覺得這是最接近真相的一個答案。年輕人不相信命,就像YY小說里叫囂的那樣“我命在我不在天”!但你出門撿個燒火棍就是仙器,隨便領(lǐng)個寵物回來就是神獸,烤只兔子都能引來世外高人,外加什么丹藥秘籍……你確定你不過只是命好?越是上了年紀的人越容易相信命,因為見過了太多光怪陸離的人生,不可理喻。
好吧,上了年紀的人也容易話癆和跑題。
要不就先這樣吧?很遺憾沒能給你什么具體的建議,因為《我的成功可以復制》之類的已經(jīng)被證明是騙人的。成功不能復制,其實失敗也不一定。、人生經(jīng)驗這些東西,世易時移,以前是對的,現(xiàn)在可能就錯了;現(xiàn)在是錯的,以后又可能是對的。但這樣的話,我就沒什么話可說了?
十年編程路的“遺憾”
好在文字可以“博大精深”,以下幾點,算是我這十年編程之路的“遺憾”吧。姑妄聽之:
1、動手太晚。一起幫其實在5年前,甚至8年前就可以弄出來,當然可能是用現(xiàn)在看來非常“弱”的技術(shù),比如就簡簡單單的ASP.NET WebForm+ADO.NET,不像現(xiàn)在什么MVC/Nhibernate,依賴注入三層架構(gòu)……但是,技術(shù)永遠沒有止境,商機一旦錯過就永遠錯過了!很多想法,我早就有了,但一直拖著,拖到現(xiàn)在成了“大路貨”,而且七八年前的互聯(lián)網(wǎng)環(huán)境,和現(xiàn)在完全不一樣,至少那時候流量要便宜好多好多啊!
2、沒有廣交朋友?,F(xiàn)在我想找個美工找個推廣——尤其是推廣人才,完全沒地方下手。人才市場上的招聘,我一點信心都沒有??赡苁亲约好嬖嚨臅r候說的假話太多,所以對求職者的話天然懷疑,而我自己又沒有鑒別能力,很擔心把千里馬當驢子給pass掉,招了一頭披著羊皮的狼進來。還有其他一些問題,比如融資,怎么找風投,我完全是兩眼一抹黑,找不到人可以幫我一把。朋友多了路好走,我這孤家寡人的,唉!
以上兩條,本質(zhì)上都是因為“在技術(shù)上鉆研太深”,把太多精力花在了技術(shù)上,沒能兼顧或者平衡其他方面。想想真的是……程序員里的一股泥石流,是吧?鉆技術(shù)還鉆錯了?!
3、究竟是創(chuàng)業(yè)還是打工,沒有下定決心,并一直堅持??赡苁且驗閯?chuàng)業(yè)失敗的陰影,或者家人的影響和壓力,這些年一直在搖擺。由于目標不明確不堅定,所以很多時候就只能隨波逐流了。離開上?;刂貞c是一個分水嶺,在此之前,我怎么鉆技術(shù)都不為過,因為那時候技術(shù)就是我的短板。但之后,我回重慶的時候,技術(shù)上我已經(jīng)將就了?;刂貞c一個重要的原因是想在重慶創(chuàng)業(yè),便宜。但現(xiàn)在創(chuàng)業(yè)不成,在重慶這些年就虧了;包括在HP,如果是鐵了心的要打工為生,早就該跳槽了,在那里面純粹就是虛度光陰;甚至現(xiàn)在也一樣,究竟是咬牙堅持下去,堅決不打工,還是找個工作先……我心里真的沒底。