Resources for Learning to Program

I keep making posts with titles similar to this one, but then again, I keep finding new resources. There are a lot, including books (many of them freely available for download), videos, on-line courses, and so on.

  • Invent Your Own Computer Games with Python looks like a very good book, and an extremely good value: it’s a free download, it’s in its second edition, and it’s also available as a print book for not too much. The “Invent With Python” Blog is a real blog, if not particularly high-bandwidth, it seems author Al Sweigart manages to post at least a couple of items each month, including “Code Comments”, which include source code with detailed comments. An overall excellent resource, specifically targeted to teaching/learning programming for kids (though it should work for anyone).
  • Hello World! Computer Programming for Kids and Other Beginners is another book aimed at kids and other beginners and with a focus on programming games. There’s a website, Computer Programming for Kids, and there are videos at Youtube starring Carter Sande, co-author of the book and son of the other co-author, Warren Sande. The blog isn’t updated as often as the “Invent with Python” blog, but there is a fairly robust authors’ forum at the publisher’s website.
  • Computer science is not the same thing as programming, though programming is generally considered a requirement and/or a prerequisite for studying computer science. In any case, sometimes it can be easier to teach the foundations of computer science without actually using a computer. That’s how the Computer Science Unplugged project rolls, with about 20 exercises, a free-downloadable book (with 12 of the most popular exercises) and a selection of videos on their Youtube channel demonstrating the exercises in action.
  • I’ve got to mention, again, the excellent Learn Python The Hard Way by Zed Shaw. I started working through it, and it’s great: the short chapters/exercises are just long enough to engage me for an hour or so at a time, though it’s possible to spend more time on each. Perhaps not quite as “friendly” for kids as the others listed here, it could be good enough to get an interested teen going. For those teens who are less interested, I don’t know if anything will work, but who knows.
This entry was posted in learning to program, Python. Bookmark the permalink.

2 Responses to Resources for Learning to Program

  1. David Loshin says:

    One of the methods integrated within the “Logo” concept (and propagated throughout other approaches) for teaching kids to program focused on differentiating programming from problem solving. I wonder how these posts reflect the different philosophies?

    When I learned to program, the starting technique was “Hello, World,” or learing the basics of writing, compiling, and executing a program that did one simple thing: print out a single line. Today, one might say that the command line has been made extinct, having been overtaken by visual interface, which requires a different thought process. Game programming may take that even further. But to what extent is game programming addressing approaches to problem solving?

  2. Peter says:

    Interesting. The short answer is that the world seems to be moving back to the same basics you learned, starting from a command line interface and coding that program to output “Hello World”. Pretty much every “learning programming” resource I’ve been looking into starts even before Hello World, with one or more introductory chapters on how to use the OS to install the programming environment and execute commands.

    For whatever it’s worth, even the resources that tout “learning to program by creating games” still use the same text-oriented, command line driven programming techniques that you learned.

    As elegant as Logo and its variants may be, it’s still a toy programming language in the sense that I’ve yet to see anything particularly useful or interesting coded with it. Kids know the difference between real tools and toys, and Logo is a toy while Python is definitely a tool.

Comments are closed.