in Uncategorized

Teaching programmers – Java and Joel

Joel Spolsky, whose books and website are essential reading for anyone involved in IT development, complains that today’s programmers can’t program, largely as a result of only having learned modern languages like Java, which don’t stretch students to the same extent as Scheme and C. I agree and disagree at the same time. Whilst I agree that these guys will never be able to advance computer science by programming up the next Google clustering system, maybe they will be able to solve the business, HR and user interface problems that cause so many IT projects to fail.

Philip Greenspun, who loves to be controversial about programming matters also takes a view on Java:

Java is the SUV of programming tools … A project done in Java will cost 5 times as much, take twice as long, and be harder to maintain than a project done in a scripting language such as PHP or Perl.

I think that’s a bit of an exaggeration, but I can see his point. You just don’t need all that overhead to develop web applications.

If all you want to do is develop web-based database applications, then a knowledge of databases and SQL is the most critical thing. You can learn a certain amont about how modern computers work from learning Java, not enough to understand the whole thing, but enough to give you an appreciation.

I think we are only beginning to appreciate the breadth of experience, from conceiving and planning through to writing code and designing user interfaces through to training and marketing that is required to deliver really good software. Broader courses are a good idea, but we have only begun to figure out how to develop them.

The people in charge of teaching computer science and related disciplines have big questions to answer though. How are they going to reduce failure rates and produce computer science graduates, when their subject is, at base, so damned hard? One answer is to make the subject easier. But it doesn’t seem to be a great answer.

Write a Comment


  1. I am totally new on this whole thing of programming. I barely know how to build a loop. But it seems to me that, as in any other areas, all comes to use the tool that suits your objectives best. Once you know what you want to do (ant this is the difficult part!), it should be fairly straight forward to figure out what kind of programming language you should use. You wouldn’t use a saucepan to cook a Spanish tortilla, and you wouldn’t use a frying pan to boil some soup. Of couse it is a simple way to put it, but sometimes we tend to forget the basics. Once you get to this point, it is really important to have big brains who can program C, but also professionals who can program java or write scripts and have enough empathy to make things simple and user friendly. And most of the times big brains are to the detriment of empathy, I’m afraid!