程式設計師真的很窮嗎?

池建強的隨想錄發表於2015-09-09

程式設計師很窮,他們要麼是顯得很窮,要麼是真的很窮。

前幾天一位做市場的同事跑過來問,池老師,我有一位朋友,快30了,想轉行寫程式,您覺得有戲嗎?我看了看滿目瘡痍的他說,如果是你就沒戲。

30多歲轉行做程式設計師當然可行,畢竟歷史上存在一些大器晚成的案例,這些經過渲染和修飾的案例給在時間長河中苦苦掙扎的人們帶來些許希望的火光,但那畢竟是火光,一陣風來過,也許就滅了。如果你真的熱愛技術和程式設計,渴望通過自己的程式碼實現別人的想法,或自己的想法,為世界帶來更美好的產品,那麼任何時候學習程式設計都不晚,程式設計給你帶來的好處絕不僅僅限於你的工作領域,關於這一點,你看看李笑來老師就可以了,有時候我覺得,他簡直是個專業的程式設計師,兼產品經理。但是,如果你只是覺得程式設計師掙錢容易,那還是算了吧,因為程式設計師不輕鬆、不浪漫、不被人理解,也許,還很窮。

很多人羨慕程式設計師工作沒幾年就可以拿著看起來不錯的薪水,但是,如果他們在未來的幾年內技術水平沒有突破性的提升,或者缺乏一點靈性和品味,那麼可能在未來很長一段時間內,他們都會保持這個薪資水平,直到有一天,你不得不接受,比自己小五歲或十歲的程式設計師,也拿到了和自己一樣薪酬。不是經常說程式設計師年薪百萬嗎?是啊,那是行業裡的頂級程式設計師,他們為了讓自己的水準達到這樣的要求,經常要付出十年以上刻苦努力和練習,初春,寒冬,清晨,深夜,當你們去歐洲浪的時候,當你們去卡拉 OK 唱的時候,他們都在不停的 Practice,Practice……

大部分程式設計師看起來都很窮,即使是極為成功的程式設計師,如果你沒有看到他的豪華座駕,你也會覺得對面這個帶著眼鏡玩手機的人是個屌絲。程式設計師對外在的東西鮮有追逐,鞋子、衣服,穿著舒服就夠了,所以你會看到熟悉的格子衫,灰T恤,大褲衩,夾角涼鞋和永遠的雙肩揹包,那個包,幾乎是程式設計師的一切……偶爾見個紅色耐克T恤,上書「Just do it」,抬頭一看,哦,原來是羅老師。

不過,你們一定不要被程式設計師們的表象迷惑,他們有時候消費起來非常可怕,下死手,與宅女逛街相比毫不遜色。大部分程式設計師雖然對衣服不感興趣,但是對電子裝置往往缺乏免疫力,女生會花掉2萬元換來一個 LV 包,程式設計師會花掉2萬元買一臺配備了 Retina 5K 螢幕的 iMac,然後雙方都認為對方瘋了。

事情一般是這樣的,你工作了兩年,寫了很多程式碼,伴隨的是沒日沒夜的加班,產品上線了,產品下線了,團隊出發了,團隊解散了,然後你會感到疲憊,生活沒有希望,這樣的日子什麼時候是個頭啊!你看了看破舊的 ThinkPad,對自己說,要不要買個 Mac 試試?然後你就有了一個 Mac,你突然發現了一個新世界,充滿陽光和雨露,原來作業系統可以設計成這樣……於是你覺得每過一段時間就需要陽光和雨露。你開始購買正版軟體,不管多貴。你開始學習移動開發,你發現你需要兩部手機,因為 iOS 和 Android 平臺都值得學習。於是你有了一部 iPhone 和一部 Smartisan T1,後來你又有了 iPad 和 Kindle,然後很多硬體和軟體都升級了,你有了好幾臺 Mac,移動的,臺式的,好幾部手機、平板和電子閱讀器,一代的,二代的,好幾代的。你的女朋友很迷惑(如果你已經有了女朋友),她會問,你買那麼多手機、電腦和其他亂七八糟的東西幹嘛?不都一樣用嘛。你覺得很難解釋,就說:你看這個新款有指紋識別功能,還有這個,從這邊劃入,就可以進行分屏操作……然後你的女朋友白了你一眼,默默的用你的信用卡刷了一個 LV 的包。

事情還沒有結束,Google Glasses 走了,Kinect Box 來了,Oculus VR 還在路上,無人機已經飛起來了。「嗯,聽說噴氣揹包能讓人飛起來?要不要試試」,「我身體不好,去跑步了」。跑步應該需要一套好的裝備才不會受傷,於是你把自己裝配的比專業馬拉松選手還酷,另外,你似乎還需要一塊 Apple Watch。如果這個最初玩 Mac 的程式設計師———你,竟然鬼使神差迷上了單反,那將是一場更大的災難,據說一個徠卡相機要8萬多元,鏡頭就不要再提起……

