1. 程式人生 > 其它 >《程式設計師生存定律》--- 05. 細論影響人生成績的四個要素

《程式設計師生存定律》--- 05. 細論影響人生成績的四個要素

定律要素之一:自身價值

  在金庸先生構建的武俠世界裡,最犀利的殺伐武功應該是《獨孤九劍》,但學會了獨孤九劍卻失了內功的令狐沖一樣會被一堆無賴按到地上揍個鼻青臉腫。待到學會了吸星大法,內力大進,那就再沒這回事了。

根據打鐵還要自身硬的道理,修煉確實應該先從內功開始,但不是說招式就不必要了,這很辨證。至於究竟那個更重要這樣的問題不在具體的時空背景下是沒有答案的。

從最終表現來看,一個人的價值(或者說內功)可以體現在幾乎無限多的地方,如:程式語言、分析設計、溝通、管理、估算、流程改善等等。但如果為各種技能稍做一點分類後就會發現,人創造價值的基本途徑只有兩個:一個是完全依賴於自身的技能,另一個則是假於他人之手。

後者也許不太容易理解,這裡舉一個簡單的例子:假設張三和李四的技術能力都非常的優秀,但兩者性格不合,一旦在一起工作就非常容易各自固守己見,寸步不讓,每天爭吵不斷。這個時候王二出現了,王二的技術能力並不優秀,但比較擅長協調各個人的意見,有王二在,張三和李四就可以配合的比較好。在這種情形下,王二創造了價值,雖然很大程度上這種創造依賴於A和B。

具體來講,編碼、設計、測試、估算、需求分析等更類似於直接通過自身的技能創造價值,而管理、流程改善等則類似於後者。專注於設計、編碼、測試等實現工作的人在現實中往往被定義為程式設計師,而專注於管理、流程改善等方面的人在現實裡則往往被定義為管理者。

從可創造價值大小的角度看,一般情形下兩者似乎都沒有一種準確限度:偉大的政治家和偉大的科學家可以同樣的偉大。但從現實來看,至少是在國內,很多時候人們更傾向於認為管理類職位擁有更高的價值。現實中很多公司中確實如此,但這並不總是對的。

似乎可以在某一條線上把公司安放在不同的位置上,越過某條界限之後,直接做事的人所創生的價值才可能超過管理人員。這反過來要求崗位的技術附加值要比較高。想象下在製造類企業中,從收入的角度看,生產線上的工人的收入總是會偏低。同理,在軟體公司中,越是技術含量低的開發工作,這點體現的越為明顯。而一旦到了頂級軟體公司中故事就可能會不一樣了。

在《微軟的祕密》這本書中有這樣一段描述:

我們中有些人對開發人員懷有極度的不滿,那簡直就是嫉妒。達瑞爾•希文斯是WindowsNT的主要開發人員之一,他有9輛保時捷,我當然也希望能夠擁有9輛保時捷。但我怨恨達瑞爾麼?當然不。他絕對受之無愧,他真的棒極了。如果用我的支票來給他開工資,我也願意。不過從長遠來看,過一兩年你肯定就能得到應得的報酬。如果由於某些原因,我們引入了達瑞爾,並付給他足夠買9輛保時捷的薪水,而他一旦幹得不夠好,就不會在這裡工作很久......但這些開發人員都是精心挑選出來的人才......唯一的不利之處在於,總有一部分人感到開發人員才是“主角”,但這正是這一行業的本質。

持上述看法的人是WindowsNT的高階產品經理理查德•巴斯,從描述來看,這個管理者的收入是要低於被管理的技術人員的。

促成這一結果的三個關鍵詞是:微軟、WindowsNT、主要開發人員。微軟抓住天時雄霸PC的作業系統市場,而在作業系統中WindowsNT正是核心,在前兩者基礎上達瑞爾•希文斯又是主要的開發人員。為使技術人員的收入超過管理人員的,這三個因素恐怕是缺一不可。這在以銷售為核心的公司裡很難複製,但在以產品為核心的公司裡卻始終存在著可能性。

單以方向自身而言,很難單純講那條是金光大道,而那條是華容道。關鍵點首先在於要避免選擇自身內部蘊含矛盾,比如你想做技術卻選了不以技術為核心支撐的公司,選了管理,卻在純研發環境裡。其次在於無論那條路上都要努力走到專業和高階。

而不管技術還是管理,影響增值整個過程的因素都比較多:知識體系上的認知、方向的選擇、博與專的平衡、知識的可流動性等都要分別進行考察。對這些點的考察將在後面逐漸展開。

