Learning to code is easy. Anyone can do it. Saying that though just because you can doesn't always mean you should. Knowing how to write code is, unfortunately, not the same as understanding how to build software. Paradoxical I know but it be able to code does not mean you should make a career from it.

After spending a considerable part of my youth from 12 to 22 wanting to formally learn to program with the aspiration of becoming a game developer I was sure it was the career for me before coming to realise it wasn't, I still ended up in dev and have loved my career so far. Don't get me wrong; I love coding and solving problems, but that doesn't mean everyone does!

How do you know if a career in dev is for you? That is a question I've been asked more than a couple of times by students. The discussion covers the points below that to my mind help with understanding if programming is something you want to do for a career.

Paradoxical experimentation

Programming is firmly rooted in the realms of logic; this much is true, but it's also a subjectively creative skill. Sure there are modules, libraries and frameworks but ultimately much like an author faced with a blank page what you create and how is unique.

Despite many coders that you will find all over some of the more popular dev website will insist there is a 'correct' way write 'good' code that is simply incorrect. There is are many ways to achieve something the right way to do so is subjective.

"There is are many ways to achieve something"

Having a natural curiosity is critical. If you are looking to learn one method for one problem and then rinse and repeat that for the rest of your working career, you might want to reconsider. Do you have a natural curiosity not just to find a way to solve a problem but to devise new and better ways to do something continually? If you do great! If not, however, you are going to get bored fast.

If you are not interested and motived move on

If you don't have drive and motivation, you might as well move on now. If you cut all the cruft and strip it back to the core of 'if, or, then, while and else' there is not much else to it. Of course, that is an oversimplification, but programming is by its very essence repetitive. If you fail to have pride or interest in your code, you will end up bored and miserable.

"One does not simply learn to code."

Again programming is an art, and this is true of any creative pursuit. Yes, I'm comparing coding to art and writing. To paraphrase the popular Lord of the Rings meme, "One does not simply learn to code", I'm not implying Boromir was a, but you have to have a reason to want to write code, to love the process of coding.

Consider waking up and rather than wanting to try the solution to the problem you are working on you instead are dreading another day or git commits. Programming might not be the right choice for you.

That's illogical

So it's not always free for all blank canvas, a lot of a career in development is fixing problems. The beauty here is that though coding is an art a lot the issues we need to fix as programmers are logic problems. This makes us like pretty little snowflakes and is somewhat unique in the world (Yup I know snowflakes are not now unique before I'm called out in the comments, but you know where I'm going with this.).

A real-life career in programming is almost 10% inspiration 90% frustration. Or as I call it the Building to Debugging balance. If you love solving problems, taking things apart and then understanding why they don't work and then fixing them so they do this is the job for you. If that sounds like your idea of hell even though you might be able to do it maybe you shouldn't be doing it. You will be sad. Don't be sad to be something other than a programmer.

Humour aside though this should be an appealing thought you can relate to, and that excites you. The harder the bug is to fix the more rewarding it is when you figure it out. If you're not happy by that, then you are going to find that you are just endlessly frustrated and not enjoy your coding time and no one wants that.

Be as still as water in a bowl

If you can't sit in a trance-like state for endless hours pondering a problem you are going to struggle. Long gone are the days where all coders did was snowboard and get VC investments. 99% of us work in open planned offices where if you are not at your computer, you are not productive. If this is a problem for you and unappealing, and you do your best problem-solving in a forest surrounded by tweeting birds (They never hashtag their tweets!) you are going to struggle.

Yeah, programming can be hard on your body. If you don't have some sort of active hobbies you are going to likely suffer from many issues from eyes to the heart. Just because you are working on a hard problem doesn't mean you can't think it over while you make a salad you don't always have to eat that slice of pizza. A healthy lifestyle helps you to think better and code better. If you don't get that you might be a good coder but you are going to die young.

You need to be happy to be in front of a screen, prefer it. Maybe been this is why a lot of us are introverts? If that's not you perhaps its a sign, this is not for you.

9 to 5

Not surprisingly, you are almost certainly going to have to forget working standard office hours. Dev is, for the most part, a deadline-driven career path. I hear you saying, but that's true of every career. Well, yes, it is. However, a lot of the time, the managers making the deadlines often understand the complexities of the problems you will be trying to solve and as such will pluck arbitrary deadlines from thin air.

'Crunch' will always lead to working longer hours than you would expect. Even the most well managed and planned projects cannot account for bugs, feature creep and all the other delay-inducing problems that come with being a developer. It does only get worse if you work for yourself. Clients shifting deadlines and feature creep become even harder to manage when things are external to your team, let alone external to your organisation.

The more critical the deadline, the more crunch you have. It's not uncommon for teams to live in the office as launch draws close. Ask anyone that has ever worked in game dev, and they will tell you this is the norm for the majority of companies.

If you think this might not be you then again you might want to reconsider. When you wake up, you should be eager to crack on with your project and make some progress and get something out there. If you are prone to sluggish bouts, it might not be the job for you.

Ain't nuthin' funny about making money

Chances of you making the next Minecraft are slim. It's not impossible, but it is improbable. If your single motivating factor is to get rich, then turn off the computer now and pursue something else.

Of course, like any career, you can make good money as a developer, but that takes time effort and passion. If you're not interested in becoming a better developer through all the points we have talked about, then don't expect to reap the rewards. You wouldn't pay a premium price for an average product, would you? Same is valid with getting hired as a rockstar dev.

End of the line

Giving it second thoughts, maybe? Don't worry though your time as bot been wasted there are still a multitude of things you can do with what you know your hardware does not have to go to waste.

A few things you might consider could be something like an analyst, or maybe some teacher or trainer. Passing on knowledge can be rewarding; I speak from experience here.

Of course, there are other avenues. Maybe considering management or similar leadership role would be more fitting. Again speaking from my own experience managing a team of developers is a good fit for the skill set and offers a lot of the rewarding aspect of a dev role. What it does not allow, however, is much if any development. I am assuming if you have made it this far into the article though you are thinking that being a dev might not be for you as a career path so it may well be the perfect fit?

Whatever you decide though it's a personal choice, don't let the people (especially online!) paint a picture of something that it's not. As I have tried to convey throughout this article, programming is an art and one that few will ever master due to its constant rate of change. Make sure you have a passion for it before committing yourself. It is a fun and exciting career but it also one where you will never stop having to learn, if that is not appealing... forget it.