Have you struggled with this question? ME TOO! There are so many different options and it’s hard to know which one is right? Should you be a Mobile Developer or Web Developer? What about Back-End vs Front-End, or Full Stack? The questions just keep coming! So how do you decide?

First, things first…

Before we start, are you a complete beginner? i.e. no programming experience what so ever! Because if so, I’d suggest putting this question on hold, just for the time being.

Right now you probably have a ton of questions about your future as a programmer, but don’t worry, you don’t have to have it all figured out now.

For the moment, I’d recommend keeping it simple and just focusing on picking your first language, then learning the basics. *By the way, if you need help picking your first language, check out this post.

Questions like this can often be distracting at the start, and you may end up wasting time. Believe me, you can easily spend hours, days, even weeks! Trawling the internet for answers…ironically, like this one (sorry).

Wasting time

Why is this a waste of time??

Okay, think of it like this…How often does your first love become the love of your life? Sure it can happen, but it’s rare. Sorry again to all you romantics!

The same logic applies here. The chances of you picking one specific thing at the start, and crafting a whole career out of it (ONE THAT YOU LOVE), is again, rare.

In reality, as a newbie programmer, you’re going to be trying out a few different things and experimenting as you go. So theirs a good chance that you’ll change your mind anyway.

So as the scenario goes, you may start off with the intention to be X but now you want to be Y. That means the time you spent researching could have been better-spent coding. Ergo, time wasted.

That said if you do have a rough idea already, great! Go with that and get started. A rough idea is enough at this stage. The whole point of my spiel here is that you don’t need to know the specific’s, you just need to get started.

You don’t need to know whether you’re going to be a Back-End Web Developer, who specializes in node.js, and does x, y, z…blah blah blah. Knowing you want to be a Web Developer is enough.

But what if I pick the wrong language??

A very common question. Well, here’s the cool thing…once you learn one, you’ll have a core understanding of how most programming languages work. This makes learning you’re second a whole lot easier!

Honestly, the hard part isn’t learning the language itself, it’s learning core programming fundamentals, and how to “think like a programmer”.

I often feel that too much time is wasted researching and trying to find the answers up front. And I can’t judge, I’m horrible for this!

I’m the type of person who wants to know the outcome before it’s even happened.


Sorry if none of that was relevant to you, but I had to get it out of the way for anyone just starting out. Hopefully, you can learn from my mistakes!

Anyway, back to the BIG QUESTION…how do you know what kind of developer you should be?

There are a few ways you can go about it, and it depends what matters to you the most.

If it’s money? Then look for the highest paid roles. If it’s a job, any job? then see what’s in demand around you.

Me personally, I want to be in a role that I love and I’m passionate about. And that’s how I am going to address this question.

I love my job

So…How do you find you’re PASSION? 

You’re not going to find it on the internet, or in books, or from a friend of a friend. It’s simply going to come from experimenting with different things to see what you like. Never be afraid to experiment! 

I myself regret not experimenting sooner. From the outset, I had a fix idea that I wanted to learn Java and focus solely on Android Development. So much so that I didn’t learn anything else because “it wasn’t part of the plan”.

Looking back I realize this approach closed me off to so many things. Cool things. Things that I now really love. Things like React and JavaScript.

It was only after I fell into a rut that I decided to switch things up and learn some Web Development and JavaScript. Then it hit me. I can’t decide what kind of developer I want to be straight out the gate. I need to experiment.

For the record, I don’t regret learning Java or pursuing Android Development because…

  1. Despite the rut thing, I still enjoy it.
  2. It gave me a focus, structure and somewhere to start.
  3. And most importantly…it taught me how to program!

However, I just wish I hadn’t been so ridged earlier on, and actually opened myself up to trying out other things. *There’s a moral here somewhere…

When you’re finding your feet as a programmer you need to give yourself the freedom to experiment. It’s the only way you’re going to find your passion, and discover what genuinely excites you. 

In these early days, it makes sense to try a few things out, figure out what you like, don’t like, and what best fits you.

You should really learn a few languages anyway. And that’s not just coming from me!

Gayle Laakmann, the author of Cracking The Coding Interview, mentions that only knowing one or two languages indicates that you haven’t experienced varied problems, or that you have trouble learning new technologies.

As a general rule, I believe it never hurts to learn something new, and that applies whether you are a newbie or an expert.

Where am I now??

In case you’re wondering where I am now, let me just set the scene.

Currently, I’d say I’m still in the experimentation phase. I’m enjoying React and Web Development, and plan to continue down that road with a view to secure a job in Web Development creating Web Applications.

However, I do plan to learn a couple more languages this year. At the moment it’s a toss-up between Ruby and Python, and I’m slightly leaning more toward Ruby because of Ruby on Rails. But let me know what you think. I’m always interested to hear other peoples opinions.

You may have noticed I said “phase”, well I like to think of the Programmers Journey in terms of 3 main phases.

The 3 Main Phases of the Programmers Journey

Here is what I consider to be the 3 main phases in the Programmers Journey.

Phase 1 – Introduction:
The start of your journey as a programmer, where you learn all the importation fundamentals.

Phase 2 – Experimentation:
Where you try a few things out, learn a new language, and discover what you like and don’t like. 

Phase 3 – Specialization:
Picking a focus area and working to become an expert in that area.

It’s worth mentioning that your journey doesn’t have to stop with “Specialization” phase. The door is always open to experiment with something new.


If you have no programming knowledge, don’t worry about what kind of developer you should be. Instead, focus your time and energy on learning the fundamentals of programming.

Next, experiment! Find out what you like and don’t like. That will give you a good idea where to head next.

Finally, specialize, but remember, it never hurts to learn something new.

Feature image designed by Freepik

Sharing is caring!

About the Author Owen

Creator of Code Dad, father and self-taught programmer. My mission is to balance life, work, family, all while learning to code, and hopefully help others who want to do the same.

follow me on: