今天小編分享的科學經驗:比爾蓋茨自述曾是熊孩子:16歲徒步數百英裏,邊走腦中邊寫BASIC代碼,歡迎閲讀。
步入 70 歲之際,比爾 · 蓋茨終于出版了自己人生中的首部自傳《源代碼》。
不同于以往的商業發展視角,無關對微軟成就的宏大叙事,在這本書裏,比爾 · 蓋茨自己的成長歷程和創業故事一一鋪陳開:
生在一個優秀的家庭,撞上歷史性技術變革與樂觀情緒彌漫的時代,自己在個人電腦革命方興未艾之時步入成年……
過去十幾年,比爾 · 蓋茨一直站在技術發展的潮頭浪尖,他關于科技、計算機、AI 的每一次預測和思考都引人注目。
今年 1 月 13 日,他在阿聯酋的阿布扎比 CNN 學院,分享了自己關于 AI 基數的最新洞見。
蓋茨預測,2025 年,AI 技術會實現更大的突破,将加快應用于醫療診斷、新藥研發等領網域。
現在,這樣一位技術和未來的前瞻者,以平生第一部自傳來開始回憶過去。
理由之一是很多人總是詢問他的早年經歷," 這些問題讓我意識到,人們或許會對我的人生歷程,以及我成長中的影響因素感興趣。"
《源代碼》中,比爾 · 蓋茨首次系統性公開自己的成長路徑——
從努力幽默搞笑的熊孩子到廢寝忘食地進行編程嘗試的少年,再到重塑計算機行業的科技大佬。
他明确袒露," 與其與父母對着幹,不如專注于獲取踏入社會所需的技能上。"
還分享了改變他人生的 10 個決定性時刻(幾乎都與計算機相關)。
△比爾 · 蓋茨與家人
為了紀念自己的母親,蓋茨決定将《源代碼》一書的全部作者收益捐贈給全球聯合勸募組織。
量子位也在中信出版社的授權下,陸續與大家分享書中部分與 AI、科技、計算機強相關的節選篇幅,與君共勉。
以下内容為《源代碼》開篇序章。
" 喜歡這種體力上的挑戰,還有那種獨立自主的感覺 "
大約 13 歲時,我開始和一群男孩一起玩,定期結伴到西雅圖附近的山上遠足。
我們是在童子軍活動中認識的,在參加了所在童子軍軍團組織的很多次徒步旅行和露營活動後,我們很快組建了一個小團隊,展開自己的探險遠征。
沒錯,是探險遠征,我們當時就是這麼認為的。我們想多一點兒自由,也多一點兒冒險,而這是童子軍的活動給不了的。
我們這個小團隊通常由五個人組成——邁克、羅基、賴利、丹尼和我。邁克是老大,因為他比其他人年長幾歲,而且他有更豐富的户外徒步經驗。
在大約三年的時間裏,我們一起徒步遠行了數百英裏,足迹遍及西雅圖北邊的奧林匹克國家森林和冰川峰荒野,還沿着海岸線走過幾次。我們的徒步之旅經常持續一周甚至更久,只靠幾張地形圖指引方向,一路穿過古木林和亂石灘。穿越亂石灘時,我們會計算好潮汐的時間。
學校放假的時候,我們會展開長途旅行,在各種天氣狀況下徒步和露營。在太平洋西北地區,這通常意味着我們整整一周都要穿着濕漉漉的、讓人渾身發癢的羊毛軍裝褲,腳趾也被凍得發紫。
我們不搞專業的技術攀岩,不用繩索和扁帶,更不會去找陡峭的岩壁,就只是長途跋涉。
全程一點兒都不危險,除了一樣:我們不過是一群半大小子,置身于深山老林中,距離最近的救援點也有幾個小時的路程,而且當時距離手機問世還有很長時間。
随着時間的流逝,我們成長為一支充滿自信、緊密團結的團隊。
我們經常會在結束了一整天的徒步,定下來在哪兒扎營後,無須多言就各自忙活起來:邁克和羅基會把晚上遮在我們頭頂上的防雨布系好,丹尼去林中撿拾幹柴,賴利和我則小心翼翼地用引火條和小樹枝生過夜用的篝火。
我們會在一切準備妥當後吃晚餐,雖然只是一些輕便的易攜帶的廉價食品,但足夠充飢,讓我們有能量走完全程。我甚至覺得再沒有比這些吃起來更香的食物了。
晚餐時,我們會切一塊午餐肉,配上漢堡好幫手(意大利面和粉狀調味料)或是俄式酸奶油牛肉。
早餐時,我們要麼衝上一包谷物飲品,要麼吃一種加水後就可以制成西部煎蛋卷的粉末——至少包裝上是這麼説的。我最愛的早餐是奧斯卡 · 梅耶牌的煙熏熱狗腸,這款以全肉為賣點的商品如今已經退出市場。
我們共用一口煎鍋來烹制大部分食物,然後用各自攜帶的空咖啡盛着吃,用大号咖啡罐打水、炖菜、裝麥片粥。我不知道是我們中的哪一位發明了樹莓熱飲這雖算不上什麼偉大的烹饪創新,只不過是用開水衝速溶果凍粉,但它既可以充當甜點,又能讓我們在早起開始一天的遠足前提升一下血糖。
我們遠離了父母和其他成年人的管教,自行決定往哪兒走、吃什麼和什麼時候睡覺,自己判斷要去承擔哪些風險。
在學校裏,我們這幫人裏沒有一個是那種酷小孩,只有丹尼參與過一項有組織的體育活動——籃球。而他很快便退出了,只為了給我們的徒步旅行騰出時間。
我是團隊中最瘦小的,通常最怕冷,而且總覺得自己比其他人孱弱,但我喜歡這種體力上的挑戰,還有那種獨立自主的感覺。盡管當時徒步旅行在我們這一地區日益流行起來,但并沒有多少青少年會單獨行動,在深山密林裏行走八天之久。
話雖如此,但要知道這是在 20 世紀 70 年代,對于父母監護責任的态度要比如今寬松一些,孩子們總的來説擁有更多的自由。
而且,到我十三四歲時,我父母已經接受了我與許多同齡人不一樣的事實,也接受了我需要一定範圍内的獨立性以自主探索世界的事實。他們的接受(尤其是我母親的接受)來之不易,這将對我未來的人生產生決定性的影響。
如今回頭看去,我能肯定,我們在這些旅行中尋求的不只是志同道合的友情及某種成就感。
我們當時正處于青少年挑戰自身極限、探索不同身份定位的年齡段,有時候,我們向往那些更大的、超凡的體驗。
我已經開始感覺到一種明确的渴望,想要知道自己将會走上怎樣的道路。我不确定它指向何方,但這必須是一段過程有趣且通向圓滿結果的旅程。
" 在這群朋友裏,論編程,我是老大 "
那些年,我還和另外一幫男孩消磨了不少時光。
肯特、保羅、裏克和我上的是同一所學校——湖濱中學。
在校方的安排下,學生們可以通過電話線連接到一台計算機主機。那年頭,青少年居然可以接觸到計算機,無論是哪種形式的,都極其罕見。我們四個人對這件事可上心了,把所有的閒暇時光都花在編寫日益精密復雜的程式、摸索如何使用這台計算機上。
表面看來,徒步旅行和編程之間差了十萬八千裏,但從感受上説它們都是探險活動。
和這兩撥朋友一道,我探索着新世界,前往那些甚至連大多數成年人都無法抵達的地方。
和徒步一樣,編程也适合我,因為它允許我定義自己似乎不受限制的成功标準,成功與否不取決于我能跑多快或将球投多遠。編寫長而復雜的程式所需的邏輯思維、專注力和耐力,仿佛是我與生俱來的本能。
和徒步不一樣,在這群朋友裏,論編程,我是老大。
1971 年 6 月,我在湖濱中學的高二學年快結束時,邁克打電話給我,告知下一次徒步旅行的計劃:去奧林匹克山徒步 50 英裏。
邁克選擇的路線叫 " 普雷斯探險步道 ",它得名于 1890 年在一家報社的贊助下探索該地區的探險隊。那次探險之旅歷經磨難,當時,隊員們的食物消耗殆盡身上的衣服也都磨爛了。
邁克的意思是我們要走同一條艱難的路嗎?沒錯,但他們的那次探險是很久以前的事了,邁克説。
可就算是在 80 年後,這條徒步路線依然異常艱苦。那一年降雪量很大,因此這個提議尤其令人生畏。但既然其他成員——羅基、賴利和丹尼——全都積極響應、躍躍欲試,我才不會當臨陣脱逃的膽小鬼。再説,還有一個比我小幾歲、名叫 " 奇普 " 的童子軍也積極參與到此次冒險中。
我必須得去。
按照計劃,我們要爬過低分水嶺山口,下到奎納爾特河邊,然後原路返回,每天晚上在沿途的簡易木屋裏休整。全程需六七天。
第一天很輕松,我們在一個風景優美、被白雪覆蓋的高山草地待了一晚。
接下來的一兩天,在我們攀登低分水嶺的過程中,積雪越來越厚。當走到計劃過夜的休息點時,我們發現它已經被大雪掩埋。我有片刻的私心竊喜認為我們肯定會原路返回,回到那個當天早些時候路過的條件更好的落腳點,我們還可以生個火,暖暖身子,然後大吃一頓。
邁克提議投票決定是往回走,還是一鼓作氣走到目的地。我們無論選哪一項,都意味着要繼續走幾個小時。邁克説:" 我們在山腳下路過了一個休息點,就在我們下方 1800 英尺處。我們可以走回去,在那兒休息,也可以一直走到奎納爾特河邊。"
他不需要點明那個事實:走回去的話,便意味着放棄了我們行至河邊的任務計劃。
" 你是怎麼想的,丹尼?" 邁克問。丹尼是我們這個小團隊中非正式的二把手,他比其他人都高,是個能力很強的徒步旅行者,一雙大長腿似乎永不疲憊。不管他説什麼,都将對投票結果產生極大的影響。
" 咱們都快到那兒了,或許應該繼續走。" 丹尼説。在舉手表決的過程中,很明顯,我是少數派。我們将繼續前行。
再次出發幾分鍾後,我説:" 丹尼,我對你可有點兒意見。你本來可以阻止這一切的。" 我是在開玩笑——半真半假地。
那次旅行令我印象深刻,不僅因為那天我被凍慘了,還因為我接下來做的事:我陷入了自己的思緒。
挑戰自己,為 PDP-8 寫一個 BASIC 編程語言的版本
我在腦海中構想着計算機代碼。
就在那段時間,有人借給了湖濱中學一台計算機,它是由美國數字設備公司(DEC)制造的 PDP-8。
那是 1971 年,盡管我當時已經深度接觸方興未艾的計算機領網域,但還從未見過可以與 PDP-8 相提并論的東西。
在那之前,我和朋友們一直使用的都是體量巨大、多人共享的計算機主機。我們通常借助電話線與這些主機相連,除此之外的時間,它們都會被鎖在一個單獨的房間裏。
這台 PDP-8 卻是設計給個人直接使用的,它的個頭足夠小,可以放在你面前的桌子上。盡管一台 PDP-8 就重達 80 磅,價值 8500 美元,但它可能是那時最接近 10 年後才會出現的個人電腦的設備了。
為了挑戰自己,我決定試着為這台計算機編寫一個 BASIC 編程語言的版本。
在去普雷斯探險步道前,我正編寫的那部分程式會告訴計算機執行運算時的順序,假如有人輸入 3 ( 2+5 ) x8-3 這樣的算式,或是想要制作一個需要復雜數學運算的遊戲,它就能派上用場。
在編程中,這個功能被稱作 " 表達式計算 "。
拖着沉重的腳步,兩眼緊盯前方的地面,我琢磨着自己的計算工具,苦思冥想着執行運算所需的步驟。關鍵是要小,那會兒的計算機内存極其有限,這台 PDP-8 用來存儲工作數據的内存只有 6K(千字節),這意味着程式必須精簡,使用盡可能少的代碼才不會占用過多的内存。
我會構想出代碼,然後試圖追蹤計算機将如何執行我給出的指令。
行走的節奏有助于我思考,就像我曾習慣于思考時原地晃動身體。在那天其餘的時間裏,我的頭腦完全沉浸在編寫代碼的難題中。我們下行到谷底後,積雪路逐漸轉為一條平緩的小徑,我們穿過一片古老的雲杉和冷杉林,直到行至河邊,搭起帳篷,吃我們的午餐肉大餐,最後睡覺。
第二天一大早,大風和凍雨像鞭子一樣抽打着臉頰,我們頂着風雨爬回了低分水嶺。我們在一棵樹下停留片刻,分食了一包樂之餅幹,然後繼續趕路。我們沿途找到的每一個休息點都擠滿了等待暴風雨過去的露營者,所以我們只好繼續前行,讓這本來已經十分漫長的一天又多加了好幾個小時。
穿過溪流時,奇普滑倒,摔破了膝蓋。邁克為他清理傷口後,用繃帶包扎好。此時,我們的行進速度只能以奇普一拐能跟上為上限。
我全程一直默不作聲地在頭腦裏打磨着我的代碼。那天在我們行走的 20 英裏途中,我幾乎一言不發。
最終,我們找到了一個有空地兒的休息點,搭起了帳篷。
有句名言説得好:" 我本來可以寫封短信,但我沒時間。" 同樣,用繁復的代碼寫一個長達數頁的程式,要比僅用一頁篇幅編寫同一程式容易得多。啰唆冗長的程式運行起來更慢,占用更多内存。
在這次徒步旅行的過程中,我有時間把程式寫得短小精悍。在漫長旅行的最後一天,我将它進一步精簡,就像是在小心翼翼地削一根樹枝,直到把一頭削尖。我最終呈現的成品似乎既實用高效,又簡潔明快。
到那時為止,這是我編寫過的最優秀的代碼。
第二天下午,在我們返回起點的途中,雨終于停了,天空放晴,我們沐浴在和煦的陽光下。我感受到了那種永遠只有在徒步旅行完成後所有艱苦的工作都已成為過去時才會湧上心頭的喜悦。
秋天開學時,把那台 PDP-8 借給我們的人收回了計算機。我并未完成自己的 BASIC 項目,在徒步旅行中編寫的那段簡潔優雅的表達式計算代碼卻留在了我的腦海中。
三年半之後,正當我這個大二學生困惑于不知如何選擇人生之路時,湖濱中學的校友保羅衝進了我的宿舍,他帶來了關于一台具有突破性的計算機的消息。
我當即知道保羅和我可以為這台計算機編寫一版 BASIC 語言,因為我們已經擁有某種先發優勢。
我做的第一件事便是回想起在低分水嶺艱難徒步的那一天,從記憶中提取出寫好的那段表達式計算代碼。
我将其敲進計算機,由此播下的種子最終成長為一家世界級的大公司,一個新的行業也随之誕生。