程序人生的四個象限和兩條主線

>>>  小城故事吳儂軟語溫婉人心的力量  >>> 簡體     傳統

Screen Shot 2013-12-06 at 13.00.23

  

  為什么我們要自己做職業生涯規劃?記得電影《社交網絡》里邊,CFO 同學在知道自己股權被稀釋時說了一句話,“我以為那些律師是我的律師。”

  其實我們大多數人對 HR 幾乎都存在類似的誤解—— 你以為她是你的 HR,其實她只是公司的 HR。她們 care 的是如何編個理由用老板給的那點小錢留住一個高性價比的人才,而不是真正有助于你發展的職業路線圖。昨天還含情脈脈和你討論人生的知心姐姐明天就可能變成拿著勞動合同逼你主動離職的兇婆娘。和人性無關——這就是她們的工作,越專業的 HR 越擅長。

  所以,你要自己來做這件事情。另外還有一個原因,你該去什么樣的公司、做什么樣的事情、拿多少錢,都取決于一個問題:你想成為一個什么樣的人。工作只是人生的一部分,是用來支撐你人生價值的核心框架之一。在你自己沒有想明白的時候,沒有人能幫你。這就是為什么獵頭基本只談錢——他們沒空去和客戶討論人生的意義。

  一 

  我曾花了很長的時間去思考人生的意義,最終發現其實人生本來沒有意義,意義都是我們賦予它的。

  在創業做人才服務后,我開始和很多的程序員聊天,開始去了解他們的現狀和他們對于自己職業的 RoadMap。我發現技術人員的職業生涯形態并不是千變萬化的,絕大多數都大同小異,可以用四個象限和兩條主線概括清楚。雖然我無法代替你去定義人生的意義,但是我可以和大家分享下各種職業規劃下的人生都是什么樣子的。

  當然,這些想法只是我總結出來的東西,未必正確、更不權威,大體是一些自以為是的最佳實踐。如果你覺得有用,就把它分享給更多的程序員;如果你覺得無趣,就無視掉吧,畢竟我也只能從自己的視角來討論這個事情。

  

  寫《窮爸爸富爸爸》的那個胖子——羅伯特清崎,從現金流向將人類分到了四個象限,從而總結出來了這么一張圖。

