A recursive descent into pointless debate

Joel’s busy complaining that teaching Java in comp-sci courses makes life too easy for people, because they don’t have to deal with pointers and recursion. News flash for you, Joel: the times have changed, and new tools are available.

I’m sure that when carpenters switched from hand augers to power drills, there were carpenters out there that complained that the new apprentices weren’t being taught the old way of boring holes in wood. But the apprentices didn’t need to use hand augers anymore – power drills were so much better. It’s much the same with modern languages – you don’t need pointers, and recursion (while still necessary) is less needed. Heck, most of the things you need recursion for tend to get implemented in libraries that you pick up and use. Instead, you need new tools, particularly good abstraction and reasoning skills.

Yes, there is still a specialist need for pointers and recursion, as well as functional languages and so on. These should be offered as courses at universities – optional courses for people looking to specialise in those areas. Similarly, while all developers should know the basics of database theory and practice, advanced database courses, where you learn how to build a DBMS, are optional courses. Ditto for operating systems design, or distributed computing, or embedded systems.

Medical schools turn out all sorts of medical practitioners, and I wouldn’t trust a brain surgeon to patch up my kidney. Why should anyone expect all graduates of a comp-sci school to know everything out there? I wouldn’t. I’d expect them to understand the basics of most things, and have moderately advanced knowledge in a couple of areas. The “basics” change over time – and pointers and recursion aren’t part of the basics anymore, simply because developers don’t need to write their own basic data types all the time. Similarly, it used to part of the “basics” to be able to get code to run inside of 8KB of memory – this has been dropped even for most embedded device developers now.

The real beef that Joel has is that he hasn’t moved on. He says it himself: he can no longer tell who the smart kids are, the ones that are worth his time in bringing in and training further. He probably wouldn’t object to teaching recursion and pointers to a a smart kid if it was necessary for the job, but he can’t tell who the smart kids are anymore. Well, Joel – that’s your problem. Try actually talking to them instead of asking “I’m smarter than you are” ego questions. If pointers and recursion is required for the job, then keep the questions in. If not, toss them. If you need to keep them, and you can’t find people who know them, then maybe you should try to find out why the rest of the world’s moved on.

Here’s an idea: have a few different types of hard questions – maybe some OO, or concurrency, or parallel computing questions. Find out which area the interviewee claims to know and give them a question to suit.

Personally, I don’t care about universities not teaching recursion or pointers. I do care that they don’t teach things like decent debugging skills, or testing, or how to maintain a huge pile of crappy code without breaking it (I also care that they don’t teach kids how to avoid the huge pile of crappy code in the first place). Now, that’s a real problem, and it’s been a problem ever since the days of punch cards – I don’t really expect that to change soon either.


Author: Robert Watkins

My name is Robert Watkins. I am a software developer and have been for over 18 years now. I currently work for people, but my opinions here are in no way endorsed by them (which is cool; their opinions aren’t endorsed by me either). My main professional interests are in Java development, using Agile methods, with a historical focus on building web based applications. I’m also a Mac-fan and love my iPhone, which I’m currently learning how to code for. I live and work in Brisbane, Australia, but I grew up in the Northern Territory, and still find Brisbane too cold (after 16 years here). I’m married, with two children and one cat. My politics are socialist in tendency, my religious affiliation is atheist (aka “none of the above”), my attitude is condescending and my moral standing is lying down.

3 thoughts on “A recursive descent into pointless debate”

  1. Hi, just wanted to say that it wasn’t clear to me from reading your post in Google Reader, that there was more to this than the first paragraph…

  2. Tony,

    By my own choice, I only publish a small section of any article in the excerpt. I actually like people to come to my site to read the full article. Also, a lot of my articles are fairly long, and I think long articles in feed readers are somewhat annoying.

    I am aware that only publishing an excerpt in the RSS feed puts me in the minority as far as bloggers go (albeit a fairly large minority). Them’s the breaks.

    As a rule, I try to make the first paragraph or two (which I use as the exercpt) be a tease to encourage people to read the rest. Sometimes it works, sometimes it doesn’t.

    Actually… I think I’ll see if I can get MT to put a [more…] section in to the RSS feed, which will solve that problem. Thanks for the feedback, Tony. 🙂

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s