Sunday 17 February 2013 — This is nearly 12 years old. Be careful.
I sat in on a beginner’s programming class a few weeks ago, and I was struck by the bizarre words we routinely use, but which must sound like nonsense to beginners.
Take the simple program:
print "Hello, world!"
What is the word “print” doing here? Printing means to produce marks on a piece of paper. There’s no paper involved. And “Hello, world!” is a string? It certainly doesn’t look like a piece of string.
Expressions have no range of emotion at all, arguments aren’t debating anything. Comprehensions are incomprehensible, floats just lie there. You can’t put a price on values, dictionaries have no order.
It’s no wonder beginners think we’re all nuts.
Comments
Looked at slightly more oddly, that was what I got stuck on reading a Fortran book as a child (with nobody around who could help). “Floating point” numbers have an exponent so the point isn't floating - it's fixed right there. “Fixed point” numbers, on the other hand, had no exponent so you are free to interpret them by whatever conventions you want. Maybe the book should have left the idea of interpreting integers as fractional till later because I gave up at that point. Learned to program a few years later at school aged about 13, I think. Still remember the puzzlement over that book well over 40 years later, though.
We need a set of common analogies (eg a dictionary in the traditional sense) for teaching programming and helping newbies decipher our verbiage.
Second, I apologize for the shameless plug, but I believe I have developed a simple "programmable metaphor" that can be employed to teach anyone the essence of programming in a an hour or so.
It's sort of like a Functional-Programming-style Forth, and I have implementations in Python and Javascript. I wrote a blog post outlining how one might walk a non-programmer through it using common terminology: http://calroc.blogspot.com/2013/02/how-to-teach-anyone-to-program-using.html
I'd really appreciate any feedback on it (I've checked the "Email me future comments" box.) I've taught a few people tis way and it certainly seems to work great.
haven’t you noticed the visual GUI editor there? (as opposed to writing ugly, long and unreadable code that makes GUIs)
People esp. who don't own English as a first language, tend to skip the word they don't know and try to understand the meaning from the rest of the phrase. Sometimes dictionary helps. In this case it didn't. =)
Add a comment: