The Sams Teach Yourself … in 24 hours series gets a bit of a bashing from some people. The criticism is that you can’t learn to be a programmer, let alone a good one, in only 24 hours, and by publishing books with titles such as these, they cheapen our craft. People wander into a bookshop, pick up a copy of Teach Yourself PHP in 24 hours or something, and the next day they are copying and pasting SQL injection vulnerabilities from all over the web into what they hope will be The Next Facebook. Or so the thinking goes.
Now people who say this kind of thing have a valid point. You can’t learn to be a good programmer overnight — it takes years of experience, trial and error, constantly honing your skills, and so on, and I don’t think you’ll ever reach a point where you stop learning. However, I don’t think it’s fair to turn this point into a criticism of books such as the 24 hours series. To be sure, these books won’t turn you into an expert programmer in a weekend, but if you think that’s what they’re all about, you’ve completely misunderstood the title. Their aim is to give you enough knowledge to bootstrap your understanding of the subject in that period of time to a point where you can actually start to Get Things Done, and then give you a platform to build on.
In that respect, I think they play a very important role. Whenever I come to a completely new technology, I see a mysterious black box, with everything hidden away behind a facade of whatever user interface you have, and if that happens to me as a particularly techno-savvy type, it’s certainly going to happen to lesser mortals as well. However, I often find that it just takes a little bit of an idea of what’s going on under the hood for me to get started finding my way around it in earnest. Somehow, the first part of the learning curve often seems the steepest.
There’s another reason why they’re important too. Computer programming these days — certainly, programming in the Real World — often requires you to get a handle on new technologies and languages very quickly. It’s a fast paced world, with new technologies coming out left, right and centre, and if you don’t keep up you’ll fall behind. Add a few over-enthusiastic sales guys into the mix, convincing the clients that you’re the world’s greatest SharePoint expert on the basis of the fact that you threw a default installation of MOSS 2007 onto a server and set up a couple of custom lists, and things get all the more interesting. Very often, you need to get up to speed with something in only 24 hours.
In this respect, I’ve found the 24 hours books to be some of the best introductory texts on computer programming related subjects that you can get. I originally learned XML from Michael Morrison’s Teach Yourself XML in 24 hours. I have two books on UML: Martin Fowler’s UML Distilled and Joseph Schmuller’s Teach Yourself UML in 24 hours, and I find Schmuller’s book the easier and clearer of the two to follow. It doesn’t particularly dumb the subject down either — both books cover the same material in similar depth. Given that Martin Fowler is one of the best tech writers around today, that speaks quite favourably for Joseph Schmuller.
I somehow wonder if there’s an element of snobbery involved in criticising books such as these. It seems to me that most of the criticism comes from very experienced and knowledgeable computer science-y types — the kind of people who think that Scheme is the best language to start with for teaching programming to ten year olds. It’s a bit like the world of church music: some traditionalist classical musicians get very dismissive of modern Charismatic worship albums. You can easily understand why: if you’ve spent several years studying for multiple degrees in music or computer science, no doubt working up a massive student loan in the process, you aren’t going to take too kindly to the idea that someone can be just as successful in your field without having gone to the same amount of expense and trouble.
So don’t be embarrassed about reading books in the 24 hours series. Everyone has to start somewhere with new technologies, and for getting started, these books are every bit as good as any.