To many people who have never done it, computer programming, aka “coding”, seems like a magical and impossible task. Any time we release a new book, video, or class about programming, we hear the all too familiar groans: “I could never do that.” “I have no idea what that is.” “I can’t even figure out how to use my phone.”
Would we hear the same groans if we wrote about chess or speaking Spanish? Those are both arguably more difficult to learn than learning to code. But there continues to be still a mystique about programming that persists.
Rather than describing how to code (we have 4 books, 2 online classes, and a video course that do that), we’re going to tell you why people who program enjoy it and how it has made us better at life.
Novice programmers often just jump in and try to start coding, with little idea of where they’re going or how they’re getting there. This inevitably leads to a mess of code that barely does what it’s supposed to do. And that’s totally okay.
The next thing that a programmer learns after creating a mess of code that barely works is how to rewrite it. In programming, we call this “refactoring”. It’s a critical, and often repeated, step in the process.
Refactoring is often followed by another mess of code, followed by more refactoring. Eventually, every programmer starts to get better and the messes are less messy.
Through this process, programmers learn to approach obstacles as opportunities. We learn to remain calm and think deeply about possible and better solutions. Most figure out that sleep, exercise, and eating well help you to perform better. We learn about the Ballmer Peak.
Perhaps most importantly, programmers learn that we all have great capacity for learning and creativity. This isn’t something we’re born with: it’s acquired from the mental exercise that programming requires. For good programmers, the skills listed on their resume are just the tip of the iceberg of what they’re capable of.
Far from being just “technical wizards” or “good with computers,” programmers are experts at learning and applying new skills, and we do both with gusto. Overcoming problems becomes a normal part of daily life, and it’s fun!
Being a programmer means continually having small successes and setbacks on the way to creating awesome things. With each failure, you’ve learned something new. Each small success makes us feel proud, but we always know that there’s a world of stuff out there that we don’t yet know how to do — but we can learn it!