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.