Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site hoptoad.uucp Path: utzoo!watmath!clyde!burl!ulysses!bellcore!decvax!decwrl!amdcad!lll-crg!hoptoad!laura From: laura@hoptoad.uucp (Laura Creighton) Newsgroups: net.singles Subject: Re: Titles Message-ID: <487@hoptoad.uucp> Date: Wed, 5-Feb-86 00:29:00 EST Article-I.D.: hoptoad.487 Posted: Wed Feb 5 00:29:00 1986 Date-Received: Fri, 7-Feb-86 10:10:58 EST References: <4514@kestrel.ARPA> Reply-To: laura@hoptoad.UUCP (Laura Creighton) Organization: Nebula Consultants in San Francisco Lines: 63 Keywords: Computer Science In article <4514@kestrel.ARPA> ladkin@kestrel.ARPA writes: > >I teach lots of people who >are professional programmers, getting CS degrees. >It would be contrary to my experience to assume that >professional programmers without CS degrees are likely to >be better programmers. > >Suggesting that CS degrees aren't worth much to >programmers is just plain silly. There is `science' >in Computer Science, not just coding. > CS degrees are very useful in getting a job. Whether they are any use in *teaching you something* depends on where you got it, and how much work you put into learning. I wasn't suggesting that a CS degree isn't worth much to programmers -- I was asserting that even though you have a CS degree you may not be worth much as a programmer. The problem is not usually that not enough science is taught in computer science. The problem is with the professionalism of the code which is (by and large, to make a generalisation, which may, of course not apply to you and your students) up to academic standard but not up to professional standard. Take a case in point -- the utilities that came out of Berkeley on the 4.1bsd tapes. While I was working for the University of Toronto I ported most of those utilities to 68000s and pdp11s running v7, pwb, system 3 and system 5. Almost all of these utilities were written by grad students in computer science. I do not doubt that those grad students learned a lot of the science of computer science, but if you take a look at them, you will see that they are not professionally written. By that, I mean that the code does not pass lint, does not check the returns on system calls, dereferences NULL pointers, assumes that longs and ints are the same length, or that they are guaranteed to by 32 bits wide. This is unprofessional. Right now I am writing a book on how to write portable C programs. It is turning into a book on how to think as a computer professional. As a result of discussing this in net.unix-wizards, I have managed to collect a lot of people. Every day I have 2 or 3 messages in my mailbox from somebody, somewhere, who wants to write professional code, knows that professional C code passes lint, and can't get their code to pass lint. So they send me their code, and I explain what is wrong with it. But the saddest thing is that most of these people have computer science or electrical engineering degrees. Somehow or other, they managed to get degrees without learning how to write professional code, and when they get out into the real world they found that what was good enough for academia wasn't good enough for industry. There it really doesn't matter how well you understand the concepts in computer science; if you can't produce a maintainable product that is ready to ship by the deadline then you are in trouble -- unless you happen to get hired by a company that has a research arm which will pay you to think, and not to turn out a professional product. -- Laura Creighton ihnp4!hoptoad!laura hoptoad!laura@lll-crg.arpa