I believe my kids’ lives will be better if they learn at least the basics of computer programming. They’ll learn a logical way of thinking, learn patterns of analysis and synthesis, and gain an ability that adds value in a wide variety of careers. I’m not alone in this belief.
Fortunately, a lot of budget-friendly, kid-friendly options are available for learning to code. Here, I’m listing just a few, most of them available for a “Chromebook School” environment:
- One fun offline option: ThinkFun’s Robot Turtles board game, an introduction to basic programming concepts, where kids tell the adults what to do. 🙂
- codeSpark Academy with The Foos (USD 8/mo, ages 4-9). Apparently based on the Scratch visual programming language. It looks like a very “cute”, fun approach to learning basic coding concepts.
- LightBot Jr (ages 4-8, USD 3) and Lightbot (ages 9+) use visual tiles to “program” an on-screen robot to turn on various lights, learning programming concepts along the way.
- Scratch Jr (free, ages 5-7) is a free, visual programming-language environment for young kids to play in; Scratch is its fun, but more textual, big brother. This has been the inspiration for a number of other apps.
- Khan Academy (free, ages 8+) includes quite a number of courses. Their “hour of code” projects are listed here.
- CodeCombat (free/USD 10 depending on options) is, I think, oriented more toward older kids, and those with a competitive streak–but looks intriguing as well.
- For kids who’ve “caught the bug” of programming, check out the post The Coding Game (Dewdney’s book, long out of print, should still be awesome!), or Project Euler for a simple, no-frills series of exercises. Or check out CodeWars for a environment with some “pizzazz” that offers coding exercises as “katas”, or HackerRank for yet another community and set of pre-made challenges.
- Check out other resources at Code.org. Or here. Or here.
- I haven’t even started to talk about “real-world” robotics. For now, Google it.
I started whetting my taste for computer programming when my family didn’t have a computer. We actually had had one earlier, a Radio Shack TRS-80 that my dad had purchased, and upgraded to 768KB of RAM. I’d enjoyed playing Asteroids-style and other ASCII-graphics games on its green screen. Eventually, though, the TRS-80’s floppy drives gave out, and we were without a family computer for several years.
During this time, we loved going to the local public library. We’d go with half-bushel laundry baskets, and come home with them full of books. I loved browsing the shelves, finding mysteries, biographies, fantasies…and a few lovely books, designed for kids and filled with arcade-style graphics and BASIC code for simple computer games. When we finally got another family computer, a Packard Bell 486-DX2 66Mhz with 8MB of RAM and a 540-MB hard drive, running Windows 3.11, I was ready to go! With Microsoft’s QBasic language bundled with DOS, I had fun writing my own small programs–even getting as far as a visualizer for the Mandelbrot set (courtesy of A.K. Dewdney’s The Armchair Universe, also from the public library). And when I realized that Microsoft had even included the QBASIC source code for several games, Gorillas.bas and Nibbles.bas, I was thrilled!
The CodinGame site seems to do a great job of re-capturing some of that early sense of wonder at what one can do with just a bit of code. It uses dramatic graphics (such as the Space Invaders-like shot above), but has you write the code to solve each puzzle. It’s simple enough for coders just starting out, but also has more challenging puzzles–and support for many languages. If your niece wants to learn to program, if you want a nice set of C++ (or standard-library) kata , or if you’re an expert developer and want to learn Ruby, Swift, Go, or Rust…this may well be the game you’re looking for.
If the stories, graphics, and online environment of CodinGame aren’t doing it for you, also check out Project Euler, for a set of basic-to-challenging problems to be solved in the language of your choice.
I recently learned about Project Euler, and have found it addictive. It’s a wonderful site for learning programming. It’s not powerful tools that make it great. The site’s design looks ancient; it has no programming editors; it doesn’t even have any tutorials. But it has wonder, and a series of progressively harder challenges, and lets you discover what you need to learn in order to solve those challenges. Basically, it’s a site to support exploratory learning–learning of the sort that happens when you start a new job, a new business, or a new hobby. Learning of the kind that delights when you figure out the problem, learning that sticks. Learning that happens when you dive in, get your hands dirty, and learn what you need to know along the way.
James Somers wrote a good article about Project Euler at The Atlantic. I’m still in the first dozen or so problems out of over 500, but if you want to follow my progress, my profile is here and my friend key is 858072_k8PHIvJ2fpmYfHwCObWWZ59Ql4jckfYS.