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.