定律要素之二:自身價值上的表達力

  很多人咋一看這個標題,也許會有疑問:假如說是一個很牛很牛的大俠,那還需要表達力麼?

實際情形是,如果大俠總是貓在山洞裡隱居,那麼有沒有表達力其實一點都不關鍵,但現在關鍵的是江湖需要表達力,所以大俠一入江湖,就變的需要表達力了。

一說到表達力,很多人就會想到溝通和說話,但其實說話遠不是表達力的核心。敏於事訥於言的人很多,難道他們就沒有表達力了麼?顯然不是的。一個人的過往、行止、習慣、性格等都是表達力的一部分。

我們先來看一個簡單的例子。

2012的CSDN上有一篇翻譯的文章,叫“程式設計的技能和做員工的技能--那個更重要?”這篇文章裡描述了兩個極端的例子:

Rodrigo畢業於麻省理工,他在業餘時間開發編譯器。他是Haskell語言的核心程式碼捐助者,他開發了很多非常有名的Python程式庫。他寫出的程式碼都是非常健壯的程式碼,可讀性好,能夠優雅的處理各種程式上的臨界計算場景。然而,他通常是拖延幾天才回復郵件,你很少見他會接聽電話,他看起來並不真正理解按時完成任務的重要性,他按自己的方式做事,你不可能弄清楚他究竟是怎麼想的,只感覺他腦子裡都是一些漫無邊際的想法。

Gabriella並不是一個非常優秀的程式設計師,她寫的程式看起來顯然很業餘。15到20行就能完成的程式她寫了30行。她的程式裡有bug,這讓QA部門在上面花費了不少時間,她沒有真正理解寫出的程式碼應該具有好的效能的道理——“能用就行啦!”。然而,她很熱情——她收到郵件幾分鐘內必給予回覆,她從不漏接一個電話,她善於溝通,她能把複雜的技術問題清楚的講給客戶聽,她從沒有逾期完不成任務,她不斷的尋求反饋來改進自己的工作,她是一個很隨和的人,同事喜歡跟她說話。

這兩個極端的例子很有意思,但如果我們真的二選一的去判斷那個更重要,就會失去領會職場中一個本質問題的機會。

文中所描述的做員工的技巧事實上很像拱豬遊戲裡面的梅花10(變壓器),他並非與所謂的程式設計技能相對立,而是普遍存在於每一個程式設計師的身上,任何一個程式設計師必然同時具備這兩方面的能力:程式設計技能與做員工的技能,而做員工的技能則像一個變壓器,最終放大或縮小你的真實能力。這就是表達力的功效,而做員工的技巧正是表達力的一部分。

那表達力為什麼會有價值?

我們都知道管中窺豹是不好的,但很不幸即使是在最為公正理智的組織裡,大多數人仍然是被管中窺豹的。企業的組織結構基本上呈現為金字塔形狀,而位置越往上,權柄越大,也即是說位置在下面的人,其評判權利掌握在其上司手中。

而當上位者對下位者進行認知時,上位者印象中的某個人和真實的某個人往往會有差異。而好的組織和不好的組織的一個區別則是這種偏差究竟是主觀造成的,還是客觀現實而無法避免,而絕不是這種區別是否存在。

這種差異得以存在的客觀原因有很多,比如:

  • 資訊丟失

層級一旦產生,資訊往往需要中轉,總經理要想看到某個人,往往要通過幾個層級,這個過程中無疑的資訊會被丟失。

  • 資訊量過大

一個人能處理的資訊是有限的。比如一個Manager負責一個20個人的團隊,那麼由於待處理的資訊過多,就就很可能在是推卸責任還是陳述困難上產生誤判。

  • 語言

即使是資訊沒丟失,不同的人對同樣的資訊理解也可能不一致。比如說V手勢在英國就意味著滾開而不是勝利。

這類因素最終導致認知上的偏差成為一種無法規避的客觀現實,是一種必須去適應而無法徹底改變的東西。像組織行為學這類學科中會把這個問題單獨作為一個研究專案:印象管理(impressionmanagement),首因效應等探討的都是這個事情。

這並不難理解,通過自我推銷、讚揚別人、適當的從眾、搞好人際關係這類印象管理的手段來管理個人表現面無疑的會讓自己產生溢價,提升自己在別人眼中的價值。

畢竟在組織裡,別人眼中的你才有現實意義,即使它和真實的你有所差異。從長期的視角來看,影響自身價值表達的幾個主要因素是:資歷、自身性格特徵、借勢的程度以及權術的運用等。這幾點將在後面進行展開說明。

最後需要做一點區別的是改善表達力與惡意專營。

兩者間本質上並無差別,有差別的是程度。從適用場景來看,在任人唯親的環境裡曲意逢迎是一種生存必備技能,但即使在最公平的組織裡也需要改善自己的表達力。

年輕的程式設計師往往會仇恨上面所說的這點,並用充滿負面情緒的詞彙去形容這類技能比如:拍馬屁,無恥。但其實不是,從人生效能的角度看,忽視這點是危險的,除非你在自身價值上已經達到了眾人矚目的地步,比如:簡歷上就一句話,我創造了Python。

最後看一個欠缺表達力的歷史故事:

彈鋏而歌

《戰國策》和《史記》裡都講述了這樣一個故事:

馮諼因為太窮而無法生活,就申請成為孟嘗君的門客,但當孟嘗君問他有什麼本事時,馮諼卻回答說自己沒什麼本事。

結果孟嘗君雖然吸納了他,但馮諼卻被安排為最下等的門客。

孟嘗君的門客有三個等級:一等門客出門有車坐,二等門客有魚吃,三等門客只能吃粗劣的飯菜。

馮諼並不很滿意,就彈自己的劍而做歌,說:長劍啊,我們回去吧!沒有魚吃。

下人把這事兒告訴了孟嘗君,孟嘗君還是很大度,說:那就給他魚吃。

過一陣,馮諼又開始彈自己的劍而做歌,說:長劍啊,我們回去吧!出門沒車坐。

左右的人取笑他之後,又把這訊息告訴了孟嘗君,孟嘗君又很大度,說:給他車座。

接下來,馮諼繼續彈,還是這個調子,說:長劍啊,我們回去吧!沒法養家。

這時候大家已經很厭惡他了,但孟嘗君還是問了他的困難,並派人給把他母親也養了起來。

接下來馮諼連續做了幾件很體現自己遠見卓識的事情。

第一件是當他申請替孟嘗君到自己領地上收債的時候,他把債條都給燒了。理由很簡單,孟嘗君家裡啥都不缺,就缺人心歸附。這一舉措,在孟嘗君被罷黜時,給孟嘗君提供了東山再起的緩衝。

第二件是他去忽悠魏王,說齊國強盛都是因為孟嘗君,現在他被罷黜了,如果能為魏國效力,那麼魏國富國強兵指日可待。魏王聽了後,就派使臣攜重禮,三次延請孟嘗君到魏國為相。齊王一看,這可不得了,孟嘗君確實是人才,要不然魏國怎麼會這麼勞師動眾來請他。孟嘗君因此而得以恢復相位。

第三件是孟嘗君恢復相位後,感嘆說:以前那堆門客,我一落難就都跑了,現在我恢復了相位,他們有什麼臉面來見我,誰要讓我見到了,我一定呸他一臉。馮諼當即跪倒進行勸諫,說:富貴多士,貧賤寡友是自然規律,希望孟嘗君能夠遇客如故,潛臺詞是:你要這麼幹了,樹敵不說,那還能有可用之人。孟嘗君又聽取了他的建議。

也就是說孟嘗君很輝煌的一生和這個沒事談劍要東西的馮諼是分不開的。

也許有的程式設計師會感覺馮諼這樣不挺好麼,但在現代馮諼的做事方法實際上是取死之道,幾乎百分百會被現存規則轟成灰灰。

從後來行事來看,馮諼無疑是有才華的,但他得以體現才華的機會完全依賴於時勢而非是自己爭取來的。

他所做的所有事情都是在看不到回報的時候多索取:要魚、要車、要養家、從孟嘗君的角度看,這些可能連長線投資都算不上。因為在他要東西這個時間點,這個人本身有沒有價值則完全沒人知道---等價於無價值。在古代還有孟嘗君,但在現代企業裡,這麼做落在周圍人的眼裡就是眼高手低,幾乎一定會被開除掉。指望滄海橫流方顯英雄本色是不太行的,萬一一輩子滄海也不橫流呢。

但偏偏馮諼和很多程式設計師的行事風格還真的有點類似,很多程式設計師擅長做事但不擅長表達,再加上很多時候程式設計師收入不低,所以人生境地沒準就真和馮諼早時有點類似。

