For the last few years I’ve heard several versions of the same maxim:
“Everyone should learn to code.”
So I did.
Nearly every week there’s some sort of initiative introducing kids to coding. Just yesterday, Fisher Price announced it would release a kids’ toy that teaches the fundamentals of coding, clothed in the appearance of a cute, robotic caterpillar.
But simple logic tells us not everyone should be a professional coder, nor does everyone have the ability for such a career. This was my methodology. “I’m a writer,” I would say. “Why do I need to learn to code?”
And yet it’s exactly *because* I’m a writer I should learn to code. Because it’s so far outside my wheelhouse that it’s useful to be exposed to something I will never do. To peek over the fence and get a glimpse of how “that stuff over there” works.
I’m not a futurist. But it doesn’t take a genius to see that technology will play an increasingly large role in even the most creative and artistic jobs. I can’t sit at my desk and claim that whatever the engineering team does – over the other side of the office – doesn’t affect me.
I’m still making my way through everything. But six months in, this is what learning the building blocks of code has given me.
Learning to code disrupted my normal method of thinking
I’m a writer. That’s my job. In my mind’s eye, I don’t see things in a linear fashion. I’ll see connections and similarities between ideas, like a spider web. Nothing has a right or a wrong answer. This is why I was terrible at math in high school.
And yet coding forces you to be sequential. First this happens. Then this happens. Then if *that* happens, then something else happens.
When these sequences are simple, it’s easy to follow. But as they become more complex, I actually had to force myself to concentrate fully on following them. That sounds strange – that I had to force myself to concentrate on a linear sequence of events. But that’s the way my brain works.
Taken offline, learning to think sequentially is a skill everyone should learn, and not just for building things. You can use that skill to expand your critical thinking. One of the main problems we face in the corporate world is that people don’t think strategically, they always think in the now. But we ought to think sequentially. “If we do X, what is a reasonable assumption of what would happen after that?” and so on.
Learning to code hasn’t made me a strategic genius, but it has made me more of a sequential thinker.
Learning to code has improved my problem-solving abilities
You have not learned how to troubleshoot until you debug code.
It is the most frustrating thing. To look through your code and after an hour of searching, realise your problem was a missing semicolon or a closed bracket.
“Oh,” you’ll say to yourself. “My code was perfect except for that one small problem.”
Except that it wasn’t perfect. The syntax was just as important as the sequence. Because I didn’t equate the two, during my troubleshooting I overestimated my abilities and therefore didn’t look for the right problem.
We overestimate our abilities all the time. But coding forces you to go back to basics. The most brilliant code in the world can be taken down by a spelling error or a quotation mark you forgot to include.
“Don’t sweat the small stuff” doesn’t apply to coding. The small stuff is what can break you.
Learning to code has taught me the value of efficiency
Having code do something isn't enough. To make the best code possible, it needs to be efficient.
My personality veers towards the, "if it works, don't touch it". I'll take a longer route to a city because it's a road I know, rather than the unknown, but shorter, trip.
Again, the whole linear vs sequence thing.
We shouldn't tolerate things that "just work". We should be striving for efficiency and making things better. Because that's what good code looks like. Forcing myself to ask, "how could this code do the same thing, in fewer steps?" has greatly challenged my offline method of understanding in the same way.
Everyone should learn to code
I know. It’s a stupid thing to say.
But just because you learn to code doesn’t mean you’ll have a career as a software engineer. In fact, you shouldn’t. There are people who will do it better than you. But just as it’s important to understand the mechanics of what other people do, coding is becoming such a large part of our economy that it’s foolish not to understand at least a little of what our engineering friends are doing.
I may not need that skill every day. After all, I’m a writer. And I could kid myself that writing is all I ever do.
But 10 years from now, when I’m sitting in front of a recruiter who’s looking between myself and another applicant for a job, or when I’m speaking to a client, having that knowledge of coding isn’t going to hurt me.
In fact, it may even help me get the job.
So spend a few minutes learning how to code every day. At the very least, you’ll teach yourself something new. And knowledge is always valuable.