Screen Shot 2013-12-06 at 13.00.31

  你也許已經看過,但這次我會從程序員的角度來進行解讀。

  E象限

  E 象限是雇員象限,絕大多數程序員都在這個象限里邊。這里是風險最小的地方,只要你準時上下班別一個 SQL 把公司的數據庫 Drop 掉,基本都能每月領到應得的銀子。這里本應該是程序員們的天堂,因為比起改變世界,他們更多的只是很單純的喜歡寫代碼。但現實很殘酷,北上廣的房價高不可攀。你可以不在乎房子,你女朋友能不在乎嗎?你女朋友不在乎,她媽能不在乎嗎?再考慮到將來小孩上學之類,只要你還打算留下來,房子其實還是必需品。

  在E象限要低風險的搞定房子,只有一個攻略:靠股票和期權。找一家上市公司,或者即將要上市的公司,在里邊成為核心員工,再待上幾年,就能拿到一定數量的股票或期權。如果運氣好,變賣掉這些東西,可以有百萬級的收益。前幾年這些錢還可以買房子,現在大概只能交首付了。

  S象限

  E 象限的整體薪資是有天花板的,很多公司總監的月薪也就 3 萬到 5 萬,扣掉稅和每月花銷,其實攢不了太多錢。所以有一部分人就選擇了S象限——自由職業者和小企業主的領域。

  S 象限的魅力在于你的收益不再完全由你的勞動來獲得,你可以開始雇人了。比方說,你可以開一個外包公司,給微博的粉絲服務平臺做應用。面向企業的業務一般難在拿到單子,而利潤是很高的,一個項目上百萬完全不算大,之前有人開玩笑說這些公司一年一個單子就夠了、兩個單子就賺了。

  在S象限要活得舒服還是有技巧的:如果做外包,一定要有一個不錯的客戶渠道;依賴于大平臺的項目最好能花點錢成為平臺的合作伙伴;建站也是 Web 程序員們做得多的方向,現在可以順便把移動 APP 也給做了,很多簡單需求用 HTML5 打個包就能賣幾萬塊錢。

  如果你人脈不好,好吧,程序員人脈好的其實很少,那么就只能用免費+收費模式了。首先把你要做的業務中標準化的部分開發成產品(如 CMS)在網絡上免費傳播,而其中需要定制的部分就可以收費了。開源和免費的 Web 產品很多,但同質化嚴重,很少有細分市場的產品,用心定位的話,養活一個小公司綽綽有余的。

  S 象限還有一種很悠閑的活法,那就是逃離北上廣、回歸大自然。去一個風景優美空氣清新的二三線城市,雇三五個人(當然就你自己也行)開一個小工作室,給美國人寫 iOS 和 Android 應用。既沒有房價的壓力,還能發著人民幣掙美金,貌似成都高新區還免稅。

   B象限

  按羅伯特他親戚的定義,B象限本來是大企業主的,那種員工超過 500 人的。不過在互聯網領域這個定義不靠譜,我更樂意把它看成是上市公司和為了上市的創業公司的象限。

  同樣是開公司,B象限的玩法和S象限不同,它是以規模化為前提的。天使、種子、VC、上市和出售是這個象限的關鍵詞。

  很少有技術人員適合獨立創業,不是說你能力不夠,而是很多東西你都沒接觸過,需要補很多課。之前創業成本比較高,現在有了微博和微信這些開放平臺、有了 App Store 和 Google Play 這些開放市場,技術人員創業也開始有了一點的優勢:自己做個小產品,不停的快速失敗,直到成功。說得更直白一點就是你找業余時間開發一個商業應用,放到市場上去賣試試,讓客戶罵試試。等你經過了共享軟件的洗禮,你基本上就知道做生意是怎么一回事了。

  上帝其實挺公平的,他還為程序員們準備了另外一條低風險的捷徑——上市公司或者快要上市公司的 CTO。在這里要和大家強調一點,同樣是 CTO 職位,初創團隊的 CTO 和相對成熟公司的 CTO 差別是非常大的。

  A 輪(不一定精確,大致如此)及以前的公司,主要在尋找商業模式,會頻繁的變更需求,對開發速度要求更高,這時候 CTO 只要能敏捷的開發產品就 OK;B輪以后的公司,著力于規模化,會有大量的推廣,可能在某些時間點遭遇高并發,同時技術人員、設備會迅速增加,這時候 CTO 需要考慮業務的高可用、還要能處理好團隊、資源的管理工作。如果原來的 CTO 沒有大型互聯網公司的背景,往往很難做好這些事情,所以一般會考慮從大公司去挖一個。

  如果你的規劃足夠好,是可以從小公司到大公司再即將上市的公司,加薪升職迎娶白富美出任 CTO 成為人生贏家的,這個等下我們還會具體討論。

  I象限

  這個土豪和高富帥的象限我還沒有待過,所以不多講。大體是錢多得沒處花的人通過投資來保證資產增值的地方。所謂的財務自由(就是一直不干活,錢也夠你花),就是通過進入這個象限來實現的。投資未必都是技術活,直接銀行存個定期也算是投資,如果你錢夠多的話,也能財務自由。對了,投行的投資經理是E象限的,他們其實是雇員。

  

  當你在上邊四個象限里選好了想要的人生區間后,就要設計一個可行的 RoadMap 來實現它。但既然你都讀到這里了,大概既沒有一個I象限的親爹、也沒有一個I象限的干爹,所以唯一可以推動你前進的,只能是自身的成長。

  技術人員的成長路徑主要就分兩條,技術線和管理線。總體來講,選技術線的同學要選好技術方向;而選管理線的同學要把握好節奏。

  技術線

  這里的技術線是純技術路線,是專家方向,做到最后 title 應該是首席科學家、首席架構師或者首席技術顧問之類。如果你對某個方向的技術非常感興趣,又不喜歡做項目、團隊管理工作,那么技術線就是不錯的選擇。

  選技術線的同學一定要選對技術方向,因為你會在自己選擇的這個細分市場里投入三年、五年、甚至十年的時間。

  和大家講講我自己的經歷。我是 2002 年開始學習 PHP 的,當時 ASP 非常流行,而我只是一個計算機系的學生,并不具備對行業趨勢的判斷能力,只是因為 ASP 太受歡迎,以至于圖書館的書都被借完了,我只好借了一本放在旁邊的 PHP。

  于是在大學時我用 PHP 寫了很多開源項目:留言板、相冊、CMS;靠這些東西得到了一家建站公司的兼職工作,除了把學費掙回來以外,還輕松進入新浪實習。到新浪剛過了幾個月,受雅虎影響,新浪也全面轉向了 PHP——而我正好是我們組最懂 PHP 的。你可以想象接下來我是多么如魚得水,我和我的小伙伴們用 PHP 寫完一個人才項目后,又用 PHP 重寫了 PV 近億的手機新浪網發布系統,一切都風調雨順有驚無險,以至于后來去另一家公司面試時,面試官問我經歷過最失敗的項目時,我完全答不出來。

  十年時間過去了,PHP 依然如日中天,用我十年前學習的 PHP 技能,依然可以在一流互聯網公司找到一份不錯的工作,而 ASP——現在誰還知道 ASP 是什么?

  好了,我無意來仇恨,其實我只是想說同樣是一門語言,它的投入產出比是非常不同的。選擇技術方向時一定要謹慎。

  那么,怎么選擇技術方向呢?我給兩個建議。

  學會觀察技術潮流

  有一本老外寫的書里邊講,如果你要知道什么語言流行,就去看看技術 Guru 們都在用什么。這話固然不錯,但知其然不知其所以然并不是件好事。

  從根源上講,一個技術是否流行,和人們使用技術的方式密切相關。PHP 能大規模流行,并不是因為它的語法好看,而是因為人們使用技術的方式從單機轉向了網絡,而 PHP 正好是所有語言里邊最專注于 Web 的。蘋果手機大規模流行后,Objective-C 的使用量開始極速上升。在很多程序員眼里 OC 的語法完全是異端,但這絲毫沒有影響他們用異端語言大把掙錢。

  仔細觀察下周圍,現在人類(是的,普通人類而不是其他程序員)是怎么使用技術的?很多人晚上回家已經不開電腦了,他們用電視盒看電視,用平板玩游戲,用手機吐槽。而這些設備很多都是 Android 系統,那么你覺得 Andriod 程序員會便宜嗎?

  由于有了多個設備,個人的數據需要在多個設備之間進行同步、分散到各處的數據也需要統一管理,所以云計算尤其是云存儲的需求會凸現出來。

  知道了多屏合一以及 APP 流行的背景,你還會覺得現在投入 PHP 會是一個好選擇嗎?我們來分析下。PHP 最大的優勢在于它的膠水特性——簡單快速的把 HTML 和業務數據粘在一起然后顯示出來。如果只有瀏覽器,那么 PHP 還可以通過響應式設計的方式來兼容移動設備。但是當我們有了手機 APP 的時候,服務器就必然需要 API 了。換句話說,多屏合一其實是要求數據和顯示分離的——這不是 PHP 最擅長的,單純寫 API 接口的話,無論是 NodeJS 還是 Go 都更具優勢。

  當然,作為 PHP 的鐵桿粉絲,我要說明,PHP 也有很多強化 API 性能的項目,比如 Yar,O+。這些東西讓 PHP 在全平臺時代獲得了新的競爭資本,具體的大家可以去看看鳥哥在今年 infoQ 大會上的 PPT。http://vdisk.weibo.com/s/A0GI9rYhWVk6

  投資新興市場和細分市場

  這是第二個建議。如果把選擇一門技術當做一個投資的話,新興市場和細分市場是特別值得留意的。

  新興市場對程序員來說,就是一種新的語言、一個新的平臺、一套新的框架。新興市場因為剛剛興起,所以幾乎所有人都在同一個起跑線,特別適合后進者。我認識從一個 2011 年開始學習 iOS 開發的同學,他能力中等,但現在已經算是很資深的 iOS 工程師了,月薪超過 2 萬;而如果他那時選擇去學習 PHP,那他現在只能算個初級程序員。

  并非只有一個平臺的興起才有機會,很多框架技術也會帶來機會。比如說 Cocos2d Javascript 版。以前開發游戲需要學習 OC 或者 Java,而 Cocos2d Javascript 版本的出現,讓你可以用純 JS 同時開發一套運行在瀏覽器、iOS 和 Android 平臺上的游戲——不用改一行代碼,由于是把 JS 解析后直接扔給 OpenGL 運行,在手機上性能也很不錯。這對 JS 工程師來講,就是一個全新的、可以進入游戲行業的機會。

  如果你只能進入一個成熟市場,那么記得給自己確立一個細分的定位。前幾天國內知名的漏洞報告平臺烏云招聘 PHP 開發工程師,職位薪資不是很高,但是我覺得是一個很不錯的機會。烏云平臺每天被攻擊一百多次, 在烏云工作幾個月以后,你就能寫出來可能是國內最安全的 PHP 代碼,如果再適時的分享下你在烏云工作的經驗教訓,一個專注于安全的 PHP 專家就躍然紙上了。這就是細分市場,比你懂安全的沒你懂 PHP、比你懂 PHP 的沒你懂安全。

  技術線屬于那些賴得住寂寞,還得了房貸,喜歡風險最低化的同學。在自身技術實力不錯,專攻的技術方向還未衰落的情況下,踏踏實實熬個五到十年,還是可以有車有房的。如果中間遇到公司上市、出售,那么時間可能更短。

  管理線

  用玩游戲來打比方的話,技術線比較單一,在同一個地方不停的打怪就好了;而管理線則有相對復雜的劇情。技術管理雖然有技術兩個字,但更多的是和人相關的管理工作,所以在這條線上,職業邏輯也更不正常(在 HR 看來可能是更正常)一些——title 和資歷很重要。

  一個只在小公司上過班的 PHP 程序員,不管他能力有多好,是不可能直接成為一家 500 人規模還有半年就上市的企業的 CTO 的。即使 CEO 非常相信你的能力,他也需要拿出讓投資人和團隊其他人信服的證據,很顯然一個大型互聯網公司的技術總監職位更容易服眾。所以別去相信那些沒開過公司沒當過高管或者就是別有居心的人說的,title 很重要,它標記了你做過什么樣的事、有怎么樣的成績。雖然它只能證明你的過去,但我們其實都是從別人的過去去判讀一個人的將來的。

  不想當 CTO 的程序員不是好項目經理,所以庸俗的講,管理線其實就是一個不斷升級自己的 title,直到 CTO 的游戲,它有點像某些排序算法的動畫。當然,隨著 title 越來越高,管理的人和資源就越多,對溝通能力、管理能力的要求也越高。

  在稍微扁平一點的互聯網公司,職位分布大概是這樣的:工程師 – 技術主管/技術經理/項目經理 -總監 – CTO。和技術線不同,管理線每一次升級除了能力,還需要機遇的。因為越是高級的管理職位就越少,如果你遇到一位年富力強又對公司衷心耿耿的直接上級,那這條線基本就被堵住了。

  好在我們生活的這個年代換公司比換衣裳還容易,所以我們可以通過跳槽來調節。除了可以跳到相同水平但是發展更好的公司外,也可以去稍微低一級的公司,這樣你的 title(還有薪資)就可以先調上來,等這家公司發展起來,你的價值就增加了。

  跳槽的時間間隔要把握好,一般兩到三年為宜;不要太頻繁,否則會讓人對你的穩定性產生懷疑。每一次跳槽要設定好自己想要得到的空間、資源、薪資和 title。對去創業公司的同學多說一句,雖然我不想承認,但的確 99% 的創業公司都會失敗的,不過公司的失敗未必是你的失敗,你只要確保在每一家公司都能得到成長,就可以踩著河里的竹竿逆流而上。

  寫到這里連我自己都覺得有些勢利了,但大部分公司和員工本身就是赤裸裸的利用關系,你不替自己打算是沒人幫你的,老實也未必能有好結果。當年有個和我一起入職的同學,因為是應屆,所以月薪只有 3k,她一直勤勤懇懇的工作了四年,期望能靠自己的努力得到認可,但最后薪水也只有 7k,遠低于行業平均水平。后來終于想開了,跳槽去了競爭對手那邊,直接 13k+。

  公司的人才政策很多時候取決于高管,即使你的直接主管想幫你,也未必能幫上忙。比如之前,我們部門一個技術的同學結婚后經濟壓力上來了,想找份報酬更高的工作,我們好說歹說愿意留下,但想調調薪資,但公司死活不樂意,寧愿花著同樣的錢去新招一個……

  嗯,吐槽就到這里吧,總之,用多家公司作為自己職業生涯的調節杠桿,就像用并行進程處理高并發一樣,是非常有意義的。你未必要真的跳來跳去,但多個選擇總不是壞事。

  至于要怎么去選擇公司,尤其是小公司,你只需要注意兩件事:公司的業務方向靠譜不?公司的老板對員工好不好?前者關系到公司能不能掙錢,后者關系到公司掙的錢有不有你的份。

  

  就寫到這里吧,雖然不全面,但如果能在某些點上引發你的思考,那就不枉我打這么多字了。如果你有什么要和我討論,或者有什么要和大家分享,可以發郵件到 easychen@gmail.com ,我會找時間整理出來的。

  —————-

  反饋回復

  關于能力

  很多同學都問到如何才能快速的提升自己的能力,其實你自己眼中的能力和別人眼中的能力是不同的。自己眼中的能力是你能做成什么事,而別人眼中(尤其是在非招聘的情況下)的能力是你做的事情能給他帶來多少價值。

  比如 LazyREST 吧,它是一個非常簡單的框架,因為寫得匆忙,技術評分可能也就 60 分。但我經常收到它的用戶夸我能力好 —— 其實只是因為 LazyREST 實實在在的幫到了他們。公司雇人也是一樣,他們要找的是能干活的人,能幫他們解決問題的人,單純能力好,就算你知道A標簽有四種寫法,那又如何呢。

  所以對于學習新技術、新知識,我一直有一個原則:用以致學。在學習一門新技術之前,先定一個目標——用它做一個日常生活和工作用得上的項目,然后根據項目的需求反向的去學習需要的知識。方便的話,把它開源出來,讓大家都能用,慢慢的,你的實力和影響力都會成長起來。

  讀者來信

  昨天收到了 XiaoDong Miao 同學的來信,分享了他的經歷和想法。我覺得他提出來的幾點思考都是大家經常會遇到的問題,寫得非常好,在得到他許可的情況下,貼到這里供大家參考。再次感謝分享 :)

