先聊聊程式設計師的薪資
社會上很多人都是認為程式設計師高薪不是靠勞動量大(很多行業工作時間不比程式設計師少),也不是靠著科技突破上做出貢獻,很少有解決真正卡脖子的問題。反而是靠著公司的大資料殺熟、各種推薦演算法,各種壟斷抽成,賺取鉅額利潤,因此質疑程式設計師憑什麼拿高薪?
我是一名幹了近20年的軟體工程師了,記得當年在大學畢業的時候就是科班畢業,敢勵志進入軟體行業的人其實不多,很多人選擇了更穩定的安排,而只有自認為自己對計算機技術有濃厚興趣的夥伴們選擇繼續從事程式設計師這個行業。至今我都認為他們和我一樣勇氣可嘉。
其實社會上的這種觀點,我可以理解為“倖存者偏差”吧,把一些比較有網際網路壟斷優勢的大廠拿出來做對比。實際上軟體整個行業有非常多面向不同領域型別的公司,堅守著大量的非常辛苦的程式設計師。
就拿我自己舉例子吧,從業20年來直到今天,都還在學習新技術。請問能有哪一個行業的人,而且是佔絕大部分比例的從業者,每天除了工作就在想著怎麼提高,應對和學習不斷產生的新技術。我相信除了軟體開發行業,幾乎沒有。
作家寫一本書,可以出名,一輩子可以拿來炫耀;作曲家譜一首名曲,可以錄製成曲子傳播在千家萬戶,甚至獲取長久的版權收入。而程式設計師呢,開發出的軟體歸公司,自己的略有成就的專案之作,過上幾年可能就會被新來的程式設計師拿著新的框架替換掉,老程式設計師什麼也留不下。程式設計師的成就都是短暫的,有種苦中行樂的感覺,過後,很快就要去尋找新的成就感,這種無法填滿的成就之壑,事實上就是程式設計師們之苦,更可怕的是大部分的專案做的其實都不怎麼滴,時間越久的專案,維護越越爛,老得程式設計師都不敢直視自己曾經的作品,這個不是程式設計師不想做好,而是軟體的特質就類似新鮮的瓜果,時間久了就會腐爛,必須替換成新鮮的,好聽點這就叫重構,實際上就是2.0重來。
我大概十年前,快30歲那陣,有一次用Eclipse IDE工具開發程式,當時的開發工具列印出來的錯誤日誌,都是紅色的,有一次,我突然對自己的團隊隊友說,我怎麼看白色的東西都是紅色的呢?大概緩了一週多才逐漸好轉,這就是程式設計師拿身體和血汗在投入這份工作,而且我在做技術總監之前的七八年,幾乎眼睛下班都是通紅的。
程式設計師每天都對著電腦,研究程式碼,與電腦為伴,久而久之,與人溝通都存在一定的障礙,逐漸養成的習慣就是說話愛得罪人,其實和社會上很多行業的人比起來,是很吃虧的,但程式設計師總是要生活在這個社會。當然到了專案經理以上的層面,才會逐漸好轉,但是做到專案經理以上,說話也基本上沒有人味了,都是如何討好客戶的客套話,吹噓方案的大話空話,長期要求團隊加班的各種軟硬兼施套話。這就是很多程式設計師一生的軌跡,聽起來挺灰色的,但誰又敢說不是呢。
說到工資,準一線和二線城市拿一萬左右程式設計師大把大把的,別老盯著一線網際網路那幾個大廠,一個頂級大廠擠進去七八萬程式設計師,算是到頭了,的確是給得多,但也得認996福報吧,可中國的程式設計師300-500萬啊,主要分佈在大量的中小公司,這些老闆們口號喊得比天高,爭先成為賈伯斯,誓讓員工狠成狼。可是程式設計師乾的是真的多,給的是真不多。拿一萬左右的工資的程式設計師,放到準一線城市,試問能比平均6-7千多工資的其他行業比起來高出多少,可是就為多出來的一點點,豁出去的可是身體和人生。
再說說加班吧,有很多崗位都會加班,例如醫生,所以不是程式設計師獨有的,我就拿我個人說吧,我記憶中,不被領導或老闆催著不加班的時間,在20年裡大概有1-2年吧!也就是我的人生17-8年都是要去加班的,偶爾是被逼著加班,但大部分情況是,你不加班壓根你就做不完開發任務,目標都是專案需要,專案上線,客戶演示,團隊接力,系統當機維護,試問哪個事情我們程式設計師能說,等上一天再弄也不遲,每個程式設計師自己心裡就驅使自己趕緊解決掉,別給客戶與其他各部門添麻煩。說白了,都是肩上頂著社會資訊化建設的重擔,除了太過分的996,又有幾個人在網際網路上發洩自己的牢騷。
其實說到這塊,我相信很多和我一樣的程式設計師已經扎心了,但是作為一個40歲的老程式設計師,我還是想用經驗提醒年輕的程式設計師,等你到了35歲往上,做程式設計師就是一件非常艱苦的事情,身體、家庭、貸款、高強度任務都是捆在你的身上,而很多企業又漸漸在遠離大齡的你,從現在開始,打牢底子,35歲之後開始朝專業的方向學習提升,多留意能為自己留下些什麼有價值的儲備,最好成為一個領域的專家,千萬不要變成一個20歲程式設計師的替代品,會很窩囊,這就是你的未來的目標。試問這樣的結局容易嗎?這點工資到底是能養老,還是積累了什麼值錢的本事夠吃一輩子。我想都沒有吧,對於程式設計師只有不停地學習、奮鬥和成長,成為一名名副其實有硬功夫的專家,才是最好的歸宿,但是又有幾人可以呢?
最後我再說說技術卡脖子的事情,卡脖子的問題,不僅僅是IT一個領域,我們落後西方100年,這叫什麼概念,印度也是IT起家,他們解決什麼卡脖子問題了?印度程式設計師寫的程式,波音飛機都掉下來,所以先別想我們能替代多少卡脖子的問題,先想想我們能不能現有的技術應用好,這就是大本事,什麼事情都是一步步做的,飯也是一口口吃的。想想歐美的工程師享受著假日,下午茶,企業收著專利過著美滋滋的生活,而我們何嘗不羨慕,但是我們什麼時候過著糜費時間的生活,我們程式設計師加班堅持的工作,不斷學習提升,是不是也可以引用這樣一句話:哪有什麼歲月靜好,不過是有人替你負重前行。
再聊聊愛跳槽的事
越跳槽不就意味著變老了,結果收入還增加了 是不是意味著程式設計師也是越老越吃香呢?
程式設計師愛跳槽,其實這是個很搞笑的事,為什麼呢?主要是現在無論大小科技公司HR很關心員工跳槽的頻率,當然年齡越大的程式設計師,跳槽越多啊!非要和剛出道的程式設計師拉平對比,還是智商稅沒交夠。
現在公司只在應聘者身上挑毛病,怎麼不看看公司自己的問題呢?
我經歷過的好幾家小公司,雖然不能代表整個軟體行業小公司的現狀,至少也能代表個大半吧。都是什麼問題呢?
日子好的時候,使勁招人,日子不好的時候就開始搞優化,優化的門道多種多樣,總之一句話,用不賠錢的方式,將員工遣返回社會。
一個企業好的時候往往也就是起步的頭兩年,有投資有專案,然後養了十幾個甚至幾十個工程師,接著進入爬坡階段,這就是所謂公司上升期,這時候,老闆的見識和管理水平就淋漓盡致的體現出來了,原始創業團隊你爭我斗的陰暗面也開始逐漸暴露。
這在國內軟體公司的確是很有意思的一件事情,有句話叫兔死狗烹,這個行業急功近利到主子們都等不到逮著兔子那一刻,就開始為權力,份額,預期互相爭鬥了,最後是兔子也沒逮到,身邊的忠犬也沒了。
隨著資本花乾花淨,老專案問題尾大不掉,公司就開始出現頹勢,很快就滑下來,要不關門大吉,要不好死不如賴活著,公司優化後剩下四五個原始團隊成員,或者比較聽話的就繼續養著。
那麼我就請問各個公司的大老闆和HR們,國內現狀就是一大堆要死不活的公司老是這麼搞,你們讓被折騰來又折騰去的程式設計師的簡歷該怎麼寫?
好!我們們繼續聊公司開始滑坡了咋辦,這種情況不是公司員工怎麼辦,而是公司接下來能不能活? 高層從不在自身找問題,而是員工天天被HR配合老闆用各種他媽的管理,制度,績效,加班,開會,小報告,挖坑的手段噁心著,以為是在為企業優化團隊,往往先走的都是優秀的,最後還搞得好像離職的員工都他媽為了錢不忠心。
這就是很多小企業的通病。大點的軟體公司也呆過,內部鬥爭熱鬧得很,要跟不對領導,人員流動起來都是整團隊建制的離開。
大多數時候真不是程式設計師為了單純漲薪而跳槽,儘管這樣的人也不少,但只要薪資說得過去,或者,老闆給個差不多的漲薪預期來挽留,基本都能留下,因此漲薪這不是主因。我入行二十年,做管理也有成十年,絕大多數程式設計師都是厚道的。
實際上大多數情況都是被前公司的一些氛圍噁心走的,跳槽第一還是謀求更好的發展,但往往是一個火坑跳到另一個而已,因為大家的管理水平和人才認識水平都差不多,更何況公司管事的大多數都不是技術專業的,這就是現實情況。
只要公司一有點不行的跡象,那麼內部管理運動就開始整人了,企業才不會關心哪個是優秀程式設計師,對於捲成這樣子的行業,資本和成本才是唯一考慮的因素。
程式設計師主要作用就是用來背鍋,選擇走人,背企業人才流失不行的鍋,選擇留著,背企業成本支出太大的鍋。
因此這個社會要問程式設計師為什麼越跳槽收入越高?這只是頭一二十年的風光,照射出當下內卷的無奈,更折射出企業種種低下的管理水平而已。
這行業就是20多歲到30歲拿身體玩命換錢,35歲開始就比看誰更焦慮,40歲以後就認命吧,因為你已經被社會從程式設計師隊伍除名了,有人就會說,看,我都四十多,咋還在寫程式啊? 想想沒有登記在冊的企業打工者是個什麼身份。聽君一句話——到了35歲的程式設計師,一定要開始謀求事業的第二曲線。
最後再聊一句35歲大齡程式設計師事業的第二曲線怎麼走?
(1)好好琢磨網際網路的玩法,展示個人突出的能力(天生我材必有用),讓更多的人看到你。
(2)要逐漸成為自己擅長領域方面的專家,這時候你不應該只是個被企業揮來揮去的棒槌,而需要是個能鑽透人生天花板的鑽頭!
可以閱讀另一篇關於分散式和大資料技術的詳細文章: