Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84; site Glacier.ARPA Path: utzoo!watmath!clyde!burl!ulysses!allegra!bellcore!decvax!decwrl!Glacier!reid From: reid@Glacier.ARPA Newsgroups: net.cse Subject: Re: Where have all the hackers gone? Message-ID: <1999@Glacier.ARPA> Date: Thu, 20-Dec-84 13:31:24 EST Article-I.D.: Glacier.1999 Posted: Thu Dec 20 13:31:24 1984 Date-Received: Sat, 22-Dec-84 01:54:57 EST References: <3137@utah-cs.UUCP> <67@tove.UUCP> Organization: Stanford University, Computer Systems Lab Lines: 55 I am the professor who teaches the weedout course at Stanford. It is called CS108, "Fundamentals of Computer Science". It is the third CS course that people take here (after Intro Programming and Intro Algorithms). I consider myself a pretty good hacker; I learned to program at the University of Maryland 20 years ago by stealing access to the IBM 7094, and I hacked for a living for 10 years before turning into a graduate student and then a professor. I have written several million lines of code in my life, and perhaps half of that code is still in use commercially. Here at Stanford I amuse myself by doing system hackery on my two Vax Unix systems when I get too depressed by dealing with whining students. Let me tell you why I insist on teaching the weedout course, and why I flunk about half the class. Raw brain power is not enough. Raw programming skill is not enough. For a person to be an effective software engineer in today's world, and for that person to be able to continue being effective as he turns 25, 30, 35, or 40, or older, he must learn more than just hackery. A student who wants to be a successful wizard for the rest of his life, rather than just being impressively smart for a 19-year-old, had better learn how to keep learning. He had also better learn about the principles that shape the design of his beloved favorite computer, and about the mathematics, physics, information theory, and computer science that explain the boundaries of the world of computers. When I was at Maryland I was very scornful of some of the faculty because I knew I was a better programmer than they were. In my 18-year-old view of the world, I saw it as a complete waste that I had to take all these dumb courses when I already knew more about the material than the person teaching it. Of course I didn't know more about the material, and I didn't have the perspective to see that I didn't know the material. My vanity at being such a good hacker clouded my vision for the big picture. I am now 35, old for a hacker, and I can still get away with challenging the students in my CS108 class to write a better program than me, or a faster, or smaller, or cleverer program. Most of the time I still beat them, though each year it gets harder. It doesn't get harder because they get better--it gets harder because I get older and my kid gets older and I can't quite put in the 12-hour marathon hacking sessions like I used to. Last year 2 students out of a class of 200 managed to beat my execution time in a speed contest; one of them got an A- because he bungled the midterm. So I teach the weedout course to make sure that students learn things whose worth they cannot yet comprehend. My being a good hacker does not make me any better at teaching the weedout course--its contents have very little to do with hackery--but it enables me to get their attention while I make them learn some computer science. A weedout course taught by someone who is not a gunslinger like me is still a perfectly legitimate course, even if the students can't see it yet. They will someday. Brian Reid decwrl!glacier!reid Stanford Reid@SU-Glacier.ARPA