People will often cite hard work and a high degree of motivation as the secret to success in these areas. And while I certainly won’t disagree with that, I think this Zen-like comfort with knowing a little, with being a beginner, with kinda sucking, is the deciding factor in the end. They’re often persistent, and hard working, and all that, but mostly they’re okay with a process that makes them always feel a bit dumb. Such people seldom read manuals, in part, because they’re not bothered by not having Total Information Awareness before they begin. Such people imagine that they will botch the job before the bike is eventually fixed, and they’re okay with that. Every good chess player has suffered through years of humiliating slaughter at the chess board, and had a good time doing it.

And all of this is a very, very good sign in someone “learning to program” – not because knowing French or mastering the Queen’s Gambit means you have the right kind of brain, but because programming requires, above all, a quiet, peaceful attitude toward the feeling that you don’t really know what you’re doing.