The Coding Game

codinggame

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.

It’s all practice

On quizzes and big exams

When I was in college, most of my grades were based on some combination of assignments, quizzes, and–heavily weighted–the mid-term and final exams. If I bombed a quiz, I wasn’t happy about it, but it wasn’t a major disaster. If I’d completely failed a final exam, though, it would have been a Big Deal.

In the years after college, I sat for the three levels of the CFA exams. Multiple months of focused study, a cost of $600 for a given exam, a six-hour proctored exam given only once* a year, driving up to Kansas City the night before to stay in a hotel close to the test center…for me, passing these exams qualified as a Big Deal.

The thing is, I didn’t actually sit for three CFA exams–I took somewhere between six and a dozen exams, across the three levels. Fortunately for my sanity, my work, and my marriage, most of these exams were “practice” exams–exams that I “proctored” for myself, that I graded myself, and that I used to figure out what areas I still needed to work on for a given level. By the time I sat for the “real” exam, I at least had a good idea of the “shape” of my knowledge, and a very general idea of how I might fare on the officially administered exam.

When I finally sat for a given level of the exam, failing it would not have been fun–but, if I’d failed and re-enrolled for the same level the next year, the first try would have given me both resources and lessons to help in the second round.

You see, life is practice. Very rarely is a “test” really a final exam. Losing a job, failing in business, damaging a relationship, missing a big opportunity–each is unpleasant, but each is recoverable

Galton boards and conscious navigators

I find it easy to think of life as though it’s a Galton board. You’ve probably seen one, though, like me, you might not have known what it was called. It’s a triangle of steel pins, where a marble dropped into the top of the triangle falls in a random sequence of “lefts” and “rights” on its way to the bottom of the board. And once a ball falls on the left side of a pin, a part of the right side of the board is forever closed off…and another leftward fall closes off more of the right forever. And there’s some truth in this. If you let yourself get addicted to drugs or alcohol, it’s really, really hard to move out of that section of the board.

Galton board
A Galton board

As like a Galton board as life may be, though, we aren’t falling marbles under gravity’s control. We can–through our own volition, and sometimes through others’ interventions, take unexpected paths through the maze. We can backtrack, take unexpected paths, sometimes even jump across gaps in the maze. We might be falling through Galton’s maze, and gravity and randomness can predict a lot about where we’ll end up–but they don’t necessarily get the final word. If I start with a couple of rightward choices, I could still end up at the far left of the board. Choices matter, but they’re usually much closer to quizzes than to final exams.

a Galton board with the ball taking unexpected paths
A conscious path

Practice well

Of course, your life will ultimately end, and it will be somewhere between “wonderfully lived” and “wasted”. But until the grades are turned in, it’s all practice.

Interesting reads

Feedback

Please let me know your thoughts. If you want to affirm or elaborate on what I’ve written, to express disagreement with it, or to help sharpen my writing or thinking, I’d love to hear from you.

Footnotes

* Actually, Level 1 of the CFA exam is given twice a year, in June and December; the subsequent levels are only in June.

Project Euler: Programming skills through play

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.

Make It Stick: What is learning, anyway?

This post is one of an (intended) collection interacting with the book Make It Stick: The Science of Successful Learning. All in the collection are linked from the Introduction post.

So, I’m thinking and writing about the book Make It Stick: The Science of Successful Learning. The title itself raises one question that’s worth thinking about: what is “learning”? What does it mean to “learn”?

Learning is most effective when it’s effortful, something we’ll examine more closely later. For the moment, though, that has one simple implication: this post will be most useful for you if you stop and think for a bit before continuing. What does it mean to learn? Why would you want to learn?

I thought of several kinds of learning:

  • The learning of a skill: welding, disease diagnosis, software design, coding in C++.
  • The learning of knowledge: the history of the USA, the mechanics of the immune system, the value of pi.

