每次別人看著我年少無知的臉和我做的工作的時候, 都會像狗仔隊一樣扒我的人生, 我一次又一次的去背我的人生告訴朋友, 告訴陌生人, 今天我寫一下我自己28年的人生, 看到我的博客的同學以后見面不用再聽我吹一遍牛了。
關于名字
王勇, 這個在中國大陸熟的不能再熟的名字了, 在公司大家都拿我的名字開刷, 什么王勇糖炒栗子啦, 王勇烤豬腳啦, 是的, 黑我的同學, 這些都是我的產業, 他們每天都在使用我的名字進行各種生意, 可惜我真的去買栗子和豬蹄的時候, 我真的好想對老板說: “嘿, 老板, 我也叫王勇, 你能不能給我打個折扣?。俊?br> 至于為什么叫這么俗的名字? 傳說當年我生下來一個星期都沒有名字,老爸取了一個星期都沒有取出來, 最后奶奶就說就叫王勇吧... 所以我發誓以后我自己有孩子了, 一定給他(她)取一個不會和別人重名的名字, 我的寶貝女兒, 你長大不要怪你老爸啊, 我是為了避免你長大以后被各種同學黑 ... ;)
十歲之前的童年生活
我和大多數80后這一代人過得沒啥區別, 小時候各種調皮搗蛋, 天天和同學打架, 主要是打別人, 從幼兒園開始一直打到小學, 比我高一頭的同學臉上一般都是我的爪印。
日常的生活都是80后滿滿的回憶, 早上吃著5毛錢的糯米飯去上學, 學校喝著3毛錢的冰水, 吃一些亂七八糟的玩意(攪攪糖, 口紅棒棒糖), 吹著大大卷, 早上在學校丟火藥球嚇女同學 ... 放學后就玩警察抓小偷的游戲滿大街跑, 我最喜歡當小偷了, 因為我跑的最快, 看著警察在后面追不上你的感覺真是太爽了。
周末玩的就是一些無聊的個人游戲, 自己在家玩可以拼各種形狀的玩具(那時候還沒有錢買樂高這種高大上的玩具), 一個人拿著小車會在空中飄半天, 然后想象小汽車越過何種腦海里虛構的復雜地形(比如桌子、沙發、有折痕的床單), 長大才知道小時候一直在玩“增強現實”的高端游戲。
那時候中國的經濟還是一般般的, 沒有什么電腦也沒什么互聯網, 最豐富的媒體的就是電視(廣告就像文本鋪滿屏幕, 而且還很多), 不像現在一樣, 手機就是形形色色內心空虛人的第三只手, 那時候每天起來都是非常無聊的, 正是因為無聊, 所以時間很漫長,周末生活也過得很有意思, 比如和小朋友打洋畫, 把降落傘從三樓上扔下去, 觀察傘兵一點一點落下去的過程感覺那時候的空氣像棉花一樣, 直到看不到以后就快速跑下樓再來一次。
小的時候, 放學后大人能帶出去兜一圈放風, 吃點燒烤, 買瓶汽水喝, 周末走到河邊買一個人形的雪糕就已經非常幸福了, 不會要求大人買什么玩具, 早餐錢剩下5毛一塊的在學校門口買一個夜光機器人就已經非常滿足了, 最美好的時候就是過年的時候一家人坐在一起好好吃一頓團圓飯, 大人們嘮嘮叨叨說一些我似懂非懂的話(那時真幸福, 居然聽不懂)看春晚, 其實春晚也看不懂, 唯一的印象就是好多糖和瓜子, 然后一家人坐在一起比較熱鬧, 好的話過年那幾天大人會給10塊去公園路買一個玩具(變形金剛、各種各樣的槍)。
玩具其實最多的還是小汽車和各種小機器人, 記得小時候家里面做生意, 有一種零食里面會帶一個小兵, 為了湊足一個部隊, 把30多包零食都打開, 怕大人知道, 就把零食全部倒進書包里, 最后也忘記那些零食哪里去了(反正我沒有吃, 可能某個給我洗書包的家人妥善處理那些零食的后事了吧)。
那時候的電視節目也比較少, 除了大家都會看的西游記外就是各種動畫片, 為了度過無聊的周末(現在的小朋友周末都好幸福, 各種玩), 就守在家里面看動畫片, 最佳看動畫片的方法就是拿著鉛筆把電視報的所有動畫節目全部按照時間順序圈出來, 然后就按照時間線切換臺, 這樣可以避免來回切臺的時間也比較容易有延續性, 幸福的苦惱時有時候兩個都很喜歡的動畫片會前后有重疊, 至于內容嘛, 和大多數80后一樣, 就是圣斗士星矢、變形金剛、叮當貓啊, 最喜歡的還是一個叫做笨笨的黃色車, 小時候看過的最高科技的動畫片就是星際迷航, 那時候還不知道什么名字, 只知道有一個圓餅樣子的奇怪飛船, 看過最高科技的電視劇就是霹靂游俠和Back to feature。
十歲之前的人生就這么懵懵懂懂的過去了, 和大多數同齡人沒啥區別
十八歲之前的人生
十歲那年去了河南, 為啥去那么遠的地方生活? 因為從小父母就離婚了(我悲催的生活在一個離婚世家, 一家三代都離婚), 從小到大都是生活在家庭暴力的環境中, 一般來說每周都會被打一次, 打習慣了也成銅墻鐵壁了, 當然也鍛煉了自己好多打別人的技巧, 奶奶比較關心我, 每次問我腿上怎么了, 我都說自己在地上摔的(沒有必要告訴她是被打的, 因為那只會帶來更多我無法干預的家庭暴力, 多一事不如少一事)。
本來準備在這種家庭下, 就這樣混下去, 和大多數人一樣讀書, 打架, 混日子, 反正大家都是這樣過的, 大人的世界不論爭吵還是被打, 隨他們去吧, 反正我個人太渺小, 除了逆來順受, 一個人出去玩, 該被打的事該來的一件都不會少, 所以也不太在意這些。直到有一天被老爸用啤酒瓶砸了, 哎, 還是趕緊走吧, 要不早晚要被他打死的, 所以從小到大, 父母在我心中就是兩個名詞以外沒有任何意義, 每當看到很多同學嗮爸爸媽媽的時候, 我心中一點漣漪都沒有, 爸爸媽媽是什么? 能吃嗎? 一切都只能靠自己。
所以跟著姑姑來到了河南, 管他呢, 當時沒想那么多, 反正生活再糟糕也不會糟糕到哪里去, 第一次來到河南, 真的好興奮, 十歲之前都生活在城市中心, 周圍的景物都是群山, 城市小巷, 第一次來到農村, 第一次來到一望無垠的平原, 真是爽啊, 從來沒有看到那么多韭菜(后來知道那是小麥, 囧), 第一次可以吹刮幾十公里的風, 而不是城市小風, 真的很爽, 一切都是那么新奇, 感覺永遠都跑不到盡頭, 去河南時帶的天皇巨星和舞蹈天使第一天玩的時候就被踩壞了(以后才知道那是我將來8年唯一的玩具, 就這么悲催的在第一天玩壞了)。
去河南的時候剛好趕上香港回歸前夕, 本來準備看三個月動畫片和電視的, 每天看到的時候都是鄧爺爺去世的畫面, 那叫一個郁悶啊(以后也習慣了, 如果我自己想要啥之前, 老天一定不會給我那樣美好的東西的)。
然后就在河南開始上小學和中學, 在河南學會了騎自行車, 學會了吸農村的清新空氣, 學會了下河摸魚, 學會了在泥堆里摸爬滾打, 學會了放學后要給大人燒火做飯, 去地里干活, 學會了當城市學生還在被窩里面的時候, 農村的小孩要4點30起床騎行幾十公里自行車去學校上早自習。
當然也丟掉很多東西, 比如很少打架了, 至少頻率少了很多, 倒不是因為自己懂事很多, 而是作為一個南方人個子就要比北方人矮一頭, 不論從個頭和力量上來看都差距太懸殊了, 從小打架的人自然明白打不過就不要逞強, 所以在河南就很少打架了, 也很少打得過別人了。
北方的生活過的還很樸實的, 從十歲到十八歲大部分最美好的時間都是在學校度過的, 家里面有姐姐, 弟弟, 妹妹, 其實是姑姑家, 一個遠離父母的小孩異走他鄉其實沒什么盟友的, 同學們不會太尊重你, 家里面人也不會太瞧得起你, 沒啥地位, 更不會有疼你的人圍著你轉, 你不要給家里面惹事就行了, 在外面打架也不要回家說一個字, 除了被鄙視和批評外, 不會像真正關心你的人說你有沒有受傷什么的。
那時唯一讓自己忘卻這一切的事情就是努力學習, 從小學到中學都一直是學霸模式, 很少跌出年級前三(班級第二)吧, 除了有一段時間腦子發昏了不想學, 只要表現好, 老師其實就是8年來唯一讓自己感覺到溫暖的地方吧, 至少有人重視你(不管他們是真正關心你, 還是假裝因為你是好學生能給他們爭光什么的)。那時候很多同學都是非常討厭學習的, 別人都是作業做不完, 我還主動問老師要卷子和參考書來做題, 所以其實在學校來說除了會被當成學習好的以外, 也沒有什么真心朋友, 因為你的學習太好了(別人年底都是發一張獎狀, 你一個人就領了8張), 家里面有一面墻貼了30多張獎狀, 每次都當做家里面的形象墻炫耀給外人以外, 所以沒有人愿意跟你走太近自討沒趣。 反正也沒什么, 一個人就一個人唄, 除了學習還能干啥? 沒啥可干, 其實那時候學習好真的不是因為我愿意學, 實在是沒人有愿意和你玩, 又不想城市那樣那么多玩具, 除了學習真的沒有什么人生樂趣了。
就這樣, 學霸模式開啟, 從小學到中學, 到縣里面最好的高中, 小學和初中都是離家很近, 高中要住校, 上了高中時第一次一個月回家一次的生活, 開始還不習慣, 后來還是覺得很爽的, 一個人多清靜啊, 還可以傻樂呢。高一才去的第一個月就把一學期的數學書看完了, 自學所有數學原理, 題也做完了, 反而有小小的失落, 高中的東西也沒什么難的, 就比初三學的多一點點, 然后是物理和化學也很快學習完了。 當同學們還在一門門的上高一的課程的時候, 我自己在看高二高三的東西, 一年下來三年該讀的書都讀的差不多了, 人生也沒啥樂趣了, 上課老師講的也是我都會得東西, 數學什么的, 很easy在 140分以上。 所以從那時候就去書店借各種亂七八糟的書(小說, 文學名著, 人物傳記)看, 老師一開始還為難我讓我站起來回答問題, 最后發現雖然上課不聽講, 但是都回答正確, 最后老師們都達成默契了不要自討沒趣, 也再也不會有老師叫我起來回答問題了。那時候還是班上班長(但是真的人緣很差, 其實班里面也管的一塌糊涂), 本來就這樣, 我學我的, 大家學大家的, 老師依舊上課, 也沒什么不好, 但是哪知道那年家里教學費比較困難, 同學們居然給我搞了煽情的捐款活動, 從小到大就是一個要強的小孩, 從來不想求別人, 這么一來把我徹底逼到沒法混下去了, 一氣之下再也沒去學校上課了, 依然是一個月回家一次, 但是去縣里也是在住的地方看書, 或者去書店呆一整天, 書店里面的書比學校的好看多了, 看了《鋼鐵是怎么煉成的》, 免不了俗看了大多數文學名著, 自己慢慢的也有了很多獨立思想, 發現了以前真的是死讀書, 做那么多題干嘛? 題海戰術不但達不到強化知識的目的, 反而整個學校(后來發現是整個中國)老師和學生都在玩貓和老鼠的游戲, 一道最樸素的數學原理本來就是那么簡單, 只要懂了以后長大就可能用的上, 非要把數學題做的像八股文一樣, 要去揣摩各種場景和文字表達細節, 大多數學生完全是被老師玩死的, 英文課每天都讓學生像大學教授那樣研究語法和詞法, 但是99%的學生連流利的英文都說不出來, 后面看到美劇才知道英文從來都不會像學校教的那樣使用。
那時候最流行的歌手是阿杜, 最有代表性的文學是韓寒(就是你們現在看到的那個賽車手)的《三重門》, 讀了太多真正有觀點的書籍, 真的感覺人生不應該留在學校里面等死, 反正我不知道學這些沒用的東西以后真的踏入社會能干啥? 慢慢的, 原來從單純的學習為了收到老師的表揚, 為了所謂虛偽的分數以外, 我到了另外一個極端, 徹底不再學習學校任何課本, 也不再參加學校的任何考試, 反正我也不去學校, 也沒有在外面打架(依然打不贏), 沒惹什么事, 老師就當我是透明人了, 學校也沒有找到開除我的借口, 就這樣你情我愿的度過了半年, 那時候青春期超級叛逆, 平平安安的過著大多數打架學生們向往的生活, 想去學校就去, 不想去就不去, 反正也沒人關心, 打電話給爸媽? 我簡直對這一招免疫。
本來就準備高中三年的后一半也就這樣在書店泡下去的, 這時候親媽找到河南來了, 讓我回老家學習, 要回去就回去唄, 反正我在河南吃饅頭也吃煩了, 回到老家繼續讀高中, 依然過的是三不少年的生活(不聽課, 不上學, 不參加考試)的生活, 家里面都以為我朝九晚五的出去是去學校, 誰知我在市里面最大的書店過了一年半, 那時候我涉獵的書籍更加廣泛了, 除了流行的文學名著外, 我讀了很多非主流的書籍, 比如普魯斯特的《追憶似水年華》200多萬字的著作, 意識流的寫作風格影響我多年, 法布爾的《昆蟲記》十卷, 達爾文的《物種起源》,尼采的哲學全集...市里面的書店比河南的書店大多了, 幾乎所有的書籍你都可以讀到,所有偉人的傳記我都讀了個遍, 從居里夫人, 愛因斯坦到比爾蓋茨...我很享受我高中2年的生活都是在書店里面泡著長大的, 文學, 哲學, 數學, 生物, 科幻, 各種非主流小說, 都讀了一遍, 家里面買了幾千塊的書, 堆了滿滿一墻, 小時候錢都用于買玩具和打游戲機了, 長大90%的錢都用于買書了。
那時候聽音樂, 最喜歡聽一些有啟蒙的音樂, 比如齊柏林飛船、涅槃樂隊, 老鷹樂隊, 卡百利 ... 最喜歡搖滾和民謠, 最喜歡的歌手就是Bob Dylan 和 Neil Young, 感覺一個人能夠作為世界上特立獨行也是非常過癮的, 不管這個世界多么黑暗骯臟, 但是一個人能夠堅持自己喜歡的, 討厭自己不喜歡的, 雖然過得很孤僻, 但是過得真實, 我一個人穿著衛衣在書店里面一呆一天, 在書中體驗整個世界的生活過得非常充實, 那種一個人的生活的感覺只有真正熱愛孤獨的人才能體會 ...
高中的三年一晃就過去了, 馬上就要達到中國所有“莘莘學子”面臨的高考獨木橋, 多少人點燈復習卷子, 把自己的人生交給桌子上那一摞叫做“荒唐”的考題上, 有多少中國人抱著我上中學就好了, 我上了高中就懂事了, 我上大學就自由了, 所以高考是中國社會所有一連串謊言里面第一個,也是最荒謬的的謊言, 高富帥的子弟期望高考完了就可以離開大人到另外一個城市鬼混了, 而窮人家的孩子期望考一個好的大學然后以后的人生就可以登上巔峰了, 變成高富帥那樣, 過去十幾年貧窮家庭麻痹自己, 能考上好大學人生機會轉折了, 而真正浪費了9年時間學習進入的大學怎么樣了? 還不是該玩玩該咋地咋地, 有時候真的可憐那些拼命學習的考試機器(也包括從前的我), 學習那么多沒用的考題和分數有什么用呢? 最終來整個社會只有你自己相信分數能改變一切, 其實真的踏入社會后, 你會發現你作為地球上幾十億人的一部分, 你就像蟻群里面的一個小小的螞蟻, 你沒有錢, 沒有地位, 沒有虛偽的物質的一切, 你什么都不是, 沒有人認識你, 我可憐學習機器的地方是, 他們要比那些學?;旎旎ǜ嗟臅r間看透這個世界, 你看多少學霸怎么在社會上衰落的, 就像現在流行的一句話: 長大以后, 學習好的是給學習差的打工的, 其實并不是這些學習好的不聰明, 他們非常聰明, 但是他們的聰明是被這個荒唐的社會騙了而已, 而他們自己麻痹自己認為分數就是銀彈, 能解決任何問題。
中國教育最大的失敗在于他們沒有給這些未成年人看到真實殘酷的社會, 他們沒有教在社會上生存最重要的東西: 就是跌到以后微笑爬起來, 人在社會上最重要的就是你每天都會面對痛苦的事情, 你不喜歡的事情, 不順心的事情, 最起碼在你能力還不能支撐你個人理想的時候, 你要怎么去面對你個人, 你的家人還有這個操蛋的社會?這才是學校最應該教的, 但是學校教的是什么? 教的是社會主義, 教的是我們生活在一個無比美好的制度里面, 我們的將來就像烏托邦世界那樣光明和幸福。 為什么會有那么多學校好的以后混的那么差? 那么多好人, 保持自己良知一無錢二無背景的人活得那么慘? 因為他們在真正面對社會的第一天, 他(她)夢幻的心理落差太大了, 到達自己那顆還不夠足夠堅強的心臟能夠平靜的接受這一切, 他們看到的社會不是什么學習成績, 不是什么公平, 不是努力就能成功, 恰恰相反, 學校虛偽教的這些東西(還有一大堆拿著學生無知善良刷自己成績的老師們)是他們改變自己生活最大的障礙, 他們發現這么多年所學的不過是謊言, 一個人走下去是要有信念的, 當這些單純的生命發現謊言時, 首先打敗他們自己的就是謊言和被謊言培養的他們自己, 他們脆弱到社會都不用動手, 他們自己的信念, 他們自己的能力, 他們自己相信的一切就把他們打倒了, 很多人看透謊言以后就破罐子破摔, 只有少數人奮起直追, 開始自己的打工之旅, 給老板打工, 給銀行打工, 給政府打工, 給一切債務和家庭打工, 終老一生, 80后那些年輕時的理想(當科學家, 當醫生, 當雷鋒)也只是幼稚的回憶罷了, 有多少人真正為了自己的理想有骨氣的面對這個骯臟得想說臟話的社會?
那么多年的摸爬滾打, 我高中時候就看透了這些, 家人一直以為我是一個乖小孩, 學霸, 成績名列前茅, 上什么清華北大不在話下, 以后大家都可以指靠我了, 甚至那時候圍過來好多親戚, 給我出謀劃策, 真是好生幸福啊, 這么多人關心, 對于我這顆十幾年冷漠的心還真的有點不真實的讓我不習慣呢。 可惜, 老天還是有良心的, 不給這些人太多幻想, 當他們知道我幾年從來沒有去過學校, 哪怕參加考過一場試, 當大家都在忙高考的時候, 我依然在書店里面淡定的看著書, 學費一直交, 考場里面有一個空著的位置, 大家都以為一定是哪個悲催的人這幾天生病不能考試的, 當同學們都在幸災樂禍的時候, 我一個人還在書店看但丁的《神曲》, 哎, 真的浪費老媽給我喝的那些補品啊... 當這些人的巴結夢想破碎以后, 他們的真是面目就如同這個殘酷的社會一樣丑陋, 大家一致的離我遠遠的, 并各種預言我以后就是一個小混混, 好好的找點事做, 不要變成地痞流氓去麻煩他們, 當然也最好不要去找他們, 因為他們不喜歡窮光蛋。
還好我從小到大都是這么淡定, 沒有對這些虛偽的, 短暫的幸福報任何不切實際的幻想, 所以那幾天就像風一樣過去了, 家里人要死要活的讓我再讀一年, 我記得那幾天我心情很煩, 3年的書店讀書幸福生活就這樣過去了, 等著身份證到18歲好出去混, 在這之前只能在家聽他們嘮叨, 因為唯一出去的借口(去學校)現在都沒有了, 郁悶之極。一個冬天的早上的天, 天氣有點干流了鼻血,干脆吃一瓶高血壓藥, 加上一大堆亂七八糟的藥全部一起吞掉, 就躺在床上, 等著自己的生命流逝掉, 睡著之前還想著一會就回上演電視里面那種悲催的喪事了, 然后街坊領居這一個月都可以好好拿我這個默默無聞的人當做飯前飯后談資: 你看隔壁有個小孩因為高考自殺了, 然后各種虛情假意的嘆氣... 就像我前面說的, 每當我很想做一件事情的時候, 老天都會為難我, 晚上起床的時候我以為我自己到了天堂, 看到枕頭邊的鼻血發現自己只是睡著了, 鼻血也不流了, 哎, 坑爹的假藥, 專治它自己不擅長的病... 從那以后家人也不逼我了, 我開始了半年時間的自學...
上學的時候自己數學和生物成績最好, 還拿過奧賽獎, 理智地想了想, 數學再牛逼怎樣? 大學還有好多高深的數學沒學呢, 而且像數學家那樣過一生, 在中國這個社會還是算了, 真正的數學家除了過梵高那樣潦倒的生活也沒啥勁, 生物呢, 那么多器材, 那么多研究, 實驗室都是需要錢才能玩得轉。 有啥不花什么錢又能考自己的努力存活下去的呢? 看了身邊那臺賽揚筆記本, 就它了, 我只用厚臉皮去書店看書, 有電就可以活下去, 那時候自己除了會裝系統折騰Windows XP以外狗屁不會, 真正像電視劇那些黑客憑著自己高超的技術行走天下? 那時的我還是小屁孩一個...
18歲到程序生涯
原來有一個幼稚的想法, 去什么北大青鳥學一下, 電視上不是天天打廣告嘛? 最后還是沒去成, 我生性高傲, 聽了一下他們的課程列表, 狗屁課程, 這些我在書攤上買幾本電腦迷和程序員雜志都可以學到, 上天保佑他們幾萬一年的學費讓家人也徹底打消了讓我去的念頭。 怎么辦啊, 啥都不懂, 自學唄...
先買了一本清華大學《VB程序設計》, 看到一半以后, 感覺就是拖動一個控件到窗口里面, 雙擊控件, 然后寫一些代碼片段, 然后最后運行一下向導, 程序就運行起來了, 一個有窗口, 有按鈕的程序。 什么? 這就是寫程序, 這不是玩過家家嗎? 它怎么運行起來的? 這個窗口怎么畫出來的, 啟動這個程序都發生了什么, 我翻到了一半以后實在沒有耐心了, 整本書都是講, 拖一下控件, 點擊控件, 填寫事件代碼, 然后就完了... 心中直接告訴我, 這不是我想學的東西, 看了一半就把那本VB的書丟到一邊了...
那就學習一些真正高深的吧, 我首先把全英文的《C++完全參考手冊》讀完了, 最開始英文很差, 拿著金山詞霸一個單詞一個單詞的從書里面手動敲到金山詞霸里面看看單詞是什么意思, 第一天只能看懂一段話, 第一周后一天能看一頁了, 一個月以后一天能看十幾頁, 磨了2個月把C++從最基本的語法, 面向對象, 多態到后面的STL庫過了一遍, 自己第一個程序就是用了 C++ 寫了一個日歷...
后面有貪心的折騰了 Intel X86 匯編手冊, 拿著 nasm 一步一步的敲, 理解計算機的最基本細節, 讀了《計算機文化》了解的整個發展歷史和硬件結構, 然后買了一張DVD玩了 RedHat 6.0 和一大批非主流的Linux發行版, 那時候裝RedHat 還要三張光盤, 經常容易安裝掛, 但是第一次看到 gnome 和 kde 的時候感覺, wow, 世界上還有和 Windows XP 不一樣的系統, 而且還能把硬件給跑起來, 太牛逼了... 但是最后也沒啥用, 我還是一個沒有讀大學在外面混的人, 還靠著家人支撐著學習這些計算機知識, 但是 C++, 匯編, Linux發行版除了讓我開眼界外能吃嗎?
日子就這樣一天一天混過去了, 不知道未來干啥, 終于有一天我的身份證上讓我正式進入 17.5 歲, 我想自己終于長大了, 借了家人幾千塊就自己座火車去北京找工作了, 憑著一腔熱血和不服輸的勁, 相信只要自己努力就可以活下去。
事實再一次證明, too young too simple, 我一到北京就知道幾千塊就不是錢, 我最多只能在北京撐半個月, 找了一個地下室單間住著, 每天50, 算上吃飯和去網吧找北京工作公司, 一天花費100 ~ 200, 不到一個月就會掛在北京。我必須在一個月內找到工作, 那時候最困難的就是我的身份證沒有滿18歲, 網吧都去不成, 北京城那么大我怎么找那些公司? 最后想了辦法, 就在網吧門口堵著, 看著面善的人, 給他20塊然他幫我辦一張卡, 我拿著卡直接去上機了, 只要別人檢查的時候自信一點, 一般人都會想你既然都有卡即使很小也應該滿18歲了, 就這樣, 當時一進網吧就是一夜, 搜索北京各種安全公司的地址和招聘要求(我自我感覺還是有黑客精神的), 但是同時也知道自己技術還是處于稀爛的境地, 抱著去這些公司打雜的想法一個公司一個公司的跑, 很多安全公司的面試官非常討厭這種沒有預約毛遂自薦的, 而且最討厭我這種嬉皮士, 看著就像街頭混混的, 所以一般就直接轟走了, 少數幾個公司的面試官雖然知道最后結局還是會把我轟走, 還是好心的讓我做一下試題, 給我客套的聊一下, 讓我知難而退(其實現在自己創業特別能理解那些面試官們, 他們一眼就能看穿你, 所以如果以后有那些經歷跟我一樣的人看到我寫的這些文字, 千萬不要覺得你放低姿態, 一副愿意為牛為馬的想法就會打動面試官, 企業不會因為你不要工資就不會付出成本的, 企業任何地方都是成本, 即使他們讓你進去不搭理你, 讓你自身自滅, 你影響團隊士氣本身也是一種成本)。
在瞎折騰了半個月以后, 隨著身上的銀兩越來越少, 而工作的事情已經被拒了10多家以后, 才踏上北京的那股豪情萬丈早已被打回原形。 好漢不吃眼前虧, 趕緊買票座了兩天兩夜又回到家, 第一次的社會實踐就這么狼狽的結束了 ...
回到家以后, 家人想的遠遠比我成熟, 都說回來就好, 出去折騰一圈沒事就好?;貋碚乙环莅卜€的工作, 好好過日子比什么都重要。
做什么呢? 什么都不行, 就我哪點計算機知識去電腦城打工還行, 干點別的就不用想了。 我那是深知如果自己還要有出息的話, 除了C++, 匯編以外一定要學一樣能賺錢的技能, 否則哪里都玩不轉。但是相對于我自己的理想外, 更重要的是先要找一份工作自食其力的活下去。但是哪里有人會要我這樣一個青澀的什么都不懂的小孩呢?
最后我想, 我高中3年一直讀書的那家書店--西南風, 經常就是幾百或者上千的書往家里買, 書店的經理都認識我好幾年了, 覺得我一定是計算機方面的厲害學生。 而且為了我這個看似不正常但非常優質的客戶經常自己去其他地方調書來讓我買, 雖然不知道我名字但是已經非常熟悉我啦, 我如果去和他說來他們書店打工, 他一定不會拒絕。
果不其然, 當我這次是去打工而不是買書的身份去的時候, 他一口就答應了, 說第二天就可以來上班了。 我說我會負責把你書店中所有關于科技的書都整理的更上一個臺階, 其實換了誰都會答應, 一個月工資150元, 這種工資根本就不會有人來應聘, 只有我這種傻瓜才會來。(我第一份工資就150/月, 還生活的很好, 反而是現在創業以后看過太多大學生對 “理想本身太理想化” 了, 第一份工作就要超高薪水, 兩年后就業界大牛, 5年后就登上人生巔峰了, 現在的人啊, 不知道拿一份不符合自己能力的薪水是害自己而不是幫助自己)。
書店的工作倒也清閑, 一天只用上半天, 很容易就混過去了, 剩下半天就可以好好學習了, 而且作為書店員工, 可以免費借書回家看, 買書半價。 從上次北京之行, 光靠拼勁是不行的, 而且想要學習高深的技術, 沒個幾年的時間不用想了, 得先找一個比較容易的技術而且能賺錢養活自己的技術。最后想了想, 那時候Symbian和J2ME游戲是最熱的行業, 為什么不學習Java開發呢, 手機游戲看著應該很容做做到。(因為和我差不多經歷的 John Carmark 都能做到, 為什么我做不到? )
用了一年的時間, 上班就在書店整理書, 休息時間也可以看一會書, 下班就學習《Java核心編程》 和上網學習J2ME編程, 那時候沒有完全獨立做過一個完整的項目, 也不會作圖, 只好先在PC上玩游戲, 然后用視頻軟件把屏幕錄下來, 然后再把錄下來的截圖, 用PS橡皮擦一點一點順著邊緣擦干凈(那時候不知道怎么摳圖), 然后縮小切成一幀一幀的圖片, 因為縮小10倍以后, 圖片的邊緣已經非常平滑了, 所以在手機畫面特別好, 一個優秀的Sprite是需要360度的, 為了得到這些角度, 我都把游戲設置成簡單模式, 別人打飛行游戲都是消滅敵人, 我打游戲從來都不消滅這些敵人, 都是繞著敵人轉圈, 這樣我的視頻軟件機會吧敵人360度的效果全部錄制下來好讓我用橡皮擦擦掉, 就這樣, 擦了半個月, 我要的所有Sprite的全角度幀的素材都準備好了。接下來進入漫長的網上臨摹別人源代碼的時光, 因為J2ME是一個新新行業, 沒有成熟的教程, 從動畫, 事件處理, 碰撞檢測, 多線程處理, 對象池等必備技術都要從很多demo源碼中一點一點吸收, 融會貫通到自己完全能夠靈活運用為止(所以, 讀到這里的觀眾們, 如果你真的要學技術, 一定要靜下心來思考問題, 一遍不會讀兩遍, 讀N遍, 直到你自己懂了為止, 不要期望在論壇跪求高手送到你嘴邊的解決方案, 世界上沒有免費的午餐)。
在書店的一年也收獲了愛情, 遇到了當時的女朋友(現在的老婆大人), 在人生中最困難的幾年都是她無條件的支持著我(在所有人都不相信你的時候, 有一個人即使不知道未來如何, 還是會依然支持你的那個人你一定要珍惜)。 我那時候每天的動力就是, 要給她美好的生活,讓她過得很幸福(命運真的喜歡捉弄人, 我那時年少輕狂的承諾居然要我花人生十年的時間才基本實現了), 我還記得一天凌晨, 我的第一款飛行射擊游戲的飛機能夠持續發子彈的時候, 我興奮的告訴我老婆, 就等著我給你的幸福的生活 (從第一款能夠賺錢養家的游戲到真正的進入技術世界還有幾年的時間, 其實人生就是這樣, 如果時光回滾到10年前, 我還會那樣做嗎? 會的, 人年輕最重要的是要有面對人生的勇氣, 能力和經驗都是通過后天培養的, 唯獨勇氣不抓住就稍縱即逝)。
在無數個代碼之夜后, 兩個月后我的第一款飛行游戲算是完成了, 從切圖, 寫代碼, 設計關卡都是自己一個人獨立完成的, 雖然可玩性和專業游戲相比還差很遠, 但是里面已經有一些不錯的想法, 比如當時設計地方的追蹤導彈的時候, 遇到一個算法問題, 如果導彈跟蹤的太快了, 玩家根本就反應不過來, 會非常受挫打不下去了, 如果跟蹤的太慢了, 飛機從導彈邊上快速過去導彈沒有反應, 玩家就會覺得游戲設計的非常傻, 因為沒什么挑戰性放棄游戲。那應該怎么做呢? 面對我這種沒有經過正規計算機專業算法培訓的人, 想要那時候通過碉堡的算法達到極高可玩性幾乎是不現實的。 一定要想其他辦法, 因為原來學生物對蝙蝠的超聲波原理比較了解, 蝙蝠的可見光視力非常差和瞎子差不多, 蝙蝠完全是靠超聲波的反射來定位整個世界, 蝙蝠一般都是在低頻超聲波進行飛行, 如果一旦遇到獵物以后就會發送更高頻率的超聲波來確定獵物的精確位置, 離獵物的距離越近發送超聲波的頻率就會越高, 直到吃到獵物。我就想我的追蹤導彈能否借用蝙蝠的這種方法呢? 平常就毫無目的的飛行著, 誘騙玩家以為導彈AI很弱智, 一旦玩家挑釁性的靠近, 馬上就會高頻率的變聰明追著玩家跑, 這樣平時距離遠的時候可以用占用CPU很小的算法跑著, 只有在距離很近時才加大計算量, 最后一個非常簡單的三角定位函數, 只需要改變一下時間軸上的頻率關系就在手機上這種計算能力很小的機器上展現出讓游戲可玩性大大增強的算法, 而這個算法不需要我們具有高深的數學功底, 只需要最簡單的三角函數即可。 (這件事在以后找工作肯定是面試加分項, 但是更為重要的是, 這十年的經驗告訴我,現實中遇到的很多編程工作并不像很多書中恐嚇的那樣需要很高深的技術, 有時候你只需要把你的聰明才智靈活的繞過看似不能成功的技術難題, 換一種視角去看問題, 你會發現解決思路會如此簡單優雅。 用盡量簡單的方式解決困難的難題不但影響未來十年的編程生涯, 直到今天的創業之路依然是非常受用的)。
順便吐槽一下中國的計算機教育, 其實編程領域真的是非常簡單直接的一個行業, 任何一個有高中教育背景的人通過培訓都可以輕松掌握。 但是國內的很多計算機書籍的教學方式是: 把一個非常簡單的事情講解的非常復雜, 最好是讓學生頭暈最好, 以體現出自己的技術高深。 而國外的很多科學家和編程大牛非常善于把一個非常復雜的東西講的通俗易懂, 傻瓜一聽都會了。 所以編程更多是一項腦力運動, 思路清晰和大道至簡才是一個人是否能夠在這個領域有造詣的關鍵。
就這樣, 一個無知的少年再次鼓起勇氣去追尋自己的夢想。 不一樣的是: 這次我終于滿18歲了, 帶著自己的作品, 1500塊, 還有義無反顧的追尋我的女朋友。 我們來到了成都, 這個我看著要比北京更容易找到工作的地方, 而且當時成都有幾十家手機游戲開發廠商。
到了成都, 1000塊找到一個一室一廳, 剩下的錢要保證這個月的生活和最重要的事情 -- 找到工作, 這次無論如何要在外面能夠生存下去, 不能再找家里面要錢了。 我在成都面試的第一家就是當時最大的手游公司 -- EA旗下的 Gameloft, 我當時找到那家公司的時候, 面試官非常驚愕我怎么找到的? 其實只要善于使用 Google 語法, 很多東西都是可以被挖掘到的, 既然帶著我的作品, 面試官還是給了一次機會, 我的蝙蝠算法贏得了技術面試官的尊敬, 但是當面試官問我為什么18歲出來闖而不是讀大學? 從小堅強的我, 不知道為什么在那么一個冰冷的面試房間, 面對一個陌生人, 竟然對我的一生悲催的經歷痛哭流涕, 最后結果可想而知面試官告訴我, 我很有天賦, 但是心理過不了關, 不能給我機會 (現在看來, 當時一個沒有上大學的人能給一個2小時的面試機會已經非常好了, 我當時不能理解為什么技術OK不能去工作, 現在我明白了, 工作特別是在創業公司工作, 心理抗壓能力絕對是比專業技術最為重要的一點, 沒有堅強的心理能力, 面對困難機會放棄導致整個項目失?。?。
第二家, 第三家, 一家一家的拒絕, 一個星期以后, 我死皮賴臉的堵到一家小型游戲公司的門口, 在別人上班不想看我簡歷的時候, 我說我有作品。 靠著我的作品, 我成功進入這家公司工作, 1300元一個月。 Yes, 1300元對于當時的我來說已經非常好的薪水了(雖然我是公司工資最低的人), 但是我不在乎, 只要能夠靠自己養活自己就是很好的第一步。
我這種人在當時真的非常不適合在公司上班, 我相對于普通那種拿工資好好上班的人不一樣, 我有太強的求知欲, 什么新的技術都想學, 而且性格又好強, 希望快速通過成績來證明自己。 但是公司一直沒有給項目機會, 只是讓我自己熟悉代碼(現在想起來真的是公司老板惜才, 知道天賦可以但是做不了項目的,但還讓我天天上班), 沒有真實項目, 所以也會折騰一些其他的東西, 那時候最流行的就是 Ubuntu 操作系統, 這個操作系統比Fedora或其他的系統發展的快很多,雖然不是很穩定, 但是Ubuntu為了讓使用Linux能夠快速流行, 做了大量的優化工作, 而且它那時候正在全球免費發送光盤的方式吸引了大量像我這樣好奇的技術愛好者。
那時候通過Ubuntu折騰了從軟件源、字體、驅動、軟件包等各種開源軟件大大提升了我對計算機的理解, 原來很多在Windows平臺封閉的東西, 我在Ubuntu上都能自己安裝配置, 并學到大量在Windows上一輩子都無法接觸到的系統構建技巧。
但是好景不長, 因為項目上一直沒有發展, 我還做了一件蠢事, 在公司要求之外, 配了一把鑰匙, 只為周末能用公司的電腦能夠學到更多東西, 雖然大家都知道我只是學習, 但是還是被辭退了。
因為有了第一家公司的工作經驗, 找第二家游戲開發公司的工作就相對容易的多(所以, 大學生一定要抓住你們美好的時光多去企業磨練, 公司看簡歷上的重點是你的工作經驗和在學校外的能力, 學校里面不管表現多好, 企業都是一視同仁甚至是不看的), 在第二個游戲公司我開發了真正的手機游戲,那時候手機的內存只有 800Kb, 就像給DOS開發程序一樣, 所有的游戲場景的內容都要數著byte來寫代碼, 在第二家游戲公司成功開發了幾款游戲(甚至比那些帶著博士頭銜的同事3倍的速度完成項目), 在公司因為我自己的年齡都被同事稱為神奇小子。
在第二家公司工作的時間, 我接觸到在編程領域第一次驚艷到我的東西 -- Emacs, 在很多人看來不過是一個界面簡陋的編輯器,但其實Emacs是一個36年的產物, 從Unix時代一直流傳過來, 它的生命周期甚至比Windows和Linux都要長很多。就是這個從古老Unix時代延生至今的編輯器帶入我進入了真正可以從技術和倫理上稱為黑客文化的圈子。 在大學我們都只教 C++/Java 這些流行的編程語言或者工程語言(可以輕松找到工作), 導致我們認為只要是編程, 就只有C++這一種解決方案, 所有的東西都是對象和設計模式。 而構建Emacs的Elisp(Lisp的一種變種)大大拓寬我對編程語言和構建程序的方法, 傳統的程序幾乎等同于 “數據格式” + “程序算法”, 在Elisp里面沒有明確的數據和算法的界限, 所有的組件都是 List 這個最基本的元素來構建, 數據即算法, 算法即數據的編程理念以及Lisp獨有的豪放的編程風格讓我的編程世界觀徹底顛覆了, 除了觀念以外, 你可以在 EmacsWiki 上自由的查看全世界頂尖黑客為 Emacs 編寫的插件源碼和進化工作, 你可以從他們每天更新的插件代碼中體會他們獨特的編程世界觀和高超的編程技巧...
那段時間, 我在 EmacsWiki ,IRC、郵件列表以及Google上收集所有頂尖Emacs黑客的配置和插件(包括很多Google語法爬下來的未公開 ftp 上的插件), 通過1年左右的學習(主要是閱讀Elisp手冊), 我已經把Emacs大多數功能都玩了一遍, Emacs在我手中早已不是編輯器, 更是一個操作系統, 我除了用Emacs用于編程外, 所有我在計算機上需要完成的(上網, 郵件, 聽音樂, 文件管理, irc聊天等)都可以用鍵盤的方式來完成, 從那時到加入深度之前我都是不用鼠標的, 極高的編程效率和學習強度, 讓我在1年內學到了以前很多年加在一起還多的計算機知識。
學習Emacs的快樂是經??梢栽?IRC 和各種高手進行面對面的切磋, 在 IRC 里面學到的都是 Google 從來沒法搜索到的知識, 因為世界頂尖黑客是通過IRC告訴你他們的思想和技巧, 在一個活躍的IRC頻道, 這些知識很容易受到活躍的討論淹沒, 而且IRC聊天很能鍛煉一個人并行思考的思維, 經常一個屏幕里面有好幾條線在同時討論, 你不但要快速的排除自己不感興趣的話題, 還要和你真正感興趣的話題繼續聊下去, 那時候我自己寫了一個英文補全插件, 我只需要打前幾個字符就能快速補全英文單詞, 就這樣, 雖然我的英文各種語法錯誤, 但是幾乎沒有出現過拼寫問題。 (所以我建議各位大學生, 如果真的要學習知識, 首先要做的就是靜下心來和高手慢慢交流, 說出你真的不懂得地方, 不要怕被鄙視, 要學會尊重對方的情況下虛心學習, 像國內論壇那種伸手黨, 跪求...之類的是永遠都學不到知識的, 因為任何高手都不愿幫一顆浮躁的心)
每天早上起來的第一件事就是打開 EmacsWiki.org 的 changelog, 看看今天世界上有哪些黑客寫了新的插件或代碼片段。 當然那時候最喜歡的就是把自己寫的插件分享出去刷 changelog ... 那時候和幾個日本人聯合開發了后來被大家喜愛的 auto-complete 和 anything 插件, 我記得寫 anything 插件的時候主要是 我, rubkitch 和另外一個開發者(他是我們仨中能力最差的, 我和 rubkitch經常幫他重構代碼, 過了幾年他成為了著名插件 helm 的作者), 那時候最爽的就是三人離散式的進行協作開發, 我們沒有用 git 或者分支管理, 就用最基本的 diff 和 wiki 進行協作, 互相幫對方提供代碼改進意見和重構, 現在想起來真的好懷戀那種并肩作戰的感覺, 而且大家互相不認識對方, 有的只是昵稱和已經相互非常熟悉的代碼風格 (現在很多國內的人始終不理解怎么做開源社區, 其實開源社區很簡單, 只要大家都有興趣, 任何形式和工具都是次要的)。
隨著我的編程能力越來越強, 對Linux使用越來越熟練, 我對游戲工作本身的興趣越來越低了, 一方面J2ME在當時是行業趨勢(那時候還沒有什么iOS和Android), 錢景不錯, 但是每個項目運用的知識都是雷同的, 一個一個項目除了提升工作經驗外幾乎學不到什么知識, 第二天天為了工作而打游戲(比如拿著作弊碼和終極武器從第一關轟到最后一關, 除了爆炸效果外完全看不到怪, 只為體驗這個游戲的關卡設計)導致我覺得這樣下去大量的時間會浪費在“玩物喪志”上, 最后還是在選擇離職, 雖然Boss極力挽留, 但是還是選擇離開。 對游戲的厭惡其實最后也是我投身創建Linux Deepin的一個重要伏筆吧, 因為只有裝Linux我才接觸不到游戲, 不自暴自棄,Linux是當時學習知識的強制限制。就這樣我又寫了一年 Elisp 代碼(大概100多款插件), 我的編程能力和視野已經相對于我才來成都的時候提升了太多, 但是最后還是因為沒錢支撐下去, 選擇去廣州做服裝生意。 (當時的想法很簡單, 先賺錢后實現夢想)。
人生插曲, 離開我心愛的編程世界兩年
當初去廣州的時候, 想的很美好, 做生意賺到錢后,在家安安心心的學習, 想怎么寫代碼就怎么寫, 所有代碼全部開源, 在自己學到東西的時候能夠幫助別人就更開心和滿足了(原來玩Emacs的時候最喜歡的就是突然有一天從地球另外一邊的用戶寫一封熱情洋溢的感謝信, 說你的一段代碼簡化了我的生活, 讓我有更多時間陪家人, 那種感覺是別的任何東西都無法替代的, 我想也是世界上大多數開源作者在最艱難的時候堅持下去的唯一理由 ...)
人生就是這樣, 當你對一切充滿美好憧憬的時候, 現實越殘酷。 在廣州的兩年, 每天都是2點鐘睡覺, 一早就起來了, 一個月只休息1天。 人前是老板, 人后是苦力, 是打雜的, 是賠笑的, 是一個比普通人更悲催的人 , 一個老板賺的錢可能會比別人多, 但是幸福真的要比普通人要少很多, 因為老板永遠都是所有事情的最后承擔者(現在經常看到很多人抱怨老板剝削大家, 其實大家不知道老板完全可以拿著自己的錢享受人生, 為什么他要拿錢給大家發工資, 還要在他狀態最差的時候安慰大家, 聽大家的抱怨? 他不是有病, 所以當你還給別人打工的時候多多向老板, 特別是好的老板學習, 心越大, 世界越大, 抱怨越多, 路越窄)。
體力上的累其實還好, 最痛苦的莫過于在工廠車間100分貝以上的環境下編程, 那真是對人是一種磨練, 原來寫代碼的時候太矯情, 非要環境絕對安靜, 只要別人說一句話都嫌吵,在當時那種一天只有至多2個小時的編程時間的情況下, 學習是一種太過于昂貴的東西, 所以不管機器聲音多大, 我都能心無雜念的寫下代碼, 隆隆的機器聲音仿佛是這個世界上最美妙的背景音樂, 讓我忘記時間流逝的速度, 一行一行地讓思緒從指尖流淌而過。 當然更痛苦的事情是, 在寫代碼時還要隨時中斷去修機器, 一開始都是悲催的節奏, 真的去檢查機器的時候, 它們都不壞, 一旦坐下來機器馬上就壞, 有一段時間甚至都放棄了, 感覺反正都寫不下去就去打游戲好了, 一打一晚上。 墮落了很長時間, 天天打游戲, 那時的心理狀況就是, 反正我寫的代碼都開源了, 也不賺錢, 那些重視開發人員的公司也不會知道車間中還有一個寫代碼的小子, 真的有時候對于當初那種先賺錢后實現夢想的想法越離越遠, 每天早上起床后, 我只能告訴自己: 昨天寫了一段代碼, 解決了一個問題, 離明天的夢想就更近一步, 將來一定會變好的, 只是現在我需要耐心, 老天都是把機會給有準備的人, 機會之所有沒有來, 是因為我準備的還不夠好。
那時候我開始學習一種叫做 Haskell 的編程語言, 為什么會學習Haskell? 因為在網上看到了臺灣的頂尖黑客唐鳳一己之力邊學Haskell變寫 Perl6 的編譯器, 在整個 Perl 社區苦苦掙扎的時候, 一個中國人憑著過人的天賦讓整個社區驚艷了一把。 我本人對Perl沒啥情感, 反而覺得一個月能夠做出編譯器的 Haskell 產生了極大的興趣。
當我第一天學習 Haskell 的時候, 簡直把我自己震驚到了, 如果說Emacs是第一次開拓我編程的眼界, Haskell就是徹底顛覆我對編程的最最基本的價值觀。 比如說, 在Haskell是沒有變量的, 我困惑了幾個星期, 沒有變量怎么保存狀態??? (后來知道, Haskell 的值都是不可寫的, 模擬變量的方法就是在一個變量的內存標簽中做寫時創建新的內存地址, 對外輸出變量的時間切片, 保證任何線程在寫變量是不會產生計算機中的鎖的問題, 也就函數式語言的無鎖編程), 軟件內存事務管理, 無限精度的數字, 遞歸表達式的表現力, 類型推導, 函數作為第一對象, 懶惰執行 ... 如果說傳統語言是小汽車, 每種語言都在比我車上的細節或者性能或者其他優點多么多么好的時候, Haskell則是在另外一個空間的事物, 它根本就不用在路上行駛, 它就是飛艇, 它完完全全的顛覆了很多根深蒂固的編程概念和思維, 如果說 Lisp 教會了我窮盡任何可能性的意識流黑客編程風格, Haskell則是用簡潔的數學思維徹底顛覆我構建程序的基本邏輯和流程, 它強調的是一種用數學模型替代面向對象來映射真實世界的問題, 在Haskell里面, 所有的算法都是方法和組合, 唯一的區別就是有些函數是無副作用的(比如算法函數), 有些函數是有副作用的(比如IO操作), 它通過副作用的嚴格分離來保證軟件工程在數學理論上的穩定性和正確性, 很多金融行業為了寫出邏輯完美的原型, 都會選擇 Haskell 或者 OCaml 這樣的語言, 在Haskell社區里面有一個這樣的笑話, 因為 GHC 編譯器超級智能加上Haskell靜態編譯的強類型推導, 我們完全可以邊喝啤酒邊寫代碼, 只要過了 GHC 編譯期的檢查, 你的程序在運行時期就不會有錯誤 (這句話是真的, 因為GHC通過類型推導不但在編譯期檢查了最基本的類型錯誤, 甚至在運行時的分支邏輯都會提前排除), Haskell程序輸出了一種強編譯期檢查的哲學: 大多數開發人員是沒有編譯器聰明的, 所以 Haskell 完全不給編程人員做蠢事的機會(比如空指針這種問題就不存在)。
Haskell因為一門超級嚴格的函數式語言, 在學院里面大受老師們的追捧, Haskell的代碼看上去就像一個一個數學公式, 沒有中間變量, 把一個算法能夠抽象到最高抽象的樣子, 看著Haskell你就能一眼看懂代碼的原理是什么, 而不用被各種中間變量和狀態所分心。 也正是因為這樣, 除了Wiki以外的學習資料就是各種 Paper, 看Paper 學習要比其他語言學習要困難的多, 因為中間攙著太多嚴謹的數學推導, 即使代碼真的很簡單, 但是為了完全理解原理, 不得不天天硬啃各種數學定理和公式。
那時候,想用 Haskell 做一個多媒體的Emacs出來(彌補 Emacs 不能多線程, 不能運行圖形繪制來構建應用等), 就開始制作各種 Gtk+ 庫的綁定已使Haskell能夠進行圖形化編程, 我記得那時候花了半個月把 Gtk+ 從 2.8 升級到 3.10, 寫了一個3千行的patch就給 gtk2hs 的作者發過去了, 第二天作者拒絕了我的補丁, 說我的補丁太大了, 沒法做 code review... 最后我又花了半個月時間把3千行代碼拆成了300多個補丁, 有很多錯誤經常被 gtk2hs 的作者罵, 我就一遍又一遍的改, 有一段時間他都不想搭理我這個菜鳥了, 我就不厭其煩的給他發送補丁, 一共300個補丁, 最后他真的放棄了, 有一天他發郵件給我, 說這是倉庫的key, 你以后可以直接向倉庫推送補丁了, 不再需要我的review了。 (過后的很多年很多學生都問我, 怎么參與一個開源社區? 是否有什么技巧? 我說你們都想多了, 參與開源社區最好也是最直接的方法就是像作者發送 patch 幫他解決問題, 而不是每天向別人的郵箱問很多愚蠢的問題, 發一遍不理就發第二遍, 直到作者最后接納你為止)。
后面花了半年時間把 gtk+, vte, webkit, poppler, sourceview, imageview, gio, cairo等應用程序開發所需的庫全部綁定到 haskell 里面就開始編寫我的下一代 Emacs 了。 中間花了1年時間的不間斷的開發, 因為每天只能寫兩個小時的代碼, 所以我經常在生意的路上想代碼怎么寫, 回家以后就馬上實現, 就這樣陸陸續續的完成了十幾個應用的開發,編程的能力和編程經驗也活得了更大的突飛猛進, 知識也越發扎實, 看待編程不會再想原來一樣: “我要變成頂尖高手, 我要當世界第一” 的愚蠢想法, 這兩年學會了“天外有天”, 學會了“知道的越多, 懂得越少”, 很多事情都沉下來了, 不再著急, 耐心的做好每一步, 只要今天比昨天進步一點, 自己就很滿足了, 長此以往心也平靜了許多。
編程的能力成長有時候就和人的成長一樣: 有欲望->浮躁的什么都學->堅持養成習慣->知道自己要的是什么->選擇性學習->心平靜下來, 一旦一個人達到“心如止水”的狀態, 他離技術融會貫通的境界就越接近。
回首那段廣州的兩年多時間, 真的非常感謝我的人生經歷了那么長時間的遠離編程的過程, 之所以遠離了編程, 懂事了很多, 被社會歷練的更多,在心理平靜的時候抗壓能力也強了很多倍(這段時間的積累為了后來的創業奠定了堅實的基礎)。
雖然經歷了人生難的的一段低谷時光, 賺了花不完的錢, 但是真的不知道以后的人生路怎么走? 有太多人和我想的一樣, 先賺錢再成立自己的公司, 做自己想做的事情, 可是真實的現實是, 當你賺了很多錢的時候, 你丟失了你最寶貴的東西 -- 時間, 你不再有時間做你自己喜歡的事情, 甚至連花錢的時間都沒有, 最后自己除了變成一個賺錢機器外, 你離自己真正想做的漸行漸遠... (所以真的想告誡各位, 錢這東西夠花就行了, 千萬不要為了這個虛偽的東西付出太多, 錢越多犧牲的越多, 不要最后連人性都輸沒了)。
也許印證了開源界“不折騰不生活”, 我放棄了自己的事業, 拿著我這兩年的個人作品去尋找新的編程工作, 第一次嘗試了我一直向往的 Google , 那時候像Google這種學霸公司, 高中畢業這種事情就是他們再惜才, 也會無情拒絕的, 甚至三個在開源社區有影響力的朋友寫了推薦信也無濟于事, 一封你的編程經驗不適合 Google 而不了了之了。 后面找到了國內使用Haskell的一家香港公司 -- Jane Street, 唯一感興趣的就是我可以用我最喜歡的 Haksell 來編程, 但是最后一通英文電話直接讓我郁悶了, 對方說整個公司全部用英文口語交流, 哎, 縱使有再強能力還是因為英文口語被拒。
無奈之下, 選擇嘗試在東莞的YLMF, 那時候他們在做YLMF Linux, 我把我會的簡歷投過去, 也去公司面試了, 結果和一直以來老天和我作對的節奏一樣, 對方回答, 你會的 Emacs 和 Haskell 這些我們公司不需要, 我說我的自學能力很強, 任何一門語言一個月就搞定了, 但是于事無補, 還是被無情拒絕了。此處不留爺, 自有留爺處...
在最艱苦的環境下默默修煉了兩年, 換來的卻是連續三次被拒, 我的人生怎么就那么命運多舛呢?那段時間我在工廠里面默默呆著, 想不清楚為什么世界上那么多天才就這么被磨滅了? 我的伯樂在哪里? 甚至女朋友都快萬念俱灰了...
就這樣離過年越來越近, 我不知道我的未來在哪里, 我也不知道我堅持了4年多的開源情結應該該放在何處? 我有時候安慰我自己: 在中國做開源, 除了精神上有所安慰外, 甚至都沒法生存下去!這么多年回憶起來, 我之所選擇開源這個事業, 其實并不是我是一個有高級情操的人, 我也不是什么偉人, 可能正是我這一二十年處于各種悲催和苦難中, 我特別煩爭吵和勾心斗角, 所以就一直想做一些讓世界更美好的東西, 一開始的選擇計算機到做開源, 開源讓我感覺到從未有過的平靜和幸福, 開源就像鴉片一樣, 當別人都在過“正常的賺錢”生活, 我每分享一行代碼我都感覺前所有的充滿力量, 即使能夠感同身受的只有我一個人。
人在什么時候都不要放棄希望, 老天總是會眷顧你的。 就在我萬念俱灰的時候, 我在 Soldoit上看到Deepin團隊在招聘一個全職開發者的新聞, 我果斷的把我的簡歷投遞過去了, 這次我沒有報任何希望, 只是死馬當活馬醫, 管他呢, 何必這么逼自己呢?過幾天 Hiweed 給我回了一封郵件讓我去武漢面試, 我收拾了一下行李就去武漢接受面試, 我還記得冬天的一個早晨走進還是比較狹小的辦公室, 張磊大哥面試的我, 我就簡單的回答了各種問題, 最后幸運的通過面試了, 我那時還接到遠在北京的Deepin的電話, 我不知道電話那頭的人是誰, 我只知道可能是另外一個面試官吧, 他blabla的說了好多, 說年后入職來武漢上班吧。 (后面第一次見面的時候我記得Deepin老大也blabla的說了好多, 最后知道那叫一個專業名詞:“忽悠”)。
那年冬天過了一個很簡單的年, 然后和5年長跑的女朋友10天閃電結婚, 不知道將來的生活如何, 先結婚給老婆一個交代吧。(2010年的那個冬天可能是我踏入創業這個坑最幸福的最輕松的一個冬天了), 一場艱苦卓越的創業之路就此展開...
Deepin Linux的創業之旅
2011年的春天第一次來到武漢, 一切都是那么新鮮, 新的開始, 新的旅途。 做Linux操作系統, 這個對于一個玩了5年的Linux玩家再熟悉不過??上У氖悄菚r候Deepin操作系統還只是和大多數Linux發行版一樣, 修改一下預裝軟件和配置,配上一個好看的主題而已, 真正自己的開發內容也沒有什么。 才來的幾個月Deepin老大本身也沒有想好怎么開發, 先讓我做了幾個月的Android開發, 原來有3年的Java開發經驗, 上手Android也快, 兩個月做了一個新聞閱讀器, 只是真的比較無聊, Android開發一點挑戰性都沒有, 和原來的手機游戲沒什么兩樣, 那時候Android是全世界最為火熱的時候, 在我看來只是有行業熱度和錢景, 但是真正能夠鍛煉技術的, 除了做Android系統本身的開發外, Android Apps都沒什么挑戰性。
還好Deepin在我快對Android開發失去耐心的時候, 讓我做了第一個Deepin軟件開發, 開發一個軟件中心, 那時候Linux所有發行版都是用命令行安裝軟件, 即使軟件倉庫配置的很好, 普通人還要花費大量時間學習命令去安裝軟件, 沒法做到像Windows和Mac的圖形化軟件商店方便普通用戶安裝。
Linux世界里面從來不缺乏技術高手, 也從來不缺乏各種操作系統和行業評論家, 缺的是行業視野和實干家。 中國Linux整個行業的分配并不像外人認為的是黑客精英組織, 真正出神入化的大神都在做基礎性的構建工作,一般都是隱居江湖的。 然后70%的半瓶水和噴子, 他們對任何事情都不滿意, 天生崇洋媚外, 國外的月亮永遠都是圓的, 國外的開發者永遠都是對的, 國內的Linux水平和開發者都是傻X, 不論任何人要做什么事情, 即使他們本身還不如做事情的人的百分之一, 他們總是站在上帝視角去評論所有的事情, 感覺世界上就他們看的最為透徹, 可惜的是他們每天除了只是打嘴炮不會干任何事情的窩囊廢, Linux在中國之所以發展不起來就是跟這些所謂的裝逼高手息息相關, 不做任何事情, 天天教條的拿著自由軟件的精神招搖裝逼綁架和打擊別人, 世界上宣揚自由軟件精神最多的RMS, 真正在他天天在全世界呼吁的時候, 他是大多數Linux關鍵軟件的構建者, gcc、gdb、emacs和一大票基礎性軟件都出自他之手,可惜這些裝逼高手一輩子都不會懂, 在你真正說話之前最好先練好內功。 剩下的真正在做事情的Linux高手, 憑著個人的熱情和能力在各個行業分散的戰斗, 少有個人開源開發者能夠堅持5年以上。