Coders Code

As truisms go, one of my favorites is “writers write”. Many developers walk around pondering whether they are “real coders”, or they ask “how can I be more senior”. To them, I say “coders code”. If someone is writing, then by definition they are a writer. It doesn’t matter if they are J.K. Rowling or working a blog post. The act of writing creates a writer. The same is true of coding. If you’re in QA or DevOps or Front End or Backend or spend your days hunting down missing semicolons in code-reviews, you’re a coder. When you put your fingers to the keyboard at your editor of choice, even if it’s not Emacs or Vim or **, you're still a coder. If your fingers never grace a keyboard and you drive a pair session or dictate text, you're a coder.

What about when you’re not in the act of generating code? Do you stop being a coder? I don’t know what Stephen King is doing right now, maybe he’s brushing his teeth, fixing some food, or going to the bathroom. Because he doesn’t have a pen in hand or a typewriter under a finger, does it mean he’s no longer a writer? Of course not. The phrase is “writers write” not “writers are only writers when they are actively writing”. The same applies to coders - I’ve heard again and again from just about every programmer under the sun that the longer they spend coding, the less time they physically spend coding. Maybe they pick up a mentorship role or they work on documentation and code reviews. For people who are on a life-long technical track, they tend to be attracted to hard problems, and many are best solved by contemplation and careful thought instead of hours of guess and check at the keyboard. I’ve switched my showers from first thing in the morning to after I’ve worked a bit for the day (I work from home). I find when I’m stuck and my wheels are spinning, taking a step back to really think about the issue at hand while in a shower works miracles.

For a deeper dive on why exactly this trick might work check out the book Thinking Fast and Slow. Also, did you know you can check out Kindle books from your local library?

How does a writer get better at writing? They write. Ideally, they have some kind of a feedback loop, maybe a mentor, maybe they go to school and are given assignments, or they join some kind of writing retreat or club. At the end of the day though, the important part isn’t the school or the criteria, it’s the act of writing. If you’re just getting started or want to make it to the next career milestone, might I recommend coding? Coding is the act, and the journey, and the goal. However, you can’t just sit down and pound out code.

A book needs a plot. Code needs a problem to solve. Before we can have a problem, we need to have a desire, a want. A problem is a thing that gets in the way of having our desires met. For this, I recommend finding a thing you want to build. As you work towards that goal, the act of coding will come naturally. Forget “what is the best language to learn” or “how do you get better at programming”. Find a topic or subject that interests you and an idea that keeps you awake. When you find this, the code will come.

If you don’t have a passion project burning a hole in your brain you can cheat to find a muse. Some people are incentivized by a university or a Bootcamp. Maybe prowling a tag on Stack Overflow or signing up for a mailing list might give you inspiration. I run a free service called CodeTriage that helps coders find a muse for Open Source contributions, which is another treasure trove of code just waiting to be written.

If you’ve been coding for a while and have no lack of opportunities, what then? Code for the job you want. Perhaps you want to specialize in writing Performant code, or at very least get better at it. Performant coders write Performant code. Find other coders who have written fast code, find out the why and the how. Find slow code (shouldn’t be too hard) and some benchmarking tools to isolate the slow parts. Then try making it faster. Read performance blog posts and books. Ask questions, go down rabbit holes. When you get stuck, ask yourself what’s stopping you from writing code. Remove those blockers, then get back to writing code.

Now ask yourself, are you a coder? If you answered in anything but the affirmative, what’s stopping you from claiming the title? You write code, right? That makes you a coder!

What comes next? Get excited, get engaged, get coding!