Not all tutorials target the same audience.
Posted on Sunday, April 04, 2010 at 6:12 PM.Today I read an article by James Hague that suggests we re-think how programming language tutorials are written. Mid-way through the article, I think he sums up his point when he writes, "Programming language tutorials shouldn't be about leaning languages. They should be about something interesting, and you learn the language in the process."
For tutorials targeting people who are completely new to computer programming itself, this is a sensible approach to take. It can help strike a good balance between informing the person about the language or languages being used, while also showing how to apply the concepts to somewhat realistic problems, but at the same time it doesn't bury them in terminology or concepts they might not yet understand.
However, this is clearly not an approach that caters well to the needs of experienced programmers who want to (or need to) get up to speed quickly with a new language. If I have a client coming to me with a problem that involves a language I haven't used before, the last thing I want to do is spend time reading such scenarios. I don't necessarily want a reference, but rather a quick, to-the-point book that summarizes the features that are available. I'd rather such texts use field-specific terminology like "associative array" if that will communicate the language's features more rapidly.
I don't think we should fault Programming in Lua as being a badly written tutorial; it's actually quite decent for experienced programmers who want to rapidly learn what Lua offers. Admittedly, it probably isn't the best book for novices. But reading its Audience section should make that clear. It does proceed on the assumption that the reader has at least some programming experience. Hopefully any computer programming novice who does think of reading that book does glance at the Audience section beforehand, and realizes on their own that some other resource may be a better introduction to programming itself.
It's probably best to not try and target both audiences with a single tutorial. Let there be tutorials that actively target inexperienced programmers, but the bulk of the tutorials should probably be of a format that is useful to programmers who have some prior experience and knowledge. Most programmers learn the basic concepts common to most programming languages once, yet need to learn the features and functionality offered by a specific language time and time and time again.








