My 14 year old has learned Logo in school, knows a little Java script, and some HTML. Now he wants to really learn some programming - beginning with ActionScript 3 and more Java script … he thinks.
Me, I can barely manage formatting my posts on these boards, so I’m of no help.
What books or other resources would you suggest for the baby code monkey who has the ambition to learn? Are his first choices wise?
I am an IT manager but also a code monkey in a way. I would suggest the language Python first and foremost. It is a good learning language but also a very real and important one and he can produce elegant solutions using it but it also teaches very useful and transportable skills. Fourteen should be old enough if he is talented but it will still challenge him for a while. The O’Reilly series of books, found at most large bookstores, is about the best and Python compilers are free online. I started programming when I was nine years old but Python is way beyond what I had.
Logo is a child’s language and plenty of people don’t like Javascript for plenty of reasons. HTML isn’t a true programming language although it can be useful. Real programming is about concepts and that should last for a lifetime.
At 14, it really doesn’t matter which languages he learns, so long as he’s studying something. The most important skill he can learn is how to think like a programmer - break problems into small, precisely described chunks, think through those chunks logically, and so on. Javascript isn’t exactly heavy-hitting stuff, but it’ll certainly work as an introduction.
When I was in high school, the introductory programming class was in Pascal - that’s widely regarded as a good first programming language. (Or at least it was, back in 2000). It’s powerful, easy to learn, and rewards good program structure. Of course, C and C++ are always good things to learn, as well.
But, the take-away is: let him learn whatever he wants. Having good basic skills, especially at his age, is more important than knowing any particular language.
(I am not a programmer, but I have many programmer friends.)
ETA: Nevermind, listen to the guy who knows what he’s talking about.
Python is an excellent recommendation. The O’Reilly books are great as references, but aren’t super friendly when you’re learning something new. I can’t think of anything better, though, and they’re easy to find; look for black-and-white animal illustrations on the cover.
You have heard the song, right DSeid? The life of the Code Monkey is not always a happy one.
C and C++ are great languages to learn (mainly because of their near universal ubiquity), but they’re not very forgiving to beginners. C++ in particular takes a long time and a lot of effort to really master, since it’s a very complex language. I’ve been using C++ for ten years and I still learn new things about it all the time. :o
I’d definitely second the suggestion of Python as a great language to start with.
Python is not just a great language to start with – it’s actually useful in industry. I’m a professional programmer and half the code I write nowadays is in Python. (The other half is in C, so eventually you probably need to learn that too.)
I’m not sure which of the first two would be better for someone in your son’s situation. Try to find out which one is geared to someone who is new to programming, not someone just learning a new language.
Thanks for the advice so far. The O’Reilly books seem to presume some extant programming knowledge though … any thoughts about any of these:
Dawson’s Python Programming for the Absolute Beginner.
Zelle’s Python Programming: An Introduction to Computer Science.
I very much appreciate the idea that learning the concepts and the basic approaches are the highest priority and also appreciate that it is only fun if you can actually do something with the skills as you learn them. (My own last programming experience was back in college over 30 years ago and was with Fortran Watfive … never could do anything useful with it.)
A quick hijack, gang. What is the language used in the Command Prompt on Windows? My only experience with programming was on a Psion XP, where I did stuff like simple games and databases( copied from books, I add!), but I’ve forgot it all now. Is there any basic things you can do to illustrate the value of the Command Prompt?
Eric S Raymond in his essay How to Become a Hacker recommends Python to start, but also mentions C, Perl and Lisp. He says that the most important thing, though, is a more general attitude towards problem-solving:
Edit: I highly recommend this whole essay. Check out the links from it as well. which include Robert L Read’s How to Be a Programmer.
There are better choices if you want to learn to become a “true programmer”, but it is probably better to leverage the typical 14-year-old’s motivation to create something cool that he can show off to his friends. Sticking with web-related stuff is probably the best way to do this. ActionScript 3 would probably be a good choice. It is a fun tool for creating web-friendly shiny things, and it’s also an employable skill since many companies are preferring it over Java for GUI development now.
I would point out that there are many wealthy web developers who use horrible tools like JavaScript and are not considered “true programmers”. It depends on what sort of developer he wants to be, really.
Those are primarily MS-DOS commands, adapted for a more technologically advanced age. I’m not aware that there’s any specific name for the language, but you can find a list of commands here: An A-Z Index of Windows CMD commands - SS64.com
It’s very, very useful when you want to repeat a series of actions - I used to have separate batch files to compile and run all my code in my early days of programming Java. The new command line interface for Windows Server 2008 (and Vista, I believe; and it can be downloaded for XP) is called PowerShell and is much more capable. Again, though, this is primarily for administration and computer management than programming.
There are a few interpreters you can run from the windows command prompt. The default language is DOS batch, which isn’t worth a bag of turds, but you can also run VBScript and JavaScript as well.
I would look at Alice and at Scratch. Accumulating languages is one thing; learning how to approach it is something else and much harder – and more easily scuttled. Alice is designed for just this kind of situation.
If he’s more interested in making cools web-pages then go with the web-stuff, and if he likes logic puzzles and wants to learn what this “programming” thing is then I would go with Python. But I’m inclined to agree with Cosmic Relief, by default go with the web tools, it will keep his interest and he has plenty of time to learn ‘real programming’. One skill a self-taught programmer needs is the ability to just look stuff up and figure out problems on their own and not get discouraged when something breaks, these are skills you start to pick up just puttering with HTML. I’m a CS teaching assistant, I have very bright college students who still don’t know how to JFGI.