Programming for Kids

The instructor has published 20% of this course.

This book teaches kids between 9 and 17 years old the basics of programming. You need a Mac computer to follow along with the examples. The examples use Terminal, nano, Ruby and irb. (Yes, I'm serious!) Pay what you want for the book by dragging the price slider: the minimum price is free!

This course includes 50 attempts.

This course exists to show kids that they can program computers, and to help them get started.

This course is in-progress. Only the first 3 lessons are done, and you can't get a certificate yet...

If you're a parent or guardian, this is a course for you to do with your child, or for your child to do by himself or herself. If you're a teacher, this is a course that your entire class can enjoy.

The course is for kids between the ages of 9 and 17.

I wrote it to teach my 9 year old son the basics of programming. He had been playing video games for years, and he wanted to learn programming since he wanted to make his own video games someday. This course was intended to be the first step. (No, it doesn't teach you how to create the kinds of video games a 9 year old can dream up; that takes a lot more knowledge!)

This course started as an ebook. When my son was 9, we worked through the book together. When he was 13, he worked through the ebook on his own.

I do not think it's a good course for kids aged 7 and 8: I started writing this course when my son was 7, but he wasn't ready for it. So, I paused writing it--for 2 years. I think that something like Scratch is a better choice for most kids under 9 years old.

Computer programming is a great skill for a child to have, regardless of what they do as an adult. Most importantly, learning how to program teaches a discipline of thinking which is useful in any field.

This course is written assuming you are using a Mac. I think that a Mac is the best computer for kids to learn to program on. Since this is a beginner course for kids, I can't write it generically to cover Mac, Windows and Linux. I have to pick one operating system, and have the child follow along verbatim.

No knowledge of programming is assumed. The examples are as short as possible, since I assume the reader can't type well. (When my son first read the book he could not touch type, so if I made long examples I would have regretted it! When he worked through it again, he could type very fast from years of gaming, and this was a different story.)

Besides teaching programming, the course also teaches basic use of the command line on a Mac. This is accessed via the Terminal program. The reason for this is that I feel that the best way to learn is to follow along, and the simplest way to follow along is to type everything.

Real programmers use the command line every day. Also, real programmers know how to type well, since they are thinking so quickly that their fingers need to be able to keep up.

If you want to learn programming, you should use Terminal and files. Yes, you can play with code in a web browser at places like Codecademy, and while this is very friendly and instructive, it is fundamentally a different activity from what real programmers do. And, besides being easier, it's somehow less rewarding.

The examples are in Ruby. Ruby is a fairly simple programming language. If you've ever heard of websites built on "Ruby on Rails", you've heard of Ruby: it's the programming language that Rails is written in. This is not a course about how to learn Ruby, however. The examples could have easily been written in JavaScript, CoffeeScript or Python.

This course is best done in a web browser. The quizzes need to be done in a web browser. I recommend Google Chrome, but other browsers like Safari, Firefox and even Edge should work fine.

You can also download and read the material for the course as an ebook, so that you can read the material even if you're not on the internet. (You will still need to use the web browser to do the quizzes, which is why it's best to just do the whole course in the web browser.) But if you are going to download the material as an ebook, the best file to download is the PDF.

Finally, I really want your feedback! If you have anything to say about the course, I want to hear it! Please email me at and let me know!