I’ve participated in several dozen of these conversations at this point, with varying degrees of enthusiasm (pro tip: offer to buy me a beer or lunch or at least a fancy coffee, especially if we barely know each other). I have learned these discussions boil down to a predictable format: my interlocutor explains why they are curious to learn coding (sick of current job || laid off from current job || just graduated && don’t know what else to do). This inevitably is followed by a starry-eyed recounting of news stories talking about how there are so many more (high-paying!) tech jobs than people with programming skills. The final act is to ask what I think they should do: quit their job and sign up for a boot camp? Try an online course? Get an internship and attempt to learn on the job?
It appears the current anyone-can-learn-to-code!!!!-hype machine is in hyperdrive because, these days, people who think kernel management must be some kind of agricultural job relating to corn seem to take it for granted that they will succeed. They aren’t asking IF they should learn computer programming so much as how to best go about doing so. And my response inevitably bursts their happy, hopeful little bubble, which makes me cranky.
This line of thinking makes me cranky because while, yes, perhaps it is technically true that pretty much anyone can learn some basic programming skills, not everyone is cut out to be a coder. Just like almost anyone can learn to bang out “Twinkle Twinkle Little Star” on a piano, but is not suited to be the next Mozart — or even a middle school music teacher. So it occurred to me to come up with a few questions to ask yourself before giving your credit card info to that nice, encouraging “admissions producer” at General Assembly.
- The latch on your bedroom doorknob keeps getting stuck. What do you do?
I have taken to asking people this exact question. If your answer is “call in the landlord/a handyperson to fix it,” this is a red flag you may not be cut out for computer programming. Seriously. If, however, you respond with something along the lines of “fiddle around with it, try to figure out how it works and what might be going wrong,” that is a very good sign that coding could be a good career fit.
Computer programming is much more than writing lines of code. At the core, programming is about problem solving: Writing a program, from a simple bash script to a full-blown native app, is an exercise in pragmatic investigation and resolution. There is the broader, project-level issue you seek to address (“I need a quick script to automatically handle file permissions”) — and it rests upon every single one of the micro-level step-by-step analyses, decisions and solutions that must occur to create it.
You need to be naturally curious about the inner workings of the doorknob in order to be good at this job.
- Do you enjoy logic problems, puzzles, riddles?
Day to day, coding is more about fixing than it is building. While other jobs also have ‘fixing’ aspects — writers revise their drafts, electricians correct faulty wiring — programming is unique in that most of the problems we are called upon to fix result from faulty logic. Whether it’s our own or that of some other pioneer who traversed the codebase before we came along, a coder’s main work is debugging code.
So. Much of the intrinsic reward in this work comes from fixing bugs. The more complicated the bug, the more deeply satisfying the moment when you, at last, find it and smash it. If this does not sound fun to you then your daily work is likely to feel awfully frustrating and miserable.
- Are you in it for the money?
Becoming a coder can definitely be a good way to earn a comfortable living. But it is far from a sure shot at tremendous wealth. Yes, there was a brief golden era at the dawn of the tech age when being a software developer was crazy lucrative. If your primary motivation in becoming a coder is to make a lot of money in a very short period of time, I am sorry to inform you that those days are over. It’s still possible to strike it Silicon Valley startup rich, sure, but it’s also about equally possible to win the lottery.
To do this work and be happy with it and good it, you need to love the act of coding. The motivation is the code, not the potential for walking away with a big paycheck. Programming is creative, yes, but also fundamentally repetitive. If you don’t love the process, you’ll never make it to payday.
- Bonus question: Do you expect to work “normal” hours?
This is not a dealbreaker — there are definitely 9 to 5 gigs out there. That said, this is a deadline-driven, 24/7/365 industry. If the production database gets corrupted nobody cares that it’s 2 am or the weekend or Christmas Eve. They only care that it gets fixed. Now.
Still with me? Cool. Let’s have that coffee/beer/sushi. So the thing with nested ternaries is…
Code N00b appears every other Friday, only on The New Stack.
Feature image via Pixabay.