Few things are as important as picking your career path. And consequently, fewer decisions are harder to make.
It is, after all, hard to know whether or not you’ll like something that you’ve never done.
If you choose a career path based on the wrong reasons, you might end up unhappy in your job which can negatively affect your quality of life. You also might not be making as much money as you wanted and end up credentialed for a job which you're simply not good at.
Fortunately, there are some methods you can use to help you decide what a good career path is for you. Picking the right path can help you to look like this:
While those who get stuck in the wrong career wind up looking like this:
In this article, I’m going to talk about whether a career path as a developer might be the right one for you. (Hint: if you want to do it, you can. And here I'll share how.)
I’m writing this article with substantial input from Marc Gray, who is the founder of Odyssey College Prep.
Among other things, Marc has extensive experience in administering aptitude tests and assisting young people with choosing career paths. He provided a lot of great insight for this article which goes beyond your typical “pick a career” type writings.
The goal of this article is to give you a framework which can help you decide whether or not they want to become a software developer. My goal is also to help you pick an area of focus if you decide that development is for you.
Finally, I'll provide some general advice on how to avoid some of the big mistakes people tend to make in developer job interviews. If you’re like I am, and prefer written information to video format, then read on. Or, if you prefer watching your tutorials, Marc and I address these topics in this video:
I’m going to be diving into quite a few topics. To jump to a particular section, simply click “jump to section” in the table of contents below. So…shall we?
The preliminary question in deciding whether you should become a programmer is whether or not you will be happy doing it.
While this may sound like a “duh” statement, I’ve come to appreciate how many people dive into a career path without ever considering whether it fits them as a human.
Choosing a career that is not a good fit for your personality is a good way to increase the odds that you go on to be miserable.
The following part of this article will address the importance of actually liking your job in general, how to tell if you might enjoy being a developer, and whether or not development is something you can actually be good at.
Let’s look at each of these in turn.
When deciding whether you want to become a developer, the first step is to determine whether it is a field that you will like and which will interest you.
Being genuinely interested in the field should take precedence over considerations of money or prestige. This is because, while it’s easy to say “of course people should like their job” and it seems obvious, the fact of the matter is that most people work in careers they don’t enjoy.
This results in quite a few problems. These include a lack of success at work, higher levels of unhappiness when you're not at work, personal relationship problems, and more.
Let’s quickly look at why being at least interested in your job does matter and the impact of doing something you don’t enjoy.
Many will say that they “don’t let their job define them” or some similar rhetorical statement in an effort to claim that disliking their job isn't a “big deal.”
Whenever someone tries to tell me that being excited about their career choice isn’t important, I tend not to believe them.
Why do I say this? Well…here are a few reasons, off the top of my head. First, if your work isn’t “important to you” then why do you spend as much, if not more, time at work than you do with your family, sleeping, or engaging with your hobbies?
Given the amount of time you spend at work, it’s clearly a big priority in your life. If you think that what you do for a living doesn’t matter to your personal happiness, then you’re likely not being honest with yourself.
It’s also important to remember that you’re very unlikely to be successful in a career you choose if you’re not happy in the field.
According to Business Insider, people who are happy in their job are absent less often and they tend to earn higher salaries. The reasons behind this aren’t rocket science. If you're happy with what you do, and you're interested in the work, then you are willing to put more effort into it. This increased effort equates to greater success.
By contrast, if you see your daily tasks as drudgery, then you're going to do the bare minimum and do everything you can to get out of doing any extra work. Because of this, being unhappy with your career choice will, therefore, lead to you failing at work.
Liking your field also likely leads to a happier home life. The realistic chances that someone can be miserable in their workplace all day, and come home in a happy mood are essentially zero. This leads to problems with your significant other, children, and so on.
Hating your job can also lead to higher rates of alcoholism, substance abuse, and poor mental health. Add to this the fact that you’ll be more likely to struggle financially, and the importance of liking what you do should become clear.
Fortunately, as Marc stated while assisting with this article, “interests are like fuel.” If you can find a field which you find interesting and engaging, then you flip the whole paradigm. You become more likely to put in the extra effort, to excel, to make more money, and this has a positive spillover effect in your life.
This is not to say that you can pick a career that is nothing but fun with no stress. Such jobs don’t exist. There are plenty of things about my career as a front-end developer which I find annoying. The aspects which interest me and keep me engaged, however, far outweigh the downsides.
When deciding whether you should be a programmer or enter some other field related to software development, it is important to understand that the first step in your decision making is to decide whether you will even like the field.
Are there areas in an industry field that your personality and interests align with? Answering that question is the key to determining whether you will enjoy being a programmer or software developer.
This is an important part of the career choice process which many people miss. Too often people choose a career path because of perceived high salaries, perceived social status, or simply because they think the job “looks cool.” They don’t stop to think about whether the job actually entails activities which they will genuinely enjoy.
Fortunately, there are ways to figure out whether being a developer, in general, is a good fit for you, and to determine which particular niche in the dev world might align with your interests. Let’s dive into this.
The first step in deciding whether development is for you is to take stock of your interests. In other words, list activities you find enjoyable.
By making a list of the activities you enjoy, you develop a starting point for choosing the right career.
You’ll then want to identify the professional equivalents of those interests.
For example, I greatly enjoy analytical problem solving and the process of putting things together. I also enjoy analyzing situations in finance, in which one input may impact a given output. It’s also easy for me to spend hours playing puzzle based games. This is why my niche of providing front-end development services to small businesses is greatly appealing to me.
Whatever it is that youfind enjoyable, there is a good chance that it translates into some sort of professional equivalent. So, when picking a career, the first thing to do is to identify the types of activities which you enjoy.
The second step in deciding whether to become a programmer is to determine what these aforementioned “professional equivalents” of activities you enjoy actually are.
This allows you to enter freeCodeCamp, or some other curriculum, with an idea of where you are headed and what type of job you will eventually want to apply for.
When deciding which fields may fit your personality and interests, here are some things to consider:
Think of a “front end developer” as someone who works with the public facing part of a website or an application. They build/maintain the components which individuals interact with.
You may do well in this type of environment if you have a high “visual memory.” This means that you tend to have a strong memory for what things look like. You also tend to care quite a bit about visual appearances.
You might be well-suited for this work if you're able to consider how components interrelate to each other. For example, you would have an ability to consider how the placement of a button on a website impacts the likelihood of the button actually being clicked on by the end user.
While by no means an exhaustive list, these are just a few examples of traits typical in those best suited for front end work.
A “back end developer” is someone who develops the application which runs on the front end. So, for example, if you have built a website which helps someone find homes which are available for rent, the back end developer builds out the necessary databases, search functions, and so on.
You'll likely be best suited for this type of work if you have a desire to deal with concrete facts. To put it another way, if you often like to take inputs and create something useful out of it, back end work might be a great fit.
Another common trait among back end devs is that they tend to be able to remember numerical sequences and aren’t intimidated by large bodies of text.
There are many other tracks in software development other than the first two I just listed. Other options can include:
To get a better understanding of a field which may interest you, I suggest taking a look at the freeCodeCamp curriculum and researching the type of traits typical to someone working in a given field.
The big takeaway from this section of the article should be that you can look at your personal traits and find fields in software development which align with those traits.
There is one big question which many people may have even after they’ve determined that a) they want a career which they will actually enjoy and b) they’ve decided that being a developer aligns with their personal interests.
Here it is:
Do you have the capacity to become a developer?
Many people don’t take the opportunity to get into development because they believe that they lack the skills or aptitude to be good at it.
The good news is that you can get into development with some hard work. To understand why this is, let’s look at the difference between aptitudes and skills. Once we understand this difference, we’ll find that anyone can do something in the software arena.
Think of “Aptitude” as someone’s “natural ability” to do something. “Skill,” by contrast, is the ability to do something which comes after practice and repetition.
While aptitudes can certainly give someone a head start at something, the person with a high aptitude will likely never be truly great at something if they don’t put in the practice.
What this means, at the end of the day, is that someone with a high aptitude for engineering or solving technical problems can possibly still be a decent developer without working overly hard at it.
But someone who works hard at developing the skill, however, will likely succeed even if they begin with a lower aptitude.
Now if you’re someone who has a high aptitude, and is willing to put in the work and develop the skill, then the sky's the limit.
The truth of the matter is that natural aptitude will get you to a certain point, but that point stalls out real fast. No matter how naturally inclined you are at learning languages, for example, if you've never spoken or heard French then you're not going to understand a word of it.
The ability to expand a learned skill, however, has a much higher ceiling. This means that if you want to become a programmer then you likely have the capacity to do so.
Here are a few tips I would offer if you're hoping to develop your programming skills:
When you’re learning to code, then you are also learning to think of things in a different way. Not only are you learning programming languages, you’re learning how frameworks interact with each other and you’re thinking about problems in a way which is probably novel to you.
You might be surprised at how fast you pick things up if you work on it every day and allow your mindset to shift.
You’ll be equally shocked at how much harder things seem if you take an extra day off here and there. For the first several months of your journey in learning to code, try to work on it every day.
There are some online code education platforms which do not require you to actually build something or have you build something that is simple in nature.
Such platforms, for example, may show you how to create a hyperlink in HTML or change a font with CSS, but they don’t require you to actually build a website containing the hyperlink or the font.
By choosing a curriculum that requires you to put the skills you're working on to use, before declaring you done with the program, you will greatly improve your ability.
Many, many, many (many) people feel that they are “not ready” to look for a job and they just keep going through tutorials over and over again.
The cold and hard truth is that constantly completing tutorials is a drop in the bucket compared to the skill you will develop with a real-world employer.
Also, your employer will be well aware that you are a newbie. As soon as you feel you meet the requirements to apply for a job, then you are ready to get out there.
The key takeaway here is that you don’t have to be a “natural engineer” or a math prodigy to become a software developer/programmer. In fact, many who work in the field aren’t.
If you are willing to learn and put in the time then you have a good chance of success.
This, going back to the earlier part of this article, is why it is so important to pick a track that interests you: you are unlikely to want to put in the time for something that doesn’t truly interest you.
So, by picking a field that peaks your interest you put yourself in a position where you will be willing to build the necessary skills, even if you don’t have the most natural ability.
The bottom line is that you can become a programmer with time and hard work.
We’ve just discussed a few threshold questions to consider if you're thinking about becoming a programmer. These include the importance of liking your career choice and understanding that no job is worth it unless you'll be interested in the field.
We also talked about how to decide which fields of development you may find interesting and how you can develop the necessary skills to succeed in software development.
In this section of my article, I’m going to dive into the economics of a few possible software development tracks. This is important to the question of “should I become a programmer” for a simple reason – those entering a field need to support themselves.
In preparation for this article, I did some research on Indeed.com as to current openings, salaries, and so on. Here’s what was available in the United States as of April 7th, 2022:
Source: Indeed (as of April 26, 2022)
For those who are more interested in application/back-end development, then it is important to understand that, in today’s world, you will still be writing a fair amount of code – but you will also be spending an extreme amount of time working with various microservices to build a product out of existing tools.
There are also large numbers of openings for those with skills relating to data visualization, security, as well as the jobs listed under “other possibilities” above.
One key point I would stress here is that such jobs are often willing to hire someone even if they don’t strictly meet the experience requirements. If you put in a résumé, after all, the worst someone can do is say no.
An important thing for anyone attempting to get a job as a programmer is to do well on the interview. As someone who has employed people in multiple businesses, I have to say that the mistakes people make on interviews truly baffle me. In this section of the article I’m going to look at how to properly interview for a coding job and mistakes which people should avoid.
I understand that in this “how to do well” section, the points I’m going to make may sound like “duh” statements.
The truth of the matter, however, is that probably ninety percent of the percent of the people I’ve interviewed over the years don’t get all of these things down. So, with that said:
Showing up prepared doesn’t just mean appearing for the interview. It’s important to actually do some research on the company as well as the individual who will be interviewing you.
This means that, before your interview, you should spend time doing research on the company. Find out what services they offer, who their target customer is, how long they’ve been in business, and so on.
Looking up the individual who is interviewing you will give you the opportunity to learn more about them. This includes their work history, role at the company, and more.
During interviews I tend to ask questions which let me know whether the interviewee had done their homework. If it shows that they haven’t, then I have to ask myself: “if they can’t even research a company for an interview, then how can I assume that they will be proactive in the researching of potential solutions?” A little preparation goes a long way.
Researching the company, as explained above, puts you in a position to show how you will add value to the business. When you are asked questions about yourself then you can relate the answers in a way which shows how you will add such value.
For example, in my company we build websites and automation solutions for owner-run to medium-sized companies. If someone has done their research on our company, and I ask them why they applied, they can respond by explaining how excited they are about the idea of working with small business owners directly. They can also make their answer about how their interests align with the types of automation products we work on. This tells me, as an employer, that they are thinking about how they will add value to the business.
In other words, your answers to questions should relate back about how you will add value when serving the customers of the business.
In any coding interview, you’re going to need to answer some basic coding questions. I usually have an interviewee perform 5-6 simple tasks. I make sure, however, that at least some of them are things which the interviewee is unlikely to know off the top of their head.
What I’m looking for in the interview is for someone to not get frazzled and who will ask for one moment while they look up the solution (I only use questions which I know can be found through a quick Google search). It’s OK in an interview to ask to look things up.
Now it’s time to look at some common mistakes which people make during job interviews. And, yes, I have had individuals make these mistakes when interviewing with me.
If you want to send a clear message to the potential employer that a) you don’t care about the job or b) that you have no time management skills, show up at the last minute or even late.
I recently had someone who actually showed up late for a virtual interview (I didn’t think that was possible). If someone is about to start your interview, and it’s clear to them that you weren’t early, then you just decreased your chances significantly.
If you are interviewing in person, then show up early and wait. If you are interviewing virtually, then log on to the chat early and wait for the interviewer to enter.
Don’t make the mistake of assuming the interviewer wants to hear about you generically as a person.
First, when an interviewer asks you to tell them about yourself, then don’t start reciting your résumé (they can read your résumé) and don’t start simply talking about your personal interests. They don’t care.
Instead, you should be talking about how your interests align with those of the company (see above). This shows the interviewer that you are prepared to provide value to the company.
Also, when asked to tell a little bit about yourself, avoid generic answers about what a hard worker you are. Instead, again, answer the question in the context of how you will provide value.
This might be the one that is the most annoying to an employer. You need to act like you are taking the opportunity seriously.
Here are two examples of people I’ve interviewed where the problems are obvious. The first individual who managed to immediately disqualify himself strolled in with his sunglasses on the top of his head and a frappuccino from Starbucks in his hand.
The second was a virtual interview. When I started the interview by saying “hi [name of person]”, he responded by saying “Hey brother!” Do I really need to say why neither of these individuals were considered?
Show up for the interview dressed appropriately. This is true whether the interview is in person or virtual. Also, if it is a virtual interview, make sure you’re in a quiet place with an appropriate background. Refer to the interviewee as Mr. [Name], or Mrs. [Name], until they tell you to call them by their first name (note: if you annoy them enough they might not say this).
When you introduce yourself, make sure you thank them for taking the time to interview you and thank them again upon completion.
Don’t make inappropriate jokes or comments during the interview either. While I think these things are “common sense,” I’ve come to the conclusion that such “sense” is not actually “common.”
If you are wondering whether you should become a programmer, then the first step is determining whether it is a profession you would be interested in and would otherwise enjoy.
Next it is important to determine which type of developer you would like to be. Because you must support yourself, it is also important to understand career possibilities within the field.
Finally, handling an interview correctly will put you ahead of more people than you may think.
Hopefully you found this article helpful when you're making your career decision. Happy coding!
I am a front-end developer and the founder of Modern Website Design. I enjoy writing on business/employment related issues and believe strongly that the world’s problems are solved through entrepreneurship. To keep up with my babbling, follow me on Twitter.