20世紀(jì)70年代初期,一臺計算機(jī)差不多有一間房子那么大,那時候的喬伊還在學(xué)習(xí)編程。
A single machine, which might have less power and memory than your micowave now has,
當(dāng)時一臺計算機(jī)的功率和內(nèi)存遠(yuǎn)不如你現(xiàn)在用的微處理器
could cost upwards of a million dollars. And that's in 1970s dollars.
但是它的價值超過100萬美元。那是20世紀(jì)70年代的美元。
Computers were rare. If you found them, there were hard to get access to;
那時的計算機(jī)非常少有,即使你知道哪里有電腦,你也很難有使用它的機(jī)會,
and if you managed to get access, renting time on them cost a fortune.
一旦你有機(jī)會使用電腦,你幾乎就得把全部時間用在電腦上面。
What's more, programming itself was extraordinarily tedious.
并且,編程本身就是一項枯燥乏味的工作。
This was the ear when computer programs were created using cardboard punch cards.
何況當(dāng)時的計算機(jī)編程是通過在紙板上“打孔”的卡片來完成,
Each line of code was imprinted on the card using a keypunch machine.
每一條命令都是通過打孔機(jī)上的鍵盤在紙板上打下印記來識別。
A complex program might include hundreds, if not thousands, of these cards in tall stacks.
每一項復(fù)雜的程序都需要上百張,即便不是上千張,那樣的卡片,累積起來的卡片堆得高高的。
Once a program was ready, you walked over to whatever mainframe computer you had access to and gave the stack of cards to an operater.
一旦輸入一項程序,你就必須在堆積如山的卡片和計算機(jī)主機(jī)之間不停穿梭,把編好程序的卡片送到電腦操作員那里。
Since computers could only handle one task at a time, the operator made an appointment for your program,
由于電腦在一個時間點(diǎn)上只能處理一項命令,因此,電腦操作員會給你的程序編號,
and depending on how many people were ahead of you in line, you might not get your cards back for a few hours or even a day.
編程的結(jié)果何時出來需要看你前面有多少程序在運(yùn)行,也許你幾個小時都等不到編程的卡片回到你手里,甚至一整天都等不到。
And if you made even a single error, even a typographical error in your program,
要是你的程序犯了一個細(xì)小的錯誤,即便只是印刷上的錯誤
you had to take the cards back, track down the error, and begin the whole process again.
那么你就必須帶回自己的卡片,清除這個錯誤,整個程序又得重新開始。
Under those circumstances, it was exceedingly difficult for anyone to become a programming expert.
在這樣的情況下,要想成為編程專家并非易事。
Certainly becoming an expert by your early twenties was all but impossible.
想在二十出頭兒便成為這方面的專家?guī)缀醪淮罂赡堋?/p>
When you can only "program" for a few minutes out of every hour you spend in the computer room,
如果你在計算機(jī)房,每個小時只有幾分鐘的時間“編程”,
how can you even get to ten thousand hours of practice?
那么,你又怎么能夠擁有10,000小時的編程訓(xùn)練?
"Programming with cards," one computer scientist from that era remembers, "did not teach you programing.
用紙板編程一位電腦專家回憶那個時代說,“并不能真正教會你怎樣編程,只能教你如何校對,
It taught you patience and proofreading."
教你如何培養(yǎng)自己的耐心。”
It wasn't until the mid-1960s that a solution to the programming problem emerged.
直到20世紀(jì)60年代,編程的難題才得到解決。
Computers were finally powerful enough that they could handle more than one "appointment" at once.
計算機(jī)的能力不斷加強(qiáng),這使得計算機(jī)能夠同時處理多項指令。
If you rewrote the computer's operating system, computer scientist realized, the machine's time could be shared;
如果重新編寫計算機(jī)操作系統(tǒng),
it could be trained to handle hundreds of tasks at the same time.
改進(jìn)后的計算機(jī)可以同時處理數(shù)百個任務(wù)。
That, in turn, meant that programmers didn't have to physically hand their stacks of computer cards to the operator anymore.
這意味著,程序設(shè)計者再也不需要把一摞摞的計算機(jī)卡片送到計算機(jī)操作員那里了。
You could build dozens of terminals, link them all to the mainframe by a telephone line, and have everyone working online all at once.
你可以構(gòu)建多個計算機(jī)終端,用一根電話線把所有的終端連在主機(jī)上,這樣每個人都可以編寫程序,在線上,并且是同時編寫。