easychen,你好。看完你的《程序人生的四個象限和兩條主線》文章,感觸頗多。

你的這篇文章,其實可以算是探討程序員職業生涯規劃的文章。在我前一家公司離職之前,還沒有接觸過職業生涯規劃的概念,當時公司加班很厲害,原因很多,首先是所在行業競爭激烈,加班確實是常事,其次公司的產品沒有競爭力,利潤很低,于是公司高層只是通過堆項目來保證公司的收益,最后公司的技術總監信奉加班至上的原則,只要你加班時間多就是好員工,至于你做的怎么樣,是其次。

于是乎,整個公司就只是在比拼加班時間,即使自己的事情做完了,也不好意思早走,非要坐在位置上假裝看文檔學習,熬到 11 點,當然大部分情況你都會忙到晚上1,2 點才能回家,熬夜通宵是經常的事情。

有次周末,跟團隊里的小弟喝酒聊天交心,他跟我說:哥,我知道在這個公司,只要繼續加班熬下去,我也可以坐到你那個位置,可是那不是我想要的生活。當時,我聽完了很難受,因為我自己在我那個位置都不知道如何去發展自己,我又如何帶領團隊,讓別人信服的跟著自己一起努力呢。我知道自己遇到瓶頸了,而且4,5 年的這種朝九晚一的生活讓自己的身體變的很差。