And a few things that don’t feel like they’re “really learning”:

  • Shallow memorization of facts. This is hard to pin down, but a story from my “physical sciences” class might help. In a section on electricity, the assignment was to wire up circuits in various configurations and record the relative brightness of a bulb tied into those circuits. Wanting to save some time (and, probably, being an arrogant kid at the time), I started writing in some of the results before we’d actually gotten around to doing the experiments, astonishing some of the others in my group. I’m guessing we all “knew” the facts about voltage, current, resistance, and brightness, but in that particular case, cocky-kid-Joel had that knowledge more available for use than the others in the group.
  • Extremely short-lived learning. This is the kind of thing you get when you’ve crammed for a test, did well, and lose almost all of it within days. Or, when you get to the end of an enjoyable lecture or sermon and think, “That was really good! But…um…what was it about again?”
  • Although it’s still learning of a sort, “misdirected learning” is another interesting category. Examples include learning how to read a word in another language when your top desire is to produce it (they’re connected, but different skills), or the ability to remember a fact when asked a question phrased “just right”, but not when you want to use it in real life.

Thinking of those examples, it’s interesting to note their interrelationships: skills usually depend on some sort of base of knowledge, and the ability to acquire knowledge is a skill. Shallow memorization, short-lived memory, and misdirected learning form their own constellation of interwoven cause and effect.

And so, here’s my tentative definition of learning. I…um…don’t remember whether the authors of Make It Stick actually define what they mean by “learning”, but I’m guessing their definition would at least be similar to mine.

Learning is the long-lasting acquisition of skills or knowledge, in a form accessible and useful when such skills or knowledge are relevant.

My first draft of this definition specified that the skills or knowledge should “affect the way one thinks or acts”–but that leaves a lot of ambiguity. For example, if you learn pi to a thousand digits, does that make a difference in the way you think or act? If you know that Laika was the first dog in orbit, does that make a difference? Like Scott Young, I actually like “useless” knowledge and believe that a lot of “useless” knowledge is useless only because one hasn’t yet found a use. Digits of pi can be wonderful if you need a quick proxy for random numbers. Laika’s story is one episode in the Space Race story, a part of what’s shaped Russia, America, and the world. The revised definition lets Laika hang out in the back of your mind most of the time, informing your understanding of Russo-American history and waiting to emerge when she’s needed for a Trivial Pursuit question. It lets the digits of pi wait around as static, “useless” but accessible knowledge that you’ve learned. But, if you’ve “learned” the math of voltage and current but can’t predict that a higher voltage will light a bulb more brightly, that knowledge isn’t in a useful form and thus doesn’t count as “learned”.

What do you think–what does it mean to “learn” something? What categories have I missed? Are there times when it’s worthwhile to “learn” something in a way that doesn’t meet my definition?

Make It Stick: Introduction

I recently read the book Make It Stick: The Science of Successful Learning. I found the book impressive, and it joins the short list of those I’ll too-enthusiastically recommend to anyone who will listen–especially those who are “learners” or “teachers”, groups which should encompass most people.

Make It Stick is a well-woven collection of stories and hard data on what the science actually says about how best to learn.This includes a number of things that run against our intuition, or even standard study advice. A few examples:

  • Always retiring to the same quiet place to study may actually hurt learning.
  • Learning something “easily” probably means you’re going to lose it soon.
  • Repeatedly re-reading a text (or presumably, re-listening to a lecture) is terrible in terms of learning power.
  • Tests are good–at least, if approached in the right way.
  • One of my favorites: spaced repetition is really powerful.
  • Reflection–digesting, re-stating, connecting, and applying “learning” is fairly powerful in facilitating actual learning.

And so…I plan to take the book’s advice to heart and “reflect” in writing on its contents. The benefit is primarily my own: if you wish, you can buy the book, or search for its title and find any number of summaries. I’d encourage doing both. In writing about these ideas, I hope to “learn” them, making them part of my own mental toolkit. If someone else benefits as well, I’m even happier!

For a longer preview of the ideas presented in the book, see this article. And then–start thinking about how to apply the ideas presented, and join me in the conversation!

Posts Inspired by Make It Stick: