(轉(zhuǎn))熊節(jié):用五年的時(shí)間跨越鴻溝
(本文發(fā)表于《程序員》2007年第2期,發(fā)表時(shí)有刪節(jié)。)
用五年時(shí)間跨越鴻溝
——“大學(xué)未畢業(yè)程序員”的流水帳
禪宗說 學(xué)佛有漸修頓悟之分。說到“跨越鴻溝”,總讓人覺得像是習(xí)武之人一夜間打通任督二脈,霎時(shí)間神清氣爽身輕如燕,原本百思不得其解的大難題突然就迎刃而解。 這般境界著實(shí)令人神往,可惜我從參加工作以來五年有余,回想起來竟然沒有這么一個(gè)天人合一的頓悟時(shí)刻。遺憾之余,只能安慰自己說:這就是所謂“資質(zhì)”吧。 沒有當(dāng)下開悟的聰穎天資,所以也難以體會(huì)跨越鴻溝的愉悅了。
不過想想五年前的自己,卻也不是全無變化——不管技術(shù)、寫作還是待人接物,就 連頭頂冒出的幾根白發(fā),都見證著自己的成長。不過最大的變化還是在自己心里:當(dāng)年背著書包和無法完成的學(xué)業(yè)黯然離開校園的男孩,現(xiàn)在已經(jīng)可以淡然地拿自己 這段經(jīng)歷打趣了。能夠坦然面對自己心中最不堪回首的往事,這也算是跨過一道鴻溝了吧。
北京理工大學(xué),我的母校,是一所有著嚴(yán)謹(jǐn)學(xué)風(fēng)的高 校。在受她嚴(yán)格的理工科基礎(chǔ)訓(xùn)練而獲益匪淺的同時(shí),我終于也沒能達(dá)到她期望的標(biāo)準(zhǔn)。2001年,在學(xué)業(yè)還剩下一年尚未完成時(shí),我不得不選擇了離開母校—— 以一個(gè)失敗者的身份。從那時(shí)候開始,我常常會(huì)做一個(gè)夢,夢見自己正在高三的教室里復(fù)習(xí)準(zhǔn)備高考,一邊還鼓勵(lì)自己說“這次終于有機(jī)會(huì)把大學(xué)讀完了”。能夠順 理成章地拿到本科文憑的大多數(shù)人,恐怕是體會(huì)不到這種悵然若失的缺憾感的。
如果說夢中的缺憾感只是令人心緒不寧的話,白天需要面對的就是 更加現(xiàn)實(shí)的問題了:一個(gè)機(jī)械工程系的肄業(yè)生要如何找到一份工作來養(yǎng)活自己?雖然一直熱衷于編程,在學(xué)校里也有些小小的實(shí)踐經(jīng)驗(yàn),但我實(shí)在沒有自信能靠這樣 的背景留在IT圈里。好在當(dāng)時(shí)供職聯(lián)想的孟巖熱心相助、《程序員》雜志蔣濤總編不拘一格、再加上當(dāng)時(shí)創(chuàng)刊剛一年的雜志正需要青壯勞力,我的提前退學(xué)反倒成 了因禍得福,早早地就給自己找到了一份工作。
這“因禍得福”之說并不純是發(fā)揚(yáng)阿Q精神:雖說薪水不高加班不少,但《程序員》雜志編輯部仍 然是一個(gè)難得的優(yōu)秀團(tuán)隊(duì);更重要的是,在這里可以接觸到前沿的技術(shù)和高端的視野,這對于正在渴求知識的我來說無疑是天賜良機(jī)。而且做雜志編輯還能近水樓臺(tái) 先得月地接觸到圖書出版機(jī)構(gòu),我的《重構(gòu)》、《最后期限》、《與熊共舞》等幾本譯作都是在這段時(shí)間里完成的——對我而言,從事翻譯工作最大的受益者還是我 自己,因?yàn)榉g的過程讓我真正將一本書讀得通通透透。試想一下,這些書籍都是Martin Fowler、Tom DeMarco等前輩的心血凝粹,能將它們讀懂又怎會(huì)不大有裨益?
但作為雜志編輯的一個(gè)缺陷也逐漸顯露出來:雖然能夠看到到很多技術(shù)文章 和案例分析,但畢竟沒有機(jī)會(huì)親手開發(fā)一個(gè)真正的軟件。每天只是高談闊論,畢竟站著說話不腰疼,一來二去就成了個(gè)眼高手低的毛病。就算自己嘗試寫些程序,但 一如溫伯格所說,不從事專業(yè)的軟件開發(fā),就永遠(yuǎn)只是業(yè)余選手,對于“專業(yè)”的問題終歸想不明白。況且媒介傳播——縱令是關(guān)于“軟件開發(fā)”的媒介傳播——與 軟件開發(fā)始終是兩碼事,所需的心理狀態(tài)和技能是截然不同的。于是在2003年初非典肆虐的日子里,我那顆程序員的心又開始躁動(dòng)起來。要去做一些真正的軟 件,我才會(huì)知道軟件究竟應(yīng)該怎么做,模模糊糊中這就是我對自己說的話。
想要去做真正的軟件也不是那么容易的,我的學(xué)歷問題仍然是求職路上 的攔路虎——我甚至不知道該如何在簡歷里寫自己的教育背景,只好含糊其詞地寫上“曾就讀于北京理工大學(xué)機(jī)械工程學(xué)院”。這樣一份簡歷鐵定入不了HR主管們 的法眼,我這樣告訴自己,所以還得另辟蹊徑。這時(shí)候一位老友,在BBS上認(rèn)識的石一楹成了我的貴人:此人經(jīng)驗(yàn)豐富,技術(shù)精湛,做著某公司的技術(shù)總監(jiān)和好幾 家公司的顧問,而且正好還在我素來向往的人間天堂杭州。于是幾番電話之后,我便定下了前往杭州的機(jī)票。
石一楹給我第二大的幫助——最大的 幫助自然是幫我在杭州找到一份工作——是教給我敏捷開發(fā)的理念。尚在北京時(shí),我曾經(jīng)通過電話問他:需要準(zhǔn)備哪些背景知識。他既沒有叫我去學(xué)J2EE,也沒 有讓我補(bǔ)習(xí)SQL,只是要我把《解析極限編程》再讀一遍。(當(dāng)然我是刻苦的好學(xué)生,我把整套XP叢書都買來重讀了一遍。)到了杭州以后,除了西湖的迷人風(fēng) 光之外,他的工作方式同樣令我震驚:測試驅(qū)動(dòng)、持續(xù)集成、故事卡、結(jié)對編程……這些似乎只有在書里、在老外的辦公室里才可能出現(xiàn)的東西,就這么活生生地出 現(xiàn)在我眼前。這讓我第一次產(chǎn)生了一種朦朧的感覺:我們也可以用正確的方式做優(yōu)秀的軟件。
后來由于種種原因,這些敏捷的因素在我們的項(xiàng)目中 出現(xiàn)得越來越少。到最后,除了一套盡管談不上完備、但至少還頻繁執(zhí)行的測試和時(shí)常進(jìn)行的重構(gòu)之外,我們的項(xiàng)目已經(jīng)基本回到大家更熟悉的、“普通”的工作方 式了。這個(gè)現(xiàn)象引發(fā)了我的很多思考:為什么明明知道敏捷是更好的方式,我們卻無法做到呢?說來有趣,最后解開我這個(gè)疑惑的竟然是《壇經(jīng)》中一段禪宗典故。
五祖弘忍座下大弟子神秀偈云:
身是菩提樹
心如明鏡臺(tái)
時(shí)時(shí)勤拂拭
勿使惹塵埃
更 多人記得的是六祖慧能與之針鋒相對的那一偈。但很多人似乎忘記,以一目不識丁的獦獠之身,能聽人頌《金剛經(jīng)》而有所悟,六祖的根性不是常人能比的。這世上 有圣人能憑過人靈性而頓悟成佛,但更多凡夫俗子做不到這一點(diǎn)。這根性愚鈍的凡夫俗子,難道就不用修行、無須上進(jìn)了么?別忘了,五祖讀了神秀的偈,也說“依 此偈修,免墮惡道;依此偈修,有大利益”呢。
于是我開始觀察,觀察身邊的同事,也觀察自己。我觀察到一個(gè)有趣的現(xiàn)象:很多同行(也包括我 自己)想要偷懶、想要逃避那些嚴(yán)格的紀(jì)律時(shí)常用兩個(gè)借口。其一曰“但求頓悟”——“Stallman/Linus/Gates……寫emacs /Linux/Basic……的時(shí)候做單元測試了嗎?”(所以我也不用做單元測試。)其二曰“不耐漸修”——“昨天就有一塊代碼沒有單元測試了。”(所以 今天這塊代碼不寫測試也不算太糟。)親愛的讀者,不妨和我一道來摸著胸口拷問一下自己,這是不是我們常用的兩套說詞?
回答其實(shí)很簡單:第 一我們不是Stallman/Linus/Gates,他們是天才而我們不是;第二我們的工作還得繼續(xù)做下去,而且我們希望把它做得出色。熵增加是宇宙的 定律,為了讓我們的程序、我們的項(xiàng)目、我們的團(tuán)隊(duì)、我們的工作環(huán)境有序而不混亂,我們就必須不斷地向其中注入能量——既然還做不到“菩提本無樹,明鏡亦非 臺(tái)”,我們就必須“時(shí)時(shí)勤拂拭,勿使惹塵埃”。(兩年后,當(dāng)我成為一名ThoughtWorker之后,我才真正明白了這件事。這是后話,暫且按下不 表。)
在杭州的日子里,除了與軟件開發(fā)的技術(shù)和經(jīng)驗(yàn)之外,我的另一大收獲是開始信佛。照著佛經(jīng)所說“觀身如身,觀心如心”的修行方法,我 學(xué)會(huì)了如何去觀察——當(dāng)然包括觀察別人、觀察外界,但更重要的是觀察自己。觀察自己的身體感受和心理活動(dòng),并時(shí)時(shí)調(diào)節(jié)身體與心理狀態(tài),使自己身心平和安 定。(除了別的好處之外,這種練習(xí)讓我近兩年很少生病,偶染小恙也心知肚明該如何調(diào)理痊愈,這算是信佛之后的一個(gè)意外收獲。)就這樣帶著一些經(jīng)驗(yàn)、一些思 索和一些收獲,2004年,在離開學(xué)校正好三年的那一天,我再次撥通了蔣濤的電話。
這次回到北京、回到傳媒的原因有二。其一,我已經(jīng)親眼 見到好的經(jīng)驗(yàn)?zāi)軌蛉绾斡行У貛椭浖_發(fā),我希望創(chuàng)造條件讓更多好的經(jīng)驗(yàn)被傳遞給更多的人;其二,除了軟件開發(fā)之外,我仍然對麥克盧漢的大眾傳播理論懷著 一份向往——有些事,你知道自己不會(huì)一直去做,但如果沒有過足癮就會(huì)一直惦念。媒體工作于我,就是這樣的一件事。此時(shí)蔣濤的工作重心已經(jīng)從《程序員》雜志 轉(zhuǎn)到了CSDN網(wǎng)站,我也就成了網(wǎng)站的技術(shù)主編——在Web 2.0熱潮到來之時(shí)為一個(gè)擁有超過100萬用戶的網(wǎng)站工作,誰又能說這不是一種幸運(yùn)呢?
在 他的代表作《理解媒介》中,麥克盧漢提出了一個(gè)影響整個(gè)大眾傳播領(lǐng)域的理論:媒介即是內(nèi)容。從一個(gè)非常狹窄的意義上來說,這就意味著經(jīng)營媒體的重點(diǎn)不是制 造內(nèi)容,而是打造一個(gè)傳播平臺(tái),讓內(nèi)容的生產(chǎn)者與消費(fèi)者在這個(gè)平臺(tái)上互通有無、各取所需。在根源上,這正是我重新回到傳媒領(lǐng)域的原因:除了開發(fā)軟件、享受 編程的樂趣之外,我一直向往成為一名“技術(shù)傳播者”——通過我的工作讓更多人了解軟件開發(fā)的知識和最佳實(shí)踐,用我的思想去幫助別人獲得成功,這給我?guī)淼?滿足感絲毫不亞于解決一個(gè)技術(shù)難題。但與此同時(shí),我也越來越清楚自己的個(gè)性并不適于從事媒體工作:對技術(shù)的熱愛使我無法中立地對待各種不同觀點(diǎn),而“中 立”卻是媒體的一大要素;而且我喜歡解決具體問題勝于人際交往,這也決定了我無法成為一個(gè)優(yōu)秀的記者或主編。就在不斷努力和認(rèn)識自我的過程中,又是半年時(shí) 間過去了。Martin Fowler來了。
直到現(xiàn)在,每當(dāng)被問到“最尷尬的事”時(shí),我總會(huì)講這個(gè)故事。我們跟上海交大借了一間大教室, 我們拉出了醒目的橫幅和招貼,我們邀請了三百位客人和十多位知名專家,這全都是沖著Martin的面子。但就在講座開始前4個(gè)小時(shí),Sidney Pinney(時(shí)任ThoughtWorks中國公司總經(jīng)理)在電話里告訴我:“Martin因病不能來現(xiàn)場,我很抱歉……”盡管事后有各種關(guān)于我當(dāng)時(shí)如 何鎮(zhèn)定自若的傳言,不過說實(shí)話,我腦子里冒出的第一個(gè)念頭是“趕快刮臺(tái)風(fēng)全城戒嚴(yán)吧……”也許又是一次因禍得福,這樁倒霉事讓我和 ThoughtWorks一下子對彼此有了更多的認(rèn)識。回到北京以后,郭曉(現(xiàn)任ThoughtWorks中國公司總經(jīng)理)告訴我:也許我真正想做的是咨 詢。那么好吧,還能有比ThoughtWorks更讓我心儀的咨詢公司么?
但即便如此,當(dāng)時(shí)的我其實(shí)也沒想到,自己究竟會(huì)有多么心儀 ThoughtWorks這家公司——也來不及想,唯一的想法就是“終于可以盡享編程的快樂了”。第一個(gè)項(xiàng)目對我來說熟稔多過生疏:卡片墻、大白板、圓桌 和隨意滑動(dòng)的椅子、免費(fèi)的可樂、兩人一臺(tái)電腦……正是我寤寐以求的工作環(huán)境啊。2006年春節(jié)剛過,公司又派我去印度參加了ThoughtWorks University的學(xué)習(xí)。拿到畢業(yè)證的那一刻,淚都幾乎要下來——好歹是張文憑啊,哪怕并不是真正的大學(xué)呢。
在 ThoughtWorks的時(shí)間稍長,特別是先后拜訪了印度班加羅爾和澳大利亞墨爾本兩處辦公室之后,我漸漸明白了一件事:這世界上的天才比我們通常想象 的要少得多,但凡人所能達(dá)到的成就卻也比我們通常想象的要偉大得多。沒錯(cuò),我的意思就是:ThoughtWorks并不是“天才幼兒園”,這里的800多 名員工都是有七情六欲、食人間煙火的凡人。這些凡人做出了令人刮目相看的事情、營造了令人向往的環(huán)境,僅僅是因?yàn)樗麄儽3种约合蛏系男摹?br />
拿 ThoughtWorkers常用的一個(gè)比喻,每個(gè)人都是一個(gè)熱氣球,在地心引力的作用下總想往下掉——累了,病了,心情不好了,打球受傷了……無數(shù)的理 由讓我們想躺在沙發(fā)上度過又一個(gè)無所事事的安閑夜晚。要讓氣球越飛越高,唯一的辦法就是不斷地給它加火。個(gè)人是如此,項(xiàng)目的運(yùn)轉(zhuǎn)、企業(yè)的環(huán)境也莫不如此。 良好的項(xiàng)目不會(huì)自然而然地永遠(yuǎn)良好下去,它要靠每個(gè)人不斷改進(jìn)它的質(zhì)量;振奮人心的工作環(huán)境不是從天而降的,它是靠每個(gè)人從一張貼紙、一個(gè)玩具開始積累出 來的。有些熱氣球飛得那么高,也許只是因?yàn)樗鼈円恢睕]有放棄向上飛。
于是我真正釋然了。五年的時(shí)間,我已經(jīng)走到了這里。盡管自己還是那么 微不足道——我學(xué)習(xí)新技術(shù)總是很笨,我到現(xiàn)在還不懂編譯原理,我的英文口語結(jié)結(jié)巴巴……但我知道自己會(huì)一直向上飛。哪怕只有一點(diǎn)點(diǎn)進(jìn)步,只要每天都比前一 天更好一點(diǎn)點(diǎn),我就不會(huì)再讓自己失望。不過生活總是這么充滿戲劇性:當(dāng)我為自己的學(xué)歷問題擔(dān)憂時(shí),其實(shí)從來沒有人因此歧視過我;而當(dāng)我能夠坦然地拿這個(gè)話 題開玩笑時(shí),卻著實(shí)被歧視了一把——因?yàn)闆]有本科學(xué)歷,美國大使館根本不考慮給我發(fā)放工作簽證。在未來的若干年里,這也會(huì)是我的一個(gè)有趣談資吧。
回 想這五年來的經(jīng)歷,曾經(jīng)有過好多次的因禍得福、好多次的貴人相助。我很愿意說這是因?yàn)樽约好茫贿^另一種解釋也多少有些意思:每件事情的“意義”,其實(shí) 是我們在事后給它加上的;如果用平和的眼光看待已經(jīng)發(fā)生的事實(shí),用積極的態(tài)度迎接即將到來的明天,也許所有的塞翁失馬都可以變成焉知非福。是的,這似乎與 因果律不符,但宗教信仰原本就不同于因果律。我信所有的事情都是神祗的安排,所以我欣然接受。
但聽天命并非無須盡人力。神會(huì)給你祈求的一 切,前提是你知道自己想要什么。關(guān)于“發(fā)現(xiàn)自己的興趣和特長”,已經(jīng)有無數(shù)人講過無數(shù)次,實(shí)在不必再作強(qiáng)調(diào)。我想說的是,僅僅知道“了解自己”的重要性還 是遠(yuǎn)遠(yuǎn)不夠的,我們需要做更細(xì)致的工作來真正了解自己。借助一些專業(yè)而全面的心理、性格測試,你可以找到自己的性格特質(zhì)和缺陷;然后你可以制訂出具有可操 作性的計(jì)劃,充分發(fā)揮自己的長處,同時(shí)避免性格缺陷造成嚴(yán)重?fù)p失——舉例來說,假如你害怕演講,你不必費(fèi)心(也不太可能)把自己培養(yǎng)成口若懸河的天才演說 家,但可以(并且應(yīng)該)想辦法避免因?yàn)榫o張而忘詞;而且你還可以發(fā)揮自己善于收集資料的特長來幫別人準(zhǔn)備講稿,讓別人替你去演講。當(dāng)然,最重要的還是自己 的感受:花一點(diǎn)時(shí)間讓自己靜下來,然后問自己到底喜歡什么、想要什么。做自己喜歡的事情更容易做出成績;而每天浪費(fèi)8小時(shí)來做自己深惡痛絕的工作,不啻是 在慢性自殺。
盡管輟學(xué)這件事困擾了我數(shù)年,但我并不因此而憤恨——甚至有些感激。因?yàn)闆]有文憑,讓我比別人少了一道可以依靠的墻,因此也 逼迫著我不斷努力前進(jìn),不敢須臾懈怠。雖說自認(rèn)為已經(jīng)跨過了這條鴻溝,但我并不想忘記那種害怕一覺醒來一無所有的危機(jī)感。就讓那個(gè)悵然若失的夢一直伴隨著 我吧,做一個(gè)“大學(xué)未畢業(yè)程序員”,我已經(jīng)習(xí)慣了這種狀態(tài),感覺還真不錯(cuò)。
用五年時(shí)間跨越鴻溝
——“大學(xué)未畢業(yè)程序員”的流水帳
禪宗說 學(xué)佛有漸修頓悟之分。說到“跨越鴻溝”,總讓人覺得像是習(xí)武之人一夜間打通任督二脈,霎時(shí)間神清氣爽身輕如燕,原本百思不得其解的大難題突然就迎刃而解。 這般境界著實(shí)令人神往,可惜我從參加工作以來五年有余,回想起來竟然沒有這么一個(gè)天人合一的頓悟時(shí)刻。遺憾之余,只能安慰自己說:這就是所謂“資質(zhì)”吧。 沒有當(dāng)下開悟的聰穎天資,所以也難以體會(huì)跨越鴻溝的愉悅了。
不過想想五年前的自己,卻也不是全無變化——不管技術(shù)、寫作還是待人接物,就 連頭頂冒出的幾根白發(fā),都見證著自己的成長。不過最大的變化還是在自己心里:當(dāng)年背著書包和無法完成的學(xué)業(yè)黯然離開校園的男孩,現(xiàn)在已經(jīng)可以淡然地拿自己 這段經(jīng)歷打趣了。能夠坦然面對自己心中最不堪回首的往事,這也算是跨過一道鴻溝了吧。
北京理工大學(xué),我的母校,是一所有著嚴(yán)謹(jǐn)學(xué)風(fēng)的高 校。在受她嚴(yán)格的理工科基礎(chǔ)訓(xùn)練而獲益匪淺的同時(shí),我終于也沒能達(dá)到她期望的標(biāo)準(zhǔn)。2001年,在學(xué)業(yè)還剩下一年尚未完成時(shí),我不得不選擇了離開母校—— 以一個(gè)失敗者的身份。從那時(shí)候開始,我常常會(huì)做一個(gè)夢,夢見自己正在高三的教室里復(fù)習(xí)準(zhǔn)備高考,一邊還鼓勵(lì)自己說“這次終于有機(jī)會(huì)把大學(xué)讀完了”。能夠順 理成章地拿到本科文憑的大多數(shù)人,恐怕是體會(huì)不到這種悵然若失的缺憾感的。
如果說夢中的缺憾感只是令人心緒不寧的話,白天需要面對的就是 更加現(xiàn)實(shí)的問題了:一個(gè)機(jī)械工程系的肄業(yè)生要如何找到一份工作來養(yǎng)活自己?雖然一直熱衷于編程,在學(xué)校里也有些小小的實(shí)踐經(jīng)驗(yàn),但我實(shí)在沒有自信能靠這樣 的背景留在IT圈里。好在當(dāng)時(shí)供職聯(lián)想的孟巖熱心相助、《程序員》雜志蔣濤總編不拘一格、再加上當(dāng)時(shí)創(chuàng)刊剛一年的雜志正需要青壯勞力,我的提前退學(xué)反倒成 了因禍得福,早早地就給自己找到了一份工作。
這“因禍得福”之說并不純是發(fā)揚(yáng)阿Q精神:雖說薪水不高加班不少,但《程序員》雜志編輯部仍 然是一個(gè)難得的優(yōu)秀團(tuán)隊(duì);更重要的是,在這里可以接觸到前沿的技術(shù)和高端的視野,這對于正在渴求知識的我來說無疑是天賜良機(jī)。而且做雜志編輯還能近水樓臺(tái) 先得月地接觸到圖書出版機(jī)構(gòu),我的《重構(gòu)》、《最后期限》、《與熊共舞》等幾本譯作都是在這段時(shí)間里完成的——對我而言,從事翻譯工作最大的受益者還是我 自己,因?yàn)榉g的過程讓我真正將一本書讀得通通透透。試想一下,這些書籍都是Martin Fowler、Tom DeMarco等前輩的心血凝粹,能將它們讀懂又怎會(huì)不大有裨益?
但作為雜志編輯的一個(gè)缺陷也逐漸顯露出來:雖然能夠看到到很多技術(shù)文章 和案例分析,但畢竟沒有機(jī)會(huì)親手開發(fā)一個(gè)真正的軟件。每天只是高談闊論,畢竟站著說話不腰疼,一來二去就成了個(gè)眼高手低的毛病。就算自己嘗試寫些程序,但 一如溫伯格所說,不從事專業(yè)的軟件開發(fā),就永遠(yuǎn)只是業(yè)余選手,對于“專業(yè)”的問題終歸想不明白。況且媒介傳播——縱令是關(guān)于“軟件開發(fā)”的媒介傳播——與 軟件開發(fā)始終是兩碼事,所需的心理狀態(tài)和技能是截然不同的。于是在2003年初非典肆虐的日子里,我那顆程序員的心又開始躁動(dòng)起來。要去做一些真正的軟 件,我才會(huì)知道軟件究竟應(yīng)該怎么做,模模糊糊中這就是我對自己說的話。
想要去做真正的軟件也不是那么容易的,我的學(xué)歷問題仍然是求職路上 的攔路虎——我甚至不知道該如何在簡歷里寫自己的教育背景,只好含糊其詞地寫上“曾就讀于北京理工大學(xué)機(jī)械工程學(xué)院”。這樣一份簡歷鐵定入不了HR主管們 的法眼,我這樣告訴自己,所以還得另辟蹊徑。這時(shí)候一位老友,在BBS上認(rèn)識的石一楹成了我的貴人:此人經(jīng)驗(yàn)豐富,技術(shù)精湛,做著某公司的技術(shù)總監(jiān)和好幾 家公司的顧問,而且正好還在我素來向往的人間天堂杭州。于是幾番電話之后,我便定下了前往杭州的機(jī)票。
石一楹給我第二大的幫助——最大的 幫助自然是幫我在杭州找到一份工作——是教給我敏捷開發(fā)的理念。尚在北京時(shí),我曾經(jīng)通過電話問他:需要準(zhǔn)備哪些背景知識。他既沒有叫我去學(xué)J2EE,也沒 有讓我補(bǔ)習(xí)SQL,只是要我把《解析極限編程》再讀一遍。(當(dāng)然我是刻苦的好學(xué)生,我把整套XP叢書都買來重讀了一遍。)到了杭州以后,除了西湖的迷人風(fēng) 光之外,他的工作方式同樣令我震驚:測試驅(qū)動(dòng)、持續(xù)集成、故事卡、結(jié)對編程……這些似乎只有在書里、在老外的辦公室里才可能出現(xiàn)的東西,就這么活生生地出 現(xiàn)在我眼前。這讓我第一次產(chǎn)生了一種朦朧的感覺:我們也可以用正確的方式做優(yōu)秀的軟件。
后來由于種種原因,這些敏捷的因素在我們的項(xiàng)目中 出現(xiàn)得越來越少。到最后,除了一套盡管談不上完備、但至少還頻繁執(zhí)行的測試和時(shí)常進(jìn)行的重構(gòu)之外,我們的項(xiàng)目已經(jīng)基本回到大家更熟悉的、“普通”的工作方 式了。這個(gè)現(xiàn)象引發(fā)了我的很多思考:為什么明明知道敏捷是更好的方式,我們卻無法做到呢?說來有趣,最后解開我這個(gè)疑惑的竟然是《壇經(jīng)》中一段禪宗典故。
五祖弘忍座下大弟子神秀偈云:
身是菩提樹
心如明鏡臺(tái)
時(shí)時(shí)勤拂拭
勿使惹塵埃
更 多人記得的是六祖慧能與之針鋒相對的那一偈。但很多人似乎忘記,以一目不識丁的獦獠之身,能聽人頌《金剛經(jīng)》而有所悟,六祖的根性不是常人能比的。這世上 有圣人能憑過人靈性而頓悟成佛,但更多凡夫俗子做不到這一點(diǎn)。這根性愚鈍的凡夫俗子,難道就不用修行、無須上進(jìn)了么?別忘了,五祖讀了神秀的偈,也說“依 此偈修,免墮惡道;依此偈修,有大利益”呢。
于是我開始觀察,觀察身邊的同事,也觀察自己。我觀察到一個(gè)有趣的現(xiàn)象:很多同行(也包括我 自己)想要偷懶、想要逃避那些嚴(yán)格的紀(jì)律時(shí)常用兩個(gè)借口。其一曰“但求頓悟”——“Stallman/Linus/Gates……寫emacs /Linux/Basic……的時(shí)候做單元測試了嗎?”(所以我也不用做單元測試。)其二曰“不耐漸修”——“昨天就有一塊代碼沒有單元測試了。”(所以 今天這塊代碼不寫測試也不算太糟。)親愛的讀者,不妨和我一道來摸著胸口拷問一下自己,這是不是我們常用的兩套說詞?
回答其實(shí)很簡單:第 一我們不是Stallman/Linus/Gates,他們是天才而我們不是;第二我們的工作還得繼續(xù)做下去,而且我們希望把它做得出色。熵增加是宇宙的 定律,為了讓我們的程序、我們的項(xiàng)目、我們的團(tuán)隊(duì)、我們的工作環(huán)境有序而不混亂,我們就必須不斷地向其中注入能量——既然還做不到“菩提本無樹,明鏡亦非 臺(tái)”,我們就必須“時(shí)時(shí)勤拂拭,勿使惹塵埃”。(兩年后,當(dāng)我成為一名ThoughtWorker之后,我才真正明白了這件事。這是后話,暫且按下不 表。)
在杭州的日子里,除了與軟件開發(fā)的技術(shù)和經(jīng)驗(yàn)之外,我的另一大收獲是開始信佛。照著佛經(jīng)所說“觀身如身,觀心如心”的修行方法,我 學(xué)會(huì)了如何去觀察——當(dāng)然包括觀察別人、觀察外界,但更重要的是觀察自己。觀察自己的身體感受和心理活動(dòng),并時(shí)時(shí)調(diào)節(jié)身體與心理狀態(tài),使自己身心平和安 定。(除了別的好處之外,這種練習(xí)讓我近兩年很少生病,偶染小恙也心知肚明該如何調(diào)理痊愈,這算是信佛之后的一個(gè)意外收獲。)就這樣帶著一些經(jīng)驗(yàn)、一些思 索和一些收獲,2004年,在離開學(xué)校正好三年的那一天,我再次撥通了蔣濤的電話。
這次回到北京、回到傳媒的原因有二。其一,我已經(jīng)親眼 見到好的經(jīng)驗(yàn)?zāi)軌蛉绾斡行У貛椭浖_發(fā),我希望創(chuàng)造條件讓更多好的經(jīng)驗(yàn)被傳遞給更多的人;其二,除了軟件開發(fā)之外,我仍然對麥克盧漢的大眾傳播理論懷著 一份向往——有些事,你知道自己不會(huì)一直去做,但如果沒有過足癮就會(huì)一直惦念。媒體工作于我,就是這樣的一件事。此時(shí)蔣濤的工作重心已經(jīng)從《程序員》雜志 轉(zhuǎn)到了CSDN網(wǎng)站,我也就成了網(wǎng)站的技術(shù)主編——在Web 2.0熱潮到來之時(shí)為一個(gè)擁有超過100萬用戶的網(wǎng)站工作,誰又能說這不是一種幸運(yùn)呢?
在 他的代表作《理解媒介》中,麥克盧漢提出了一個(gè)影響整個(gè)大眾傳播領(lǐng)域的理論:媒介即是內(nèi)容。從一個(gè)非常狹窄的意義上來說,這就意味著經(jīng)營媒體的重點(diǎn)不是制 造內(nèi)容,而是打造一個(gè)傳播平臺(tái),讓內(nèi)容的生產(chǎn)者與消費(fèi)者在這個(gè)平臺(tái)上互通有無、各取所需。在根源上,這正是我重新回到傳媒領(lǐng)域的原因:除了開發(fā)軟件、享受 編程的樂趣之外,我一直向往成為一名“技術(shù)傳播者”——通過我的工作讓更多人了解軟件開發(fā)的知識和最佳實(shí)踐,用我的思想去幫助別人獲得成功,這給我?guī)淼?滿足感絲毫不亞于解決一個(gè)技術(shù)難題。但與此同時(shí),我也越來越清楚自己的個(gè)性并不適于從事媒體工作:對技術(shù)的熱愛使我無法中立地對待各種不同觀點(diǎn),而“中 立”卻是媒體的一大要素;而且我喜歡解決具體問題勝于人際交往,這也決定了我無法成為一個(gè)優(yōu)秀的記者或主編。就在不斷努力和認(rèn)識自我的過程中,又是半年時(shí) 間過去了。Martin Fowler來了。
直到現(xiàn)在,每當(dāng)被問到“最尷尬的事”時(shí),我總會(huì)講這個(gè)故事。我們跟上海交大借了一間大教室, 我們拉出了醒目的橫幅和招貼,我們邀請了三百位客人和十多位知名專家,這全都是沖著Martin的面子。但就在講座開始前4個(gè)小時(shí),Sidney Pinney(時(shí)任ThoughtWorks中國公司總經(jīng)理)在電話里告訴我:“Martin因病不能來現(xiàn)場,我很抱歉……”盡管事后有各種關(guān)于我當(dāng)時(shí)如 何鎮(zhèn)定自若的傳言,不過說實(shí)話,我腦子里冒出的第一個(gè)念頭是“趕快刮臺(tái)風(fēng)全城戒嚴(yán)吧……”也許又是一次因禍得福,這樁倒霉事讓我和 ThoughtWorks一下子對彼此有了更多的認(rèn)識。回到北京以后,郭曉(現(xiàn)任ThoughtWorks中國公司總經(jīng)理)告訴我:也許我真正想做的是咨 詢。那么好吧,還能有比ThoughtWorks更讓我心儀的咨詢公司么?
但即便如此,當(dāng)時(shí)的我其實(shí)也沒想到,自己究竟會(huì)有多么心儀 ThoughtWorks這家公司——也來不及想,唯一的想法就是“終于可以盡享編程的快樂了”。第一個(gè)項(xiàng)目對我來說熟稔多過生疏:卡片墻、大白板、圓桌 和隨意滑動(dòng)的椅子、免費(fèi)的可樂、兩人一臺(tái)電腦……正是我寤寐以求的工作環(huán)境啊。2006年春節(jié)剛過,公司又派我去印度參加了ThoughtWorks University的學(xué)習(xí)。拿到畢業(yè)證的那一刻,淚都幾乎要下來——好歹是張文憑啊,哪怕并不是真正的大學(xué)呢。
在 ThoughtWorks的時(shí)間稍長,特別是先后拜訪了印度班加羅爾和澳大利亞墨爾本兩處辦公室之后,我漸漸明白了一件事:這世界上的天才比我們通常想象 的要少得多,但凡人所能達(dá)到的成就卻也比我們通常想象的要偉大得多。沒錯(cuò),我的意思就是:ThoughtWorks并不是“天才幼兒園”,這里的800多 名員工都是有七情六欲、食人間煙火的凡人。這些凡人做出了令人刮目相看的事情、營造了令人向往的環(huán)境,僅僅是因?yàn)樗麄儽3种约合蛏系男摹?br />
拿 ThoughtWorkers常用的一個(gè)比喻,每個(gè)人都是一個(gè)熱氣球,在地心引力的作用下總想往下掉——累了,病了,心情不好了,打球受傷了……無數(shù)的理 由讓我們想躺在沙發(fā)上度過又一個(gè)無所事事的安閑夜晚。要讓氣球越飛越高,唯一的辦法就是不斷地給它加火。個(gè)人是如此,項(xiàng)目的運(yùn)轉(zhuǎn)、企業(yè)的環(huán)境也莫不如此。 良好的項(xiàng)目不會(huì)自然而然地永遠(yuǎn)良好下去,它要靠每個(gè)人不斷改進(jìn)它的質(zhì)量;振奮人心的工作環(huán)境不是從天而降的,它是靠每個(gè)人從一張貼紙、一個(gè)玩具開始積累出 來的。有些熱氣球飛得那么高,也許只是因?yàn)樗鼈円恢睕]有放棄向上飛。
于是我真正釋然了。五年的時(shí)間,我已經(jīng)走到了這里。盡管自己還是那么 微不足道——我學(xué)習(xí)新技術(shù)總是很笨,我到現(xiàn)在還不懂編譯原理,我的英文口語結(jié)結(jié)巴巴……但我知道自己會(huì)一直向上飛。哪怕只有一點(diǎn)點(diǎn)進(jìn)步,只要每天都比前一 天更好一點(diǎn)點(diǎn),我就不會(huì)再讓自己失望。不過生活總是這么充滿戲劇性:當(dāng)我為自己的學(xué)歷問題擔(dān)憂時(shí),其實(shí)從來沒有人因此歧視過我;而當(dāng)我能夠坦然地拿這個(gè)話 題開玩笑時(shí),卻著實(shí)被歧視了一把——因?yàn)闆]有本科學(xué)歷,美國大使館根本不考慮給我發(fā)放工作簽證。在未來的若干年里,這也會(huì)是我的一個(gè)有趣談資吧。
回 想這五年來的經(jīng)歷,曾經(jīng)有過好多次的因禍得福、好多次的貴人相助。我很愿意說這是因?yàn)樽约好茫贿^另一種解釋也多少有些意思:每件事情的“意義”,其實(shí) 是我們在事后給它加上的;如果用平和的眼光看待已經(jīng)發(fā)生的事實(shí),用積極的態(tài)度迎接即將到來的明天,也許所有的塞翁失馬都可以變成焉知非福。是的,這似乎與 因果律不符,但宗教信仰原本就不同于因果律。我信所有的事情都是神祗的安排,所以我欣然接受。
但聽天命并非無須盡人力。神會(huì)給你祈求的一 切,前提是你知道自己想要什么。關(guān)于“發(fā)現(xiàn)自己的興趣和特長”,已經(jīng)有無數(shù)人講過無數(shù)次,實(shí)在不必再作強(qiáng)調(diào)。我想說的是,僅僅知道“了解自己”的重要性還 是遠(yuǎn)遠(yuǎn)不夠的,我們需要做更細(xì)致的工作來真正了解自己。借助一些專業(yè)而全面的心理、性格測試,你可以找到自己的性格特質(zhì)和缺陷;然后你可以制訂出具有可操 作性的計(jì)劃,充分發(fā)揮自己的長處,同時(shí)避免性格缺陷造成嚴(yán)重?fù)p失——舉例來說,假如你害怕演講,你不必費(fèi)心(也不太可能)把自己培養(yǎng)成口若懸河的天才演說 家,但可以(并且應(yīng)該)想辦法避免因?yàn)榫o張而忘詞;而且你還可以發(fā)揮自己善于收集資料的特長來幫別人準(zhǔn)備講稿,讓別人替你去演講。當(dāng)然,最重要的還是自己 的感受:花一點(diǎn)時(shí)間讓自己靜下來,然后問自己到底喜歡什么、想要什么。做自己喜歡的事情更容易做出成績;而每天浪費(fèi)8小時(shí)來做自己深惡痛絕的工作,不啻是 在慢性自殺。
盡管輟學(xué)這件事困擾了我數(shù)年,但我并不因此而憤恨——甚至有些感激。因?yàn)闆]有文憑,讓我比別人少了一道可以依靠的墻,因此也 逼迫著我不斷努力前進(jìn),不敢須臾懈怠。雖說自認(rèn)為已經(jīng)跨過了這條鴻溝,但我并不想忘記那種害怕一覺醒來一無所有的危機(jī)感。就讓那個(gè)悵然若失的夢一直伴隨著 我吧,做一個(gè)“大學(xué)未畢業(yè)程序員”,我已經(jīng)習(xí)慣了這種狀態(tài),感覺還真不錯(cuò)。