去年在身心疲憊的情況下離職了,在休息的時候無意中看到了古典的《拆掉思維里的墻》,接觸到了職業生涯規劃的概念,后來抽空去北京參加培訓,也做了一對一的咨詢。拓展了不少的眼界,也認識了不少做職業生涯規劃的朋友。

這方面的知識其實不光是對自己有用,對于一個團隊領導者來說,其實也有很大的幫助,當你能夠幫助你的下屬解決他的困惑和發展問題時,他對你會更認可,也會在工作中更努力主動,而職業生涯規劃方面的知識對幫助下屬解決這方面的問題有很大的幫助。

現在仔細想來,或許這也是當今中國教育的缺失,只注重專業技能的培訓,而忽視了這塊意識的培養,很多人或許有不錯的學校和專業背景,卻對自己要做什么,如何發展很是迷茫。

關于生涯規劃的東西你講的挺多,基本認可,我想講講自己的一些思考。

1. 雖然職業生涯規劃很重要,可畢竟思考層面的東西會多一些,實際執行起來往往又會是另外一回事情。所以動態調整也很重要,這點倒有點像創業,就好像剛開始規劃好了產品,做出來給用戶用就發現很多問題,跟當初自己想的不一樣,需要做出及時的調整。

回到你文中的兩條主線來說,假設開始你很想走技術路線,可各種機緣你進入了創業公司,而創業公司往往是需要多面手的,并且隨著發展是需要有人可以帶領團隊,提高生產力的,這時就需要你向管理方向發展。

