約翰·卡馬克是個很晚才開口說話的孩子,他父母親的擔心一直持續到1971的一天,這個15個月大的男孩拿著一塊海綿蹣跚著走進客廳,說出不光是一個單詞而是一個完整的句子:「爸爸,你的洗澡巾。」就好像他一直不屑於說單個的詞,而非要等到能用它們組合出完整的句子才肯開口。「茵戈(Inga),」他父親斯坦(Stan)對他母親說道:「看上去我們家有了個很不一般的小傢伙噢。」
卡馬克家一直都有著自學成才的傳統。約翰·卡馬克的爺爺老約翰·卡馬克只有二年級的教育程度,他的妻子也只有八年級。這個家庭主婦教會了她丈夫識字和寫作,最終他成為一個電氣工程師。他們在肯塔基州東部最貧窮的地區帶大了他們的孩子斯坦,這個孩子學習非常勤奮,最終獲得了一所大學的獎學金。斯坦在數學和工程學方面都表現得不同尋常,最終成為家裡的第一個大學生,並進入一家電台工作。他妻子茵戈的父母是藥劑師和理療師,茵戈繼承了他們在科學方面的興趣,在研究核療技術的同時還在攻讀微生物學博士。茵戈和斯坦盼望著能把他們對學習的熱愛傳遞給他們的孩子。
小約翰·卡馬克出生於1970年8月20日,小名約迪。他父母工作都很勤奮,所以他們家境很好。斯坦還晉陞為一家電視台的晚間新聞主播,這家電視台是密蘇里州堪薩斯城最大的三家電視台之一,他們隨後搬遷到了郊外的富人區。在那裡,約翰有了個小弟弟,彼得。同年,約翰進了聖母瑪利亞天主教小學,這是當地最好的學校之一。這個從一歲起就戴上眼鏡,長著一頭凌亂金髮的瘦小男孩在學校里很快就顯示出了與眾不同。二年級的時候,只有七歲的他幾乎在所有標準化測驗里都得到了滿分,這相當於九年級的水平。約翰還養成了一種很獨特的口吃習慣:在每句話後面加上簡短的類似機器人那樣的嗡嗡聲,就像一台計算機在處理數據一樣:「12乘以12等於144……嗯嗯。」
在家的時候,約翰·卡馬克像他的父母一樣貪婪地閱讀各種書籍,他喜歡托爾金的《魔戒》,或者類似那樣的奇幻小說。他成打成打地看漫畫書,他還喜歡科幻電影,但最讓他覺得有意思的還是《龍與地下城》。樂於創作更甚於參與的他很快就成為了一個獨特而且強大的地下城主,不像其他城主那樣主要依賴於規則手冊里刻板的規定,他拋開那些結構,創作了他自己的世界。每天放學後,他就把自己關在小屋裡,埋頭於成堆的圖紙和表格中。那時他在念三年級。
儘管卡馬克家境不錯,學習成績也很好,但他還是有他的煩惱。在一次作業里,他需要描述自己生活中最大的五個問題,而他兩次提到了他父母對他過高的期望。他開始覺得他那嚴厲的母親對他太過挑剔。在另一次作業里,他記述了母親因為他拒絕做額外的功課而把漫畫書都鎖到了柜子里,他又是如何直接卸掉了那扇柜子的門。
卡馬克開始憎惡學校——憎惡那些制度和教條,在他看來,那都是毫無理性的東西。他開始在每個禮拜三的聖餐集會後戲弄其他同學的信仰。記得有一次,一個孩子離開的時候,已經被他說得心中掛著問號,臉上掛著淚水。直到有一天老師推著一台蘋果II型機走進教室,卡馬克才算找到了一個能更有效地鍛煉他思維能力的手段。儘管他還從沒使用過計算機,但他自然而然地把這個東西當做了他自己身體延伸出去的一部分:它說著數學邏輯的語言,它能響應他輸入的指令,而當他看到遊戲的時候,他意識到原來這裡面還有著豐富多彩的世界。
這時候的卡馬克已經迷上了街機,他不是附近最好的玩家,但他喜歡《行星撞擊》和《太空入侵者》里那快節奏的戰鬥和立即兌現的回報。還有《戰區》(BattleZone),它不像其他遊戲一樣從高處或是側面顯示戰鬥狀況,它從第一人稱視角來展現戰鬥的畫面,卡馬克會覺得像是坐在一輛坦克里觀望四周。儘管畫面只是由簡單的綠色線條組成,但它能給人一種三維的觀感,這個遊戲甚至引起了美國政府的注意,他們向製造商雅達利定製了一個版本用于軍事訓練。很快,卡馬克也就想要定製屬於他自己的遊戲,有計算機在手,這不是不可能的。
卡馬克念五年級了,他媽媽把他送到一家名叫「無線電屋」(Radio Shack)的全國連鎖電子產品商店去參加一個TRS-80計算機的培訓班。當他再回到學校時,手裡已經多了一本程序設計的書,他開始自學所有他想知道的知識。百科全書里描述計算機的那個段落被他翻來覆去地看了十幾遍。隨著他視野的開闊和知識的增長,他給老師寫信建議到:「現在比較合理的事情就是把我直接送到六年級。」在那裡他才可以學到更多東西。第二年,卡馬克被轉到了肖尼市(Shawnee)教會公立學校的一個「天才班」,那是附近最早有計算機實驗室的地方之一。
在這裡,卡馬克遇到了一些和他一樣對蘋果機著迷的聰明孩子。他們自學BASIC編程,他們一起玩遊戲,很快他們就不滿足於這種簡單的玩樂,他們開始研究並動手修改遊戲。一次,卡馬克找到了他在《創世紀》里角色所對應的代碼,他修改了那一段,給自己增加了一些額外的能力,這是他第一次體會到憑空創造東西的樂趣。而且,作為一名程序員,他不需要依賴於其他人,只要他的代碼邏輯正確表述了他定義的規則,它就會工作得很好,一切都那麼合理。
一切——但除了父母,卡馬克想道。
卡馬克的父母在他十二歲的時候忽然離婚了,他們在如何撫養孩子的事情上還鬧的很緊張。茵戈覺得這給卡馬克造成了無法彌補的創傷。就當卡馬克開始在學校里找到點樂趣的時候,他和弟弟彼得又不得不在雙親之間來回輪換,不停地轉學。卡馬克不喜歡和父親分開,更糟糕的是,當他和母親住在一起的時候,他得自己照顧自己。
卡馬克對計算機的興趣越來越濃厚,但茵戈卻覺得那些計算機遊戲毫無意義,在她看來,如果一個孩子真的對計算機感興趣,那他不應該只坐在那玩《創世紀》,而應該在學校努力學習,考個好成績,然後進麻省理工那樣的學校,這樣才能在畢業以後進入像IBM那樣的公司。她愛她的兒子們,她希望他們只做她認為是正確的事情。但卡馬克不這麼想,他只想有台他自己的計算機,在那個世界裡翱翔。他變得越來越倔強,茵戈帶卡馬克去看了心理醫生,想弄清楚為什麼她這曾經乖順的兒子現在變得如同脫韁的野馬。
在茵戈決定前去西雅圖開始一段新的感情的時候,卡馬克的煩惱得到了緩解,他搬去和父親、繼母以及繼母的兩個孩子住在了一起。儘管斯坦還是有一份不錯的工作,但家裡忽然多了一倍的人,這使得他們無法再保持原來的生活水準,他們搬到了城郊的一個陳舊農場,那裡是雷頓鎮的藍領階層社區。
卡馬克從未感到過如此的孤獨,他和一個陌生的家庭一起住在一幢陌生的房子里,每天還要去一所陌生的學校,那裡沒有計算機,沒有程序,沒有夥伴。
直到有一天,他發現他其實並不孤單。
《黑客:計算機革命的英雄們》(Hackers: Heroes of the puter Revolution)是卡馬克的啟示錄。他以前也聽說過「黑客」,譬如在1982年的一部名叫《電腦爭霸》(Tron)的迪斯尼電影里,傑夫·布里奇斯(Jeff Bridges)扮演的一名遊戲設計師進入了他自己設計的遊戲。還有1983年的《戰爭遊戲》(WarGames)里,馬修·柏德利(Matthew Broderick)扮演的年輕玩家進入了政府的計算機系統,並險些觸發了核按鈕。但這本書和那些電影有個很大的區別——它講述的都是真人真事。這本由史蒂文·利維(Steven Levy)於1984年撰寫的書里探尋了所謂「改變了我們世界的神童們」,以及他們那二十五年歡騰的歲月,書里講述的敢於破除常規的計算機愛好者們包括了20世紀50年代在麻省理工研製大型機的先驅,以及70年代矽谷的「家釀」俱樂部和80年代計算機遊戲業的領跑者們。沒有什麼模板可以概括出這些黑客們的特性,他們的經歷千姿百態:比爾·蓋茨,一個哈佛大學的輟學生,實現了第一個在阿爾塔(Altair)個人計算機上運行的BASIC語言環境,然後締造了世界上最大的軟體公司。還有史蒂夫·斯拉格·拉塞爾,威廉姆斯夫婦這些遊戲製作者,以及兩位史蒂夫——蘋果的創始人,等等,他們都是黑客。
「儘管『黑客』這個詞在一些人看來有嘲笑的意味,」利維在序言里寫道:「彷彿那些人要麼是脫離社會的書獃子,要麼就是堆砌亂糟糟的『不標準』代碼的『外行』程序員,而我覺得不盡如此。在他們不起眼的外表下,他們是開拓者,他們是幻想者,是冒險家,藝術家……他們才是清晰地洞察到計算機之所以是種革命性工具的人。」
這黑客倫理觀就像是一份宣言,當卡馬克