定律要素之三:自身價值的稀缺性

  現實裡,體現稀缺性的故事也很多。

在東北曾經發生過一場非常慘烈的戰爭,這場戰爭之所以慘烈,倒不是因為戰鬥,反倒是因為其中所使用的圍困戰術。當一城居民都處於飢餓狀態時,饅頭和黃金的比價就不斷下跌,故老相傳,即使還沒到最後階段,一個饅頭已經可以換一個金戒指了。與之相對比,在今天假設一個黃金戒指是4克,那麼其價值大概在1500元左右,大致等價於3000個饅頭。

拋開人文關懷不論,這背後其實體現的是稀缺性對價格的巨大影響。

我們常說物以稀為貴,但其實在以交換為支撐的職場中人亦如此。某種技能的稀缺程度往往構成一種大的環境,進而使這個環境中的所有人產生溢價/折價。

有的程式設計師往往對如何用某個程式不太感興趣,而認為把程式開發出來更體現價值。所以很多人在瞭解到SAP顧問這類職位的收入遠高於一般程式設計師時,往往會感到震驚。單純從技術難度看,成為程式設計高手似乎總是會比成為SAP顧問更花時間。這件事情找不到資料支撐,暫時還只是一種判斷,但現實確實可能是你花了更多的時間,學了更難的技術,收入上卻比某些做著看著相對簡單工作的人低。

這大多時候是稀缺性所掀起的波瀾。許多很讓人糾結的問題與此有關,比如:為什麼Java語言的程式設計師就比C#語言的程式設計師收入高?

稀缺性本身取決於需求與供給,這樣獲得稀缺性就有兩個主要的手段:

一是站在需求相對恆定,供給比較稀少的位置上;一是加入需求急速膨脹,而供給有限的場景下。前者很好理解,愛因斯坦總是稀缺且有價值的。這主要是因為社會總是需要優秀的科學家而達到愛因斯坦的高度又總是非常艱難。而後者則需要更多的一點說明。

如果在90年代加入程式設計師這個行業的話,那天生就會處於比較稀缺的位置,因為那個時候這個行業在國內剛剛興起,需求極大,但程式設計師本身非常稀少。而隨著教育機構開足馬力,加大供給,再加上普通軟體開發介入壁壘較低,在10年之後,單從量上看恐怕程式設計師已經處在供大於求的情勢之下了。在我印象之中,2001年211學校軟體開發行業的畢業生的薪資水平基本達到稅後4000元/月,而這一水平即使不考慮通貨膨脹,直到今天也沒有徹底恢復。

雖然沒有權威機構進行具體測算,但在這10年裡程式設計師增加10倍(比如:從60萬增加到600萬),那是毫不稀奇。因此可以講在10年前,程式設計師是普遍稀缺的,而在10年後,這種情形就只在特定領域裡了。

稀缺性的客觀狀態是一種大勢,作為個人基本上不可能改變,只能做選擇以對應將來。所以其背後主要隱藏的是在特定時間點做出恰當判斷的問題。

我的一個同學曾經和我感嘆,如果2001年畢業加入某家國內知名通訊裝置廠商,從收益的角度看,恐怕比讀研要好的多。這樣的例子可以提醒我們,稀缺性是有時效的。

這點會在後面章節裡進一步展開。

稀缺性與選擇權

  在前言中曾經簡略提到如果非要選一個指標來描述一個人的成功的話,選擇權可能遠比其他的指標更有用。當一個人買房子的時候,可以在多種房型中選擇的人往往就比只能選擇偏遠小區的人更成功。

不考慮理想和自我實現這些與人生價值相關的角度的話,人生爭的往往也就是選擇權。自我增值、表達力的增強、稀缺性的營造骨子裡都是在擴大一個人的選擇權,讓一個人可以有能力去選擇企業而不總是被選擇。而選擇合適的公司則講的是不要浪費自己好不容易爭取來的選擇權,併為下一步的選擇權打下更好的基礎。

選擇權的爭取遠比想的殘酷,當一個很聰明的人在很好的大學裡因為掛科而無法準時畢業時,他的選擇權將大幅縮水,很可能必須退回到三線城市謀生;當一個技術很有天分的畢業生錯位的進入了一家體力密集型企業時,他的選擇權也將大幅縮水,5年後他可能一點競爭力也沒有。

