今天小編分享的科學經驗:比爾蓋茨自述:中學時期就開始偷偷996寫代碼,歡迎閱讀。
57 年前的西雅圖冬夜,一個瘦削少年翻出卧室窗戶,奔向名為 "C 的立方 " 的計算機實驗室。
比爾 · 蓋茨不會想到,這段在寒夜中追逐代碼的歲月,正悄然叩響數字時代的大門。
當湖濱中學的編程少年們以無償勞動換取珍貴的上機時間時,一場改變人類文明進程的變革已在晶體管與二進制中孕育——在這個數字時代的黎明,一群年輕的先驅者站在了浪潮之巅,他們以智慧和勇氣,開辟了一個全新的領網域:
個人電腦軟體。
幾乎與此同時,遠在英特爾公司的實驗室裡,戈登 · 摩爾的預言如同一道閃電,劃破了計算機產業的夜空。摩爾定律不僅預示着技術的飛躍,更點燃了無數創新者的激情。
微處理器的誕生,如同打開了潘多拉的盒子,釋放出無盡的可能。
當湖濱中學的排課程式順利運行,當第一台個人電腦上的 BASIC 程式成功啟動,當微軟公司逐漸嶄露頭角……
這一切都在宣告,一個全新的時代已經來臨。
軟體,這個曾經被視為硬體附屬品的存在,如今成為了推動社會進步的關鍵力量。
翻窗夜奔,目的地:C 的立方
1967 年,比爾 · 蓋茨進入湖濱中學(Lakeside School)就讀。
這所位于華盛頓州西雅圖的私立學校以其優質的教育和創新的教學方法而聞名,吸引了許多優秀學生。
在湖濱中學,蓋茨和同伴們實踐編程愛好的成本越來越高,按分鍾累積起來的機時費不是個小數目。
羅納夫人(一位家長)給湖濱中學的校方寫了封信,提出了一個令人吃驚的建議:
如果學校裡的小程式員們能去她的初創公司(即 " 計算中心公司 ",簡稱 "CCC"。蓋茨為其取了個綽号—— "C 的立方 ")幫忙,他們願意讓這些學生無償使用其新型計算機。
1968 年 12 月,肯特、保羅、裡克和蓋茨在 "C 的立方 " 往往一待就是好幾個小時,他們編寫代碼,調試程式,起草程式錯誤。他們知道,終有一日,公司會将他們掃地出門,他們必須在機會消失前盡可能地多攫取一些。
那年冬天的一個晚上,蓋茨坐在自己的房間裡,腦子裡想的就是:為什麼我要在這兒浪費時間?這會兒我本可以坐在計算機前面的。
他悄悄地推開卧室的窗戶爬了出去,搭乘公共汽車再走 4 個街區,到達 "C 的立方 ",全程只需 20 分鍾。
這是蓋茨第一次晚上偷偷溜出家門,那年冬天和此後幾年,他經常這麼幹。如果錯過了末班車,凌晨 2 點左右,他只能步行 45 分鍾回家,一路上在腦海中重寫着代碼。
許多成功人士在愛上各自選定的領網域後,必然要在一段時間内艱苦而專注地工作。正是在這段時間,最初的興趣逐漸轉變成實實在在的技能。
《異類:不一樣的成功啟示錄》一書中指出,無論是作曲還是打網球,都需要經歷 10000 個小時的刻苦練習,才能達到高超的技術水平。
而對于比爾 · 蓋茨來說,倘若沒有那段幸運的免費上機時間——那最初 500 個小時,接下來的 9500 個小時或許根本就不會存在。
正式完成第一份軟體產品
後來,"C 的立方 " 倒閉了。這意味着湖濱中學不再擁有計算機提供商。
1970 年秋,校方聯系上了另外一家經營分時業務的初創公司——信息科學公司(Information Sciences Inc.)。這家公司很快就收到了湖濱編程集團發出的一封措辭十分正式的信件,主動請求為其提供服務。
信息科學公司的一個客戶希望将公司的薪酬管理系統自動化。信息科學公司請蓋茨四人為其免費編寫這個程式,理由是這是一個很好的學習機會。
他們起草了一份合同,講定了項目範圍,并定下了 1971 年 3 月作為最後完成期限。這只給了蓋茨他們大約 4 個月的時間,他們很快便意識到時間非常緊張,勉強夠用。
可這個四人小團隊不久後便出現了矛盾,兩位高年級同學保羅和裡克逐漸對這個項目失去興趣,蓋茨認為他們懶散,缺乏專業精神,決定掌握全局。他按照每個人幹活的多少,設計出了一個上機時間的分配方案,由他和肯特完成大部分工作,急匆匆地趕寫着這個被稱為 "PAYROL" 的程式。
程式完成後,他們前去向信息科學公司展示作品。這個 PAYROL 程式還需要添加許多功能,但顯然,他們拿出來的核心程式已經足以讓公司刮目相看。
保羅和裡克畢業後,作為湖濱中學編程小組僅存的兩名成員,肯特和蓋茨留下來完成了 PAYROL 程式。經過 9 個月的努力,他們在 8 月完成了原本預計僅需 3 個月即可完成的程式。
最大的好消息是:它可以成功運行。
" 想買一個英特爾 8008 芯片 "
20 世紀 60 年代中期,英特爾公司的創始人之一、工程師戈登 · 摩爾做過一個預測:
層出不窮的創新将會使一個芯片上的晶體管數量每年便翻一番(後來他将自己的預測改為每兩年翻一番)。
我們感知的這個世界,通常都是以線性、逐步遞增的方式增長:積寸成尺,積少成多。計算機產業也沒什麼不同,很長一段時間進展緩慢。
摩爾的預測意味着微處理器的速度将會以幾何級數提升。如果這種情況真的發生了,占據一整間屋子的計算機有朝一日終将小到可以置于桌上。
截至那時,摩爾的預測都很準,當時最新款的英特爾 8008 芯片處理數據的速度是其上一代的兩倍。
1972 年秋,保羅和蓋茨走進了南西雅圖的一個工業區,對銷售員說,他們想買一個英特爾 8008 芯片。直到現在,一想起店裡那個銷售員當時有多驚訝,依然會讓蓋茨忍俊不禁。
經歷了英特爾的發明所產生的巨大影響之後,回望那一時刻,真有種難以置信的感覺。集成電路中晶體管數量倍增的現象将會被冠以 " 摩爾定律 " 之名,而微處理器将會推動數字革命,為我們帶來個人電腦和智能手機。
微處理器的發明将成為蓋茨職業生涯中意義最重大的事件,沒有之一。
沒有它,微軟公司不會存在。
繼英特爾之後,一大堆芯片制造商迅速采取行動,奮起直追。
摩托羅拉、仙童、通用儀器、西格尼蒂克、英特矽爾、美國無線電公司、羅克韋爾、西部數據、國家半導體、MOS 科技、德州儀器等公司都在制造和英特爾 8080 相似的 8 位微處理器。這些芯片中的任何一個,都有可能成為個人電腦的 " 電腦 "。
舉目四望,看到的是一個行業的種子正在遍地萌發。
受到牛郎星計算機及其使用的英特爾 8080 芯片的啟發,惠普公司的一位工程師購入了一個 MOS 6502 處理器,自行造出了一台計算機原型機。
他的朋友史蒂夫 · 喬布斯看到了這台原型機。喬布斯剛剛回到美國,那之前,他在印度旅居了 7 個月。
不到 1 年時間,喬布斯就會脫掉橘黃色的禅修長袍,重新蓄起頭發,并且說服沃茲尼亞克,其在計算機方面的愛好可以變成一樁生意。
沒過多久,他們就為自己創辦的公司起名為蘋果,并且開始銷售旗下的第一款計算機——蘋果 I。
兩個人,準時為學校編寫好排課程式
蓋茨進入高中後,湖濱中學決定與附近的聖尼古拉斯女校合并。
鮑勃 · 黑格接手了整合兩所學校課程安排的任務,但這項任務顯然比他預想的難得多,各種困難與問題層出不窮。
在大家因一團糟的局面而火冒三丈時,肯特和蓋茨決定介入,試圖幫幫忙,思考如何在春季學期解決排課問題。
這一年冬天,蓋茨就待在自己的房間裡寫寫畫畫,試圖解出到那時為止他嘗試解決的最難的問題:* 如何滿足數百人各自不同且似乎互不相容的需求,同時又讓計算機可以理解。
他畫了一個将學生、班級、教師、時間和其他所有變量都包括在内的矩陣,然後在那一周裡一點一點地改進自己的圖表,它逐漸變得越來越清晰。
周六那天,他走出房間,知道自己已經以系統的方式厘清了各種衝突,這也是一種計算機能夠掌握的方式。
當時已經沒時間根據蓋茨想出來的那個解決方案重新編寫程式,為了趕在春季學期開學之前準備就緒,他們必須優先想出臨時補救措施。
大約有 3 周的時間,肯特、蓋茨和 4 名教師每天工作 20 個小時,千方百計終于讓程式能正常工作了。
校長對這個結果很滿意,他說,他可以想辦法湊到一筆資金,雇蓋茨等人編寫一個擁有學校所需全部功能的全新版本,并使用他們選擇的 BASIC 語言來編程。
在花了數周時間解決細節問題之後,蓋茨他們與湖濱中學籤訂了關于從下一階段編寫排課程式的工作中獲取報酬的合同。校方同意給他們一筆津貼,并且支付由此產生的機時費。
在肯特去世後,蓋茨給從大學回家過暑假的保羅打了個電話,告訴他,自己要在月底免費機時用光前完成排課程式。雖然沒明說,但完成和肯特一起張羅的這件事對蓋茨來說很重要,何況學校還指望着他呢。
一個月的時間裡,保羅和蓋茨就住在計算機房。這個瘋狂的計劃,一部分是他們化解心中傷痛的途徑。保羅比任何人都清楚蓋茨在經歷着什麼,他知道,對蓋茨來說,最好的應對方式就是全身心地投入那個錯綜復雜的代碼謎題中,而他想要陪在蓋茨的身邊。
幸運的是,連軸轉的工作終于有了回報。蓋茨兩人準時完成了排課程式。
那年秋天,它運行得十分順暢,在随後幾年中一直被湖濱中學使用。
為第一台個人電腦編寫了首個程式
1974 年 8 月,保羅來到了波士頓,在離哈佛大學 40 分鍾車程的郊區租了一間公寓。
那年秋天,保羅向蓋茨兜售了許多創業點子。因為保羅對計算機硬體情有獨鍾,他的點子通常都圍繞着建造某種創新型計算機而展開。
不過,保羅很清楚,蓋茨對制造硬體這個想法越來越不感興趣。
一次又一次,蓋茨和保羅共進晚餐時的談話會轉移到軟體問題上。軟體與硬體不同,沒有線路,也無需工廠。編寫軟體所需的只不過是腦力和時間,在這個領網域,他們有優勢,甚至可以引領方向。
1975 年 1 月号的《大眾電子》刊登了一篇文章:" 迄今為止功能最強大的小型計算機項目——造價低于 400 美元 ",這就是微型儀器和遙測系統公司(MITS)推出的牛郎星 8800(Altair 8800)計算機。
《大眾電子》上的報道對軟體幾乎只字未提。
為了實現無須撥動開關便可輕松地将程式寫入牛郎星計算機的目的,大家必然需要一台電傳打字機終端,以及一種像 BASIC 或 FORTRAN 這樣專門為 8080 處理器量身定制的編程語言。但是,文章的作者并未言及,是否已經有一種可供應用的語言。
他們打賭還沒有這樣的語言,決定為其編寫一版。
蓋茨和保羅最大的擔心是時間不夠。按照估計,只有幾周時間來完成程式并提交給微型儀器和遙測系統公司,否則别人就會趕在他們前面。有太多的工作要做,而他們只有兩個人,一個有一份全職工作,另一個功課已經滿負荷。
無意中,他們拉來了一位新夥伴,數學專業的大一新生蒙特 · 達維多夫。由蓋茨繼續負責程式的主要部分,蒙特開始編寫處理加、減、乘、除和指數運算的代碼,保羅對他開發的模拟器進行微調。
在瘋狂編寫了 6 周代碼後,他們的 BASIC 終于可以順利運行了,這已經足夠拿得出手向微型儀器和遙測系統公司展示。保羅給牛郎星的開發公司打了電話,安排了一次會面。
在微型儀器和遙測系統公司,保羅輸入了他的引導裝入程式代碼,随即啟動了紙帶閱讀器。
最後,紙帶到頭了,計算機開始運行程式。終端機上顯示出下列字樣:
MEMORY SIZE(内存大小)?
保羅輸入了幾個 BASIC 指令,以此展示他們的 " 傳世傑作 "。
PRINT 2+2
4
伴随着這行代碼,為第一台個人電腦編寫的第一個程式就此誕生了。
夢想一家服務全球的 " 軟體工廠 "
秉承新生的個人電腦世界的嬉皮士精神特質,當時人們普遍認為軟體應當是免費的。
硬體是看得見、摸得着的;與之相對,軟體是虛的,需要充分發揮想象力,才能看到某個人曾花費了數千小時來進行設計、編寫和調試,付出了最大的努力令其得以正常運行。
因此,軟體可以從朋友那裡拷貝得來的,可以公開共享,甚至偷也無妨。
但是,保羅和蓋茨想要構建一種商業模式。他們堅信,随着個人電腦變得越來越便宜、走入大小企業和千家萬戶,對高質量軟體近乎無窮無盡的需求将随之產生。
有朝一日,如果一切如他們所願,微軟将成為一家 " 軟體工廠 ",提供多種多樣的產品。那時候,如果有人問蓋茨他們目标是什麼,他或許會詳盡描述這個軟體工廠的願景,也可能只是簡單地說上一句:
我們希望讓自己的軟體運行于全球每一台個人電腦上。
保羅協助微軟公司設定了技術研發方向,他還是開發工具大管家。他開發的用于 PDP – 10 的模拟器及相關工具,不僅讓兩人在手頭沒有牛郎星計算機(或英特爾 8080 處理器)的情況下打造出了自己的第一個 BASIC 軟體,還得以為不同的處理器編寫不同版本的 BASIC 和其他軟體。
他的工作幫助微軟在這一領網域占得先機,并且在很長一段時間裡都保持着巨大的優勢。
蓋茨他們靠着一兩通長途電話和一張飛往阿爾伯克基的機票,就搞定了 2000 英裡外的微型儀器和遙測系統公司。但是要尋找下一個和下下一個客戶,他們必須通過寫信、參加行業展會、拜訪公司的方式推銷自己和自己的產品。他們還有一大堆問題需要解決:應當收取多少費用?如何進行市場營銷?怎麼雇用員工?薪酬和稅務這一整套流程誰來處理?
1976 年,蓋茨回到校園後,幾乎馬上就收到了微軟的召喚,他們找到了一家大客戶——國家收銀機公司(NCR),這是當時最大的計算機制造商之一。他們籤下了一筆交易,對 8080 BASIC 進行修改,使其适應國家收銀機公司的 7200 計算機。
合同的成交價格為 15 萬美元,這在當時是一筆巨款。
蓋茨希望擁有付費用戶之後,能雇人編寫代碼,這随之變成了現實。與國家收銀機公司和其他幾個客戶達成的交易,給他們帶來了每月大約 2 萬美元的收入,這讓微軟公司可以雇用自己的第一名員工。
4 月,蓋茨給湖濱中學校友馬克 · 麥克唐納打了個電話,他是常泡在湖濱中學計算機房裡的那夥人中的一員。
幾天後,蓋茨又收到了一封裡克寫來的信,他打算重新加入微軟。蓋茨、保羅與裡克建立了一個三方合夥公司。
蓋茨寫下了他們的商業計劃,有兩個主要目标:
一是擴大規模和知名度,二是賺錢。
這封信标志着他們齊心協力打造一家獨立公司的行動進入了下一個階段。他們一致同意,至少在未來兩年内," 會将微軟作為我們的頭等大事 "。
争取微軟的獨立發展
但很長一段時間内,微軟依舊嚴重依賴微型儀器和遙測系統公司。通過向牛郎星計算機提供 8080 BASIC 軟體授權而獲得的特許使用費,依然是微軟公司最大的收入來源。
此外,微型儀器和遙測系統公司擁有 8080 BASIC 的全球獨占權,蓋茨他們每為這個源代碼找到一家客戶,合同都必須經過它的審批,并且在他們籤下一筆交易後,要跟該公司平分收益。
1976 年夏天,微軟逐漸擺脫對微型儀器和遙測系統公司的依賴,開始尋找自己的辦公場所,着手開發能夠吸引新客戶的產品。
尋找新客戶的任務主要落在了裡克頭上,他相當于公司的總經理。在達成三方合夥協定幾個月後,裡克又改變了心意,選擇退出合夥後。保羅和蓋茨繼續按照 60% 和 40% 的比例分配微軟公司的所有權。
他們寄出一封又一封打印信函,撥出一通接一通電話,聯系一家又一家公司,寄希望于可以找到有興趣購買微軟公司軟體的人。
BASIC 的大受歡迎讓微軟公司得以起步,而蓋茨他們會繼續對它進行改編,以适應不同的處理器。
不過,盡管 BASIC 易于使用,而且頗受計算機愛好者歡迎,它卻并不是更專業的計算機購買者中意的語言。
科學家和高校的研究人員使用的是 FORTRAN,公司則使用 COBOL;與此同時,在數字設備公司小型計算機的很多用戶中,作為 BASIC 替代選項的 FOCAL 十分流行。
為了擴大業務範圍,微軟需要為這三種語言開發各自的版本。
為了支持新產品開發,夏日将盡時,微軟開始招聘第一批全職員工。對蓋茨來說,那些新雇員讓微軟感覺變成了一家真正的公司。
後來,一家名叫 Pertec(周邊設備公司)的公司提出了收購微型儀器和遙測系統公司的要約。
在 Pertec 開始接觸微型儀器和遙測系統公司後不久,與微軟公司相關的一切業務都徹底停了下來:特許使用費的付款停止了,向第三方授權的交易也停止了。
随着 1977 年春天的到來,蓋茨越來越清楚地意識到,微型儀器和遙測系統公司和 Pertec 根本不打算向他們支付逾期未付的特許使用費,也無意将 8080 BASIC 授權給其他公司。
但在先前的合同中就已明确:蓋茨他們不曾将這款軟體的所有權轉移給微型儀器和遙測系統公司,只是授權給他們使用。而且,微型儀器和遙測系統公司負有盡最大努力将這款軟體授權給其他公司的合同義務。
保羅和蓋茨受夠了。
他們和律師聯名向愛德華 · 羅伯茨發出一封信函,列出了微型儀器和遙測系統公司違反合同約定的諸多行為。6 月,按照合同約定,他們與微型儀器和遙測系統公司的糾紛被移交仲裁。
聽證會持續了大約 10 天。經過漫長的等待,仲裁結果出來了:仲裁員站在微軟公司這一邊。這位仲裁員解除了蓋茨他們向微型儀器和遙測系統公司的 8080 BASIC 獨占授權,明确指出他們享有源代碼的所有權。
蓋茨他們立即給所有一直等待獲得這款軟體授權的公司打了電話。幾周内,便收到了五六家客戶的付款。
不再依賴微型儀器和遙測系統公司
1977 年年底,康懋達 PET、蘋果 II 和睿俠 TRS-80 開始進入學校、辦公室和家庭。
幾年内,其用戶便多達數十萬人,其中大多數從來都沒摸過計算機。
後來被稱為 "1977 年三巨頭 " 的這三款計算機将個人電腦革命引入了主流社會,其他廠牌則落在了後面。
在構成 "1977 年三巨頭 " 的每一台計算機上,都安裝着一版微軟根據其制造商的要求度身定制的 BASIC:在睿俠的計算機上,運行着 Level II BASIC;在蘋果計算機上,運行着把他們兩家公司的名字合二為一的 Applesoft BASIC;在 PET 計算機上,則運行着康懋達 BASIC。
微軟不再依賴微型儀器和遙測系統公司,也決定将公司搬至西雅圖。
在蓋茨離家上大學時,曾對父母說,他永遠都不會再生活在西雅圖。似乎他一定會在一個更大的世界打造自己的生活,回家将被視為一種退卻。
但實際上,情況已經有所不同。
回來的不只是蓋茨,而是微軟——這是一家他和朋友共同創建的公司,它擁有一群各具特點的員工、一項蒸蒸日上的盈利業務,而且從那一刻起,它将會成為定義蓋茨人生的不可或缺的一部分。
One More Thing
上述内容來自中信出版社出版的比爾 · 蓋茨首部自傳《源代碼》。
「13 歲學編程,20 歲從哈佛退學創辦微軟,31 歲成為世界首富。」
蓋茨成長路徑中的幾個決定性時刻,塑造了一位科技少年敏銳的洞察力和高瞻遠矚的戰略眼光。
1995 年,比爾 · 蓋茨就曾在《未來之路》中預言互聯網及 AI 發展。他認為,未來軟體會越來越智能,電腦會理解人類語言,還能分析復雜的數據。
而在《源代碼》裡,蓋茨講述了他從童年到大學、整個青少年時期的成長故事,從中我們能發現微軟創業背後的靈感來源和隐藏邏輯。
在中信出版社的授權下,量子位将繼續陸續與大家分享書中部分與 AI、科技、計算機強相關的節選篇幅,與君共勉。
本文系連載第二篇,第一篇可回顧下文: