In the early 1970s, when Joy was learning about programing, computers were the size of rooms.
20世纪70年代初期,一台计算机差不多有一间房子那么大,那时候的乔伊还在学习编程。
A single machine, which might have less power and memory than your micowave now has,
当时一台计算机的功率和内存远不如你现在用的微处理器
could cost upwards of a million dollars. And that's in 1970s dollars.
但是它的价值超过100万美元。那是20世纪70年代的美元。
Computers were rare. If you found them, there were hard to get access to;
那时的计算机非常少有,即使你知道哪里有电脑,你也很难有使用它的机会,
and if you managed to get access, renting time on them cost a fortune.
一旦你有机会使用电脑,你几乎就得把全部时间用在电脑上面。
What's more, programming itself was extraordinarily tedious.
并且,编程本身就是一项枯燥乏味的工作。
This was the ear when computer programs were created using cardboard punch cards.
何况当时的计算机编程是通过在纸板上“打孔”的卡片来完成,
Each line of code was imprinted on the card using a keypunch machine.
每一条命令都是通过打孔机上的键盘在纸板上打下印记来识别。
A complex program might include hundreds, if not thousands, of these cards in tall stacks.
每一项复杂的程序都需要上百张,即便不是上千张,那样的卡片,累积起来的卡片堆得高高的。
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.
一旦输入一项程序,你就必须在堆积如山的卡片和计算机主机之间不停穿梭,把编好程序的卡片送到电脑操作员那里。
Since computers could only handle one task at a time, the operator made an appointment for your program,
由于电脑在一个时间点上只能处理一项命令,因此,电脑操作员会给你的程序编号,
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.
编程的结果何时出来需要看你前面有多少程序在运行,也许你几个小时都等不到编程的卡片回到你手里,甚至一整天都等不到。
And if you made even a single error, even a typographical error in your program,
要是你的程序犯了一个细小的错误,即便只是印刷上的错误
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.
想在二十出头儿便成为这方面的专家几乎不大可能。
When you can only "program" for a few minutes out of every hour you spend in the computer room,
如果你在计算机房,每个小时只有几分钟的时间“编程”,
how can you even get to ten thousand hours of practice?
那么,你又怎么能够拥有10,000小时的编程训练?
"Programming with cards," one computer scientist from that era remembers, "did not teach you programing.
用纸板编程一位电脑专家回忆那个时代说,“并不能真正教会你怎样编程,只能教你如何校对,
It taught you patience and proofreading."
教你如何培养自己的耐心。”
It wasn't until the mid-1960s that a solution to the programming problem emerged.
直到20世纪60年代,编程的难题才得到解决。
Computers were finally powerful enough that they could handle more than one "appointment" at once.
计算机的能力不断加强,这使得计算机能够同时处理多项指令。
If you rewrote the computer's operating system, computer scientist realized, the machine's time could be shared;
如果重新编写计算机操作系统,
it could be trained to handle hundreds of tasks at the same time.
改进后的计算机可以同时处理数百个任务。
That, in turn, meant that programmers didn't have to physically hand their stacks of computer cards to the operator anymore.
这意味着,程序设计者再也不需要把一摞摞的计算机卡片送到计算机操作员那里了。
You could build dozens of terminals, link them all to the mainframe by a telephone line, and have everyone working online all at once.
你可以构建多个计算机终端,用一根电话线把所有的终端连在主机上,这样每个人都可以编写程序,在线上,并且是同时编写。