如果你能改變自己原有發展路線,適應公司的發展,可能就會有更高的收益。說白了,就是當好的機會出現時,不用過分的拘泥于原來的路線規劃。

2. 不管什么象限,不管什么路線,溝通能力都很重要。為什么我要單獨提出來,這是因為程序員的溝通能力的名聲不怎么好。見過不少的朋友都跟我吐槽過這樣的問題,更甚至曾看到微博上的吐槽,招程序員:可以接受產品經理的需求變更而不會對其進行人身攻擊。

當然自己也走過這方面的彎路。我自己的感悟就是,改變自己的思維模式。由于程序員大部分時間是跟電腦打交道,嚴格的 01,true or false,長期的慣性導致了他們會往往用同樣的思維方式去和人溝通,去和人打交道,結果可想而知,最怕的就是還不知道自己錯在哪里。

細致,究根問底對于編程做技術來說,確實是好的性格或者說是處事方式,可當跟人打交道,場景就變了,再這樣做原來的邏輯就錯了。所以多跟不同行業的人接觸交流能拓展自己的思維,讓自己在跟人交流時不會再拘泥于程序員的思維方式上,那么溝通就會好很多。

3. 跨界。當你接觸不同領域的知識之后,你才有可能走向更高的層次,然后考慮問題才會更全面。對于一個整天只接受需求然后實現的程序員來說,他只考慮到自己的技術要如何發展,代碼要寫的如何的漂亮,架構要做的如何得優雅,可這些往往就會需要很多的開發成本(不僅僅是時間)。

