However, lately Iâ€™ve discovered that there are a lot of publications cropping up that have been rightfully forgotten and got a lick of paint and the label Ajax just to be sold again without really looking into upgrading them.
It got worse by introducing
Teaching syntax vs. teaching the use of a language
The problem is that if you want to explain the basics of a programming language most tutorials start with the syntax. This has been a convention for a long time and actually stems from teaching people human languages. Many people learnt a foreign language in school that way and are perfectly capable of reading and writing it but fail completely in pronounciation or engagement in a conversation. Ever wondered why you learnt much more about the language in those two hours talking to a charming and gorgeous foreigner (most of the time of the other gender) than in three years in school? It is about interest and determination.
Teaching people how to communicate in a foreign language is a much harder task than teaching the grammar and vocabulary. You need a lot more engagement from the person you teach and you need them to be interested in the language and using it. Most school education is seen as a â€œmustâ€? rather than a â€œIâ€™d like to learn more about thisâ€?.
Some good language teaching techniques
I was lucky as I had an English teacher that made us subscribe to Newsweek, read the articles and then have a free debate in front of the black board. The roles of the different celebrities, politicians or other famous people featured in the news article were played by different students and one student had to be chairman of the panel. It was no coincidence that the teacher also ran the drama club.
This roleplaying made us become much more self-assured in using the foreign language than any long-winded grammar and syntax lecture would have done. Using the language became fun and you wanted to engage more. For example you wanted to learn more about using the language when you really liked the persona you had to play and wanted to get its point across in the debate.
Another good game we played was â€œjust a minuteâ€?. You were asked to talk for one minute about a topic the teacher told you. The class was divided in two groups and if you managed to finish the minute your half got a point. The snag was that you had to avoid mistakes like hesitation, repetition, deviation and using your native language. If you were caught committing one of these crimes the person from the other team that spotted it was to go on and would get the point for his or her team. This technique taught you how to stay on topic and how to paraphrase a word you donâ€™t know instead of feeling inadequate for not knowing it (as hesitation was a crime).
Not quite the same but similar ideas apply to teaching a programming language. When you teach the syntax and theoretical â€œhello worldâ€? examples you will breed non-creative developers who consider any change in the language a threat as they have to change their ways.
The practical upshot is that you can easily explain the language and give examples that lead to immediate results for those you teach the first few lines of script. Telling them to use
document.write() to print out results of a simple addition gives an immediate satisfaction that they achieved something, much like a
10 print "hello";
20 goto 10
back in the days of long ago.
The inaccessible dropdown menu navigations shows how to handle forms, the browser location object and event handling in one step, which allows the readers to play around with almost everything the browser offers them.
This satisfactory feeling leads to great feedback and also leads to publishers asking for this kind of tutorial. I didnâ€™t want to use
document.write() at all in my book , but both technical editors demanded it as it is very handy to explain things with it. At least I managed to get a message in that it is outdated and should be replaced with other techniques.
Then Iâ€™d have explained the syntax options of loops, conditions and calculations and put the lot together in a lot of examples using events.
However, a book like that is much harder to sell as people leafing through the first few pages would feel cheated not getting immediate code examples. Our attention span is so short by now that it feels wrong to learn about the environment we are going to work in before we learn where to press the button to turn on the tool to manipulate it.
So in essence I can see ourselves being in a spot of bother: we know that some basic techniques are just bad and you donâ€™t need them any longer if you want to create an unobtrusive and easy to maintain web product. On the other hand we also donâ€™t dare to break conventions of teaching and assume from the very start that readers are not interested enough in a subject matter to take in a bit of theory or the not obviously related information.