Programming for Kids

What's this about?

This is a book to teach kids who are between 9 and 14 years old the basics of programming.  You need a Mac computer to follow along.

This is a book for you to read with your child, or for your child to read by himself or herself.

I wrote it to teach my 9 year old son the basics of programming. He has been playing video games for years, and he wants to learn programming since he wants to make his own video games someday. This book is 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!)

The reason this book exists is to be the best book in the world for a kid who is wanting to learn to program computers to read first. Computer programming is a good skill to have, regardless of what occupation your child eventually does as an adult. (I’d argue it’s much more important than lots of the math than you learn in high school, for example.) But more importantly, learning how to program computers teaches a rigor and discipline of thinking which is useful in any field. This book exists to show kids that they can program computers, and to help them get started.

This book is written like a book for kids in elementary school. My goal is that this book should be accessible for kids between ages 9 and 14. In North America, that’s grades 3-8. My son is working through it as I write it. (I don’t think it’s a good book for kids aged 7 and 8: I started writing this book when my son was 7, but he wasn’t ready for it. So, I paused writing it–for 2 years. If your child is 7 or 8, I think that something like Scratch is a better choice for kids of that age.)

No knowledge of programming is assumed. The examples are as short as possible, since I assume the reader can’t type well. (My son can’t touch type, so if I make long examples I’ll hear about it!)

My goal is for this book to be the best programming book for kids to read first. After this book, they can follow what interests them.

This book 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 book 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.

Besides teaching programming, the book 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. If you want to learn programming, you should use Terminal and files. Yes, you can play with stuff 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 pro- grammers do. And, besides being easier, it’s somehow less rewarding.

If you are letting your child use your Mac computer to follow along, I strongly recommend you sit beside them and follow along! For example, I’m not planning to teach the command to delete files, but it’s fairly short!

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 book about how to learn Ruby, however. The examples could have easily been written in JavaScript, CoffeeScript or Python.

You'll Learn

Author

Peter Armstrong

Peter Armstrong is the founder and CEO of Leanpub. He has over two decades of experience in software, including eight years as a developer at Silicon Valley startups. He founded Ruboss in 2008, and launched Leanpub in 2010.

Peter coined the term Lean Publishing. Lean Publishing is the act of publishing an in-progress book using lightweight tools and many iterations to get reader feedback, pivot until you have the right book and build traction once you do.

Peter is the creator of Markua, the Markdown dialect used on Leanpub. He is the author of a number of books, including Lean Publishing, The Markua Manual and Programming for Kids. He has a BSc in Computer Science and Psychology from the University of Victoria.

He lives in Victoria, BC with his wife and son.