而當某個需求很緊急的時候就需要去平衡時間和技術。如果程序員沒有帶過項目,那么他就只會從技術角度出發考慮問題,于是乎就會出現程序員不理解項目經理,項目經理不理解程序員的情況,而對于程序員自身來說職業發展也會遇到瓶頸。

反過來對于培養程序員其實也是如此。記得有次跟朋友聊天,他跟我抱怨說,下面的程序員為什么只會考慮自己的那塊東西。然后我就問,你有讓他有機會去接觸其他方面的東西了嗎?他回到:沒有。我說:你也是做技術出身的,但是你后來還經歷過售前,售后,產品等不同的崗位,乃至后來了解行業的整個市場,自己出來開公司創業,這些跨領域的鍛煉使得你可以從更高的層次去考慮問題,去平衡。

而你抱怨的那個程序員沒有讓他有這方面的鍛煉,他當然只會從自己單一的技術角度出發來考慮問題,因為他的見識就只有那么一些,在他的技術世界里那些邏輯確實是對的啊。當然你不一定需要讓他像你那樣去輪崗做不同的崗位,可以讓他帶個項目,或者直接跟客戶溝通,或者讓他了解其他方面的東西,到時說不定他就會像你一樣去思考問題了而不會變得那么難溝通了。

跨界并非是要讓你做技術淺嘗則止,而是讓其他領域的知識對你的技術發展助力。借用大前研一的話說就是培養自己成為T字型人才-----T的豎是深度,可以代表程序員的專業技術;T的橫是寬度,代表程序員的不同領域的知識面。

前面說了接觸更多領域的知識可以讓你從更高的層次上去思考問題,這算是一個幫助。那又比如說去了解商業市場發展,了解這塊資訊,你就會知道將來會是大數據時代,有意識的去培養自己大數據方面的技術,那么將來薪資待遇和發展就會比較順利。

方糖氣球 http://ftqq.com/


方糖氣球 2013-12-08 04:42:04

[新一篇] 前中朝邊防主官:朝鮮在歷史上并未拖累中國

[舊一篇] 《拆掉思維里的墻》語錄
回頂部
寫評論


評論集


暫無評論。

稱謂:

内容:

驗證:


返回列表