定律要素之四:身處公司的特質和未來

  當令狐衝以華山派大弟子的身份來到林平之的外公家時,雖然衣衫襤褸,神情萎靡可大家也不敢瞧不起他,給了40兩銀子做見面禮不算,喝酒還有主家關鍵人物相陪。一旦這些人發現令狐沖在華山派裡不太受待見時,雖然令狐沖還是那個令狐沖,挑釁就來了。這體現的是幫派的力量。

在程式設計師的世界裡幫派一樣有力量,不過這時候幫派都不叫幫派,而改名叫公司了。

兩個不熟悉的程式設計師一見面往往會互報家門,一聽是微軟、Google、阿里、騰訊等大公司出來的心裡先高看三分;一聽是個完全陌生的公司,倒不一定低看,但高看卻是不可能的了。而公司作為一種平臺,其力量則遠不止體現在虛名上。

我認識的程式設計師中有這樣一個人:

他喜歡鑽研程式,不喜歡和人說話,做事特別認真,並細緻耐心,你如果有一個任務,交到他手裡那可以放一百八十個心了。當然,勤勞肯幹的同時,他也有一些不知道算是優點還是缺點的特徵,比如:並不是很有野心,不善表達,並不會主動去改變身邊什麼。

他所從事的行業偏向於驅動程式,供需相對比較穩定,稀缺性上並不會有很大變化。

他加入第一家公司後,在那裡工作了4年多,但即使表現比較好,公司卻處在下滑期,這導致他的年收入始終突不破10萬。

雖然在換工作上他的惰性比較強,可最後迫於無奈終於他還是動了。換工作之後,工作內容並沒有太大變更,但職位和收入提升總算踏上了正軌,2年內的漲幅比過去4年還多。

對於上述這個程式設計師,他工作內容和個人價值本身並沒有太大的改變,但收入本身卻起了比較大的變化。

這裡面的根本原因是因為公司提供的平臺高度不同。對個人而言,公司是一個平臺。平臺如果天生高一點,那麼一個人的起點也就會高一點。法律面前公司是平等的,但在實際上公司和公司間的差別可能比人與猴子的差別還要大。富士康和蘋果都是公司,還都和iPhone有關,但即使只是看公開報道,我們也知道這兩個公司內的生態一定差別巨大。富士康必須極度關注成本節約,而蘋果則需要更多的創新能力

如果要給公司進行歸類,那麼不同視角會得出不同的結果:

如果把生產鏈條比作食物鏈,那麼可以區分不同公司在食物鏈上的不同位置。

如果從公司的存在歷史來看,則可以把公司分類為新創立的公司,成長中的公司,成熟的公司和衰落中的公司。

如果從公司的文化特徵來看,則可以把公司分為相對公平的公司和不公平的公司。

如果從地域來看,則可以把公司分為大都市裡的公司和發達二級城市的公司以及其它的公司。

這類分類有助於我們認識公司的特質,並進行更為理智的選擇,當然你要有選擇權才行。

這點會在後面章節裡進一步展開。

組織是利益分配的基本單位

  單隻把一群人圈在一起並不足以形成組織,一群人有類似的價值觀,有特定的行為規則,有共同的努力目標,那才能夠形成組織。組織往往表現為一種個人之外的約束,所以很多人並不喜歡它。但確實是有組織才有力量,個人在組織勉強力量往往非常渺小,這進一步導致組織是利益分配的單位。

那為什麼說有組織才有力量?

這起源於人類的兩個個基本特質:一是精神差異無限大,但肉體的差異則相對有限;一是慾望的無邊界特質。第一個基本特質內含著一種矛盾,即是一個精神強大的人其事實可以驅動的力量遠大於其自身可以擁有的。這時候在第二個基本特質的驅動下,人們就必須結合起來才能達成自己的目標。結合之後,在統一意志之下,組織中的個人才能互補,形成遠超個體的力量。雖然組織內部耗散往往非常嚴重,但相對於個人往往已是類似超人的存在。霍布斯論文中曾經把國家描畫為一個有無數人組成的持劍巨人,這是非常形象的。

那為什麼組織是利益分配的單位?

想想一個人去和微軟,Google,美國、日本對抗是什麼結果。這些大型組織雖然可能決策緩慢、行動遲緩,但遠不是個人所能對抗和競爭的。而利益格局必然與參與利益分配的個人和組織的強弱有著關聯。作為結果,不管喜歡不喜歡,組織是利益分配的基本單位,在這之後,才是組織中的個人如何進行利益分配。在分配iPhone所帶來的利潤時,首先是蘋果和富士康間的利潤分配,接下來才是蘋果內部和富士康內部。