需求是沒有止境的,就像產品經理的需求一樣。程式設計師們雖然掙得不少,但他們花的也多啊。所以,他們還是很窮,至少是看起來很窮……

另外,程式設計師在心理上也很「窮」,大部分情況下,與行業內其他角色相比,程式設計師地位都不是最高的,待遇不是最好的,連加班都不是最多的。最慘的情況是:哦,程式設計師只是我們實現想法的工具!程式設計師很少一戰成名,當年百度貼吧風頭最勁的時候,人們只知道這個網際網路產品是一個叫做李明遠的年輕人做的,沒人知道前端工程師是誰,後端架構師是誰,即使你通過一己之力完成的技術架構抗住了每天數以億計的流量,那又怎麼樣呢,沒有使用者知道嘛。什麼時候會知道呢?當你去極客邦的 QCon 技術大會上講「構建高併發系統之百度貼吧實戰」的時候,大家才會知道,喔,原來也有你一份功勞呀,然後轉身就去找李明遠簽名去了。

程式設計師比較煩的是半瓶子醋的技術領導,或自以為懂了點技術的產品經理。關於商業模式,關於產品,關於使用者體驗,每個人都可以頭頭是道的說兩句,比如我曾經看到無數的使用者要為錘子手機、App、雲服務、官網、電商提各種建議,還有一些創業失敗的年輕人覺得錘科最大的問題是戰略和商業模式,願意免費為老羅提供戰略諮詢,等等。這都可以理解,但是談到技術,懂就是懂,不懂就是不懂,界線是很明顯的。

有些產品經理與技術人員打交道多年,多少也瞭解了一些技術架構和實現思路,這時候與程式設計師們聊天就要非常小心了。如果你順嘴溜達出一些開源技術和架構名詞,程式設計師們就會圍上來笑嘻嘻的說「哇,你很懂技術嘛」,這時你要趕緊裝作一臉無知的樣子說「我懂個屁啊,也就知道個概念,我特麼連 Hello World 都不會寫」,然後程式設計師們就會放下手裡的板磚,安心去程式設計了。

和程式設計師交流的正確方式是什麼?當一個程式遇到瓶頸的時候,大部分程式設計師會非常無辜的說,現在就是最好的解決方案,沒有其他辦法了。這時候彆著急,拍拍他的肩膀溫和地說,沒事兒,你再想想,肯定有更好的解決辦法。如果你本身就是做技術的,也可以提供一些實現思路供他參考。一般情況下。過一陣他就會喜滋滋的告訴你,I have a better idea!

選擇了一個程式設計師,就去相信他!

最後,程式設計師們還會相互鄙視。文人相輕,程式設計師似乎也是如此。寫彙編的鄙視寫 C 的,寫 C 的鄙視寫 C++的,C++程式設計師鄙視 Java 和 C#,Java 和 C# 程式設計師相互鄙視,寫 Python 的和寫 Ruby 相互鄙視,寫 Scala、JRuby、Clojure 的一起鄙視 Java 程式設計師。寫靜態語言的和寫動態語言的相互鄙視,寫前端的和寫後端的相互鄙視,Vim 程式設計師和 Emacs 程式設計師相互鄙視,然後一起鄙視使用 IDE 的程式設計師。

Go 語言程式設計師鄙視所有其他語言的程式設計師,所有其他語言的程式設計師都鄙視 PHP 程式設計師。PHP 程式設計師說,PHP 是世界上最好的程式語言,因為 Facebook 的祖克伯也這麼說的。

總是,程式設計師之間的鄙視鏈極其複雜,估計得用一個狗屁混沌理論才能描述出來,這能怪誰呢?只能怪我們自己了,誰讓那些技術先賢們發明了這麼多語言和技術框架卻沒有制定出一個美國憲法那樣的規章制度呢?毫無疑問,這個鄙視鏈會繼續持續下去,直到程式設計師這個職業消失的那一天。

程式設計師窮,累,苦逼,加班,可能還不被理解,公司領導甚至不知道你是幹嘛的,一個正常人成為偉大程式設計師的機率估計比飛機失事也高不了多少,那麼,為什麼還有這麼多年輕人前赴後繼加入這個群體呢?我想,是這個時代把程式設計師們推上了風口浪尖,當你看到自己的程式碼奔跑在成千上玩臺伺服器上的時候,當你做的 App 執行在每個人的手機上的時候,你會覺得,一切都是值得的。

我是一個程式設計師,我喜歡這個職業!

寫了這麼多,我想知道,你還想當程式設計師嗎?如果想,可以發郵件給我,我們來聊一聊。

相關文章