In this bestselling novel, author Malcolm Gladwell talks about 'outliers' - explained by him as individuals who cannot grasp the ordinary understanding of accomplishment. The book deals with ...(more)
So, back to Bill Joy. It's 1971. He's tall and gawky and sixteen years old. He's the math whiz, the kind of student that schools like MIT and Caltech and the University of Waterloo attract by the hundreds. "When Bill was a little kid, he wanted to know everything about everything way before he should've even known he wanted to know," his father, William, says. "We answered him when we could. And when we couldn't, we would just give him a book." When it came time to apply to college, Joy got a perfect score on the math portion of the Scholastic Aptitude Test. "It wasn't particularly hard," he says matter-of-factly. "There was plenty of time to check it twice." He has talent by the truckload. But that's not the only consideration. It never is. The key to his development is that he stumbled across that nondescript building on Beal Avenue.
In the early 1970s, when Joy was learning about programming, computers were the size of rooms. A single machine (which might have less power and memory than your microwave now has) could cost upwards of a million dollars--and that's in 1970s dollars. Computers were rare. If you found one, if was hard to get access to it; if you managed to get access, renting time on it cost a fortune.
What's more, programming itself was extraordinarily tedious. This was the era 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 operator. Since computers could handle only 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 "program" for only a few minutes out of every hour you spend in the computer room, how can you ever get in ten thousand hours of practice? "Programming with cards," one computer scientist from that era remembers, "did not teach you programming. It taught you patience and proofreading."
It wasn't until the mid-1960s that a solution to the programming problem emerged. Computers were finally powerful enough that they could handle more than one "appointment" at once. If the computer's operating system was rewritten, computer scientists realized, the machine's time could be shared; the computer 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. Dozens of terminals could be built, all linked to the mainframe by a telephone line, and everyone could be working--online--all at once.
Here is how one history of the period describes the advent of time-sharing:
This was not just a revolution. It was a revelation. Forget the operator, the card decks, the wait. With time-sharing, you could sit at your Teletype, bang in a couple of commands, and get an answer then and there. Time-sharing was interactive: A program could ask for a response, wait for you to type it in, act on it while you waited, and show you the result, all in "real time."
This is where Michigan came in, because Michigan was one of the first universities in the world to switch over to time-sharing. By 1967, a prototype of the system was up and running. By the early 1970s, Michigan had enough computing power that a hundred people could be programming simultaneously in the Computer Center. "In the late sixties, early seventies, I don't think there was anyplace else that was exactly like Michigan," Mike Alexander, one of the pioneers of Michigan's computing system, said. "Maybe MIT. Maybe Carnegie Mellon. Maybe Dartmouth. I don't think there were any others."
This was the opportunity that greeted Bill Joy when he arrived on the Ann Arbor campus in the fall of 1971. He hadn't chosen Michigan because of its computers. He had never done anything with computers in high school. He was interested in math and engineering. But when the programming bug hit him in his freshman year, he found himself--by the happiest of accidents--in one of the few places in the world where a seventeen-year-old could program all he wanted.
"Do you know what the difference is between the computing cards and time-sharing?" Joy says. "It's the difference between playing chess by mail and speed chess." Programming wasn't an exercise in frustration anymore. It was fun.
"I lived in the north campus, and the Computer Center was in the north campus," Joy went on. "How much time did I spend there? Oh, a phenomenal amount of time. It was open twenty-four hours. I would stay there all night, and just walk home in the morning. In an average week in those years, I was spending more time in the Computer Center than on my classes. All of us down there had this recurring nightmare of forgetting to show up for class at all, of not even realizing we were enrolled.
"The challenge was that they gave all the students an account with a fixed amount of money, so your time would run out. When you signed on, you would put in how long you wanted to spend on the computer. They gave you, like, an hour of time. That's all you'd get. But someone figured out that if you put in 'time equals' and then a letter, like t equals k, they wouldn't charge you," he said, laughing at the memory. "It was a bug in the software. You could put in t equals k and sit there forever."
Just look at the stream of opportunities that came Bill Joy's way. Because he happened to go to a farsighted school like the University of Michigan, he was able to practice on a time-sharing system instead of with punch cards; because the Michigan system happened to have a bug in it, he could program all he wanted; because the university was willing to spend the money to keep the Computer Center open twenty-four hours, he could stay up all night; and because he was able to put in so many hours, by the time he happened to be presented with the opportunity to rewrite UNIX, he was up to the task. Bill Joy was brilliant. He wanted to learn. That was a big part of it. But before he could become an expert, someone had to give him the opportunity to learn how to be an expert.
"At Michigan, I was probably programming eight or ten hours a day," he went on. "By the time I was at Berkeley I was doing it day and night. I had a terminal at home. I'd stay up until two or three o'clock in the morning, watching old movies and programming. Sometimes I'd fall asleep at the keyboard".he mimed his head falling on the keyboard."and you know how the key repeats until the end, and it starts to go beep, beep, beep? After that happens three times, you have to go to bed. I was still relatively incompetent even when I got to Berkeley. I was proficient by my second year there. That's when I wrote programs that are still in use today, thirty years later." He paused for a moment to do the math in his head--which for someone like Bill Joy doesn't take very long. Michigan in 1971. Programming in earnest by sophomore year. Add in the summers, then the days and nights in his first year at Berkeley. "So, so maybe... ten thousand hours?" he said, finally. "That's about right."