You’ve made the decision to go into software development. “Coding”, as all the cool kids call it nowadays :) Fantastic! It’s time to get you up and running. The next big decision you need to make is “what kind” of software developer you want to become.

By this, I don’t mean a web developer, or data scientist, or video game programmer. Those are interests you can explore with time as your skills advance! No, this decision is about choosing to be a great software developer, versus any other kind.

“Developers” are a dime a dozen in today’s job market. You can’t throw a rock up in the air and not hit someone who sells themselves as a developer because they’ve played around with the HTML and CSS on a Wordpress website. Beyond this plain HTML & CSS crowd, there is also the group of developers who don’t invest their time into improving themselves; they are content with their current skill set and level. Both of these crowds are dangerous if you yourself are trying to become a developer; avoid them at all costs. If you’re reading this and have already found yourself as a part of one of these groups, then let this be a wake-up call for improving your career.

It’s tempting to say that the developer market is “saturated”, because at first-glance, it really looks like it. There is a large pool of people, all of them going after the same developer jobs. But if you look harder, you will notice that are many opportunities for developers who are truly great at what they do. You don’t have to take my word for it: check out popular hiring sites, and even a service like Triplebyte, which doesn’t care about your background information, as long as you’re a great programmer!

As stupid as it sounds, choosing to become a great developer is really that: a “choice”. You need to make a conscious decision to constantly invest in your knowledge and experience. This can seem like a daunting task, so let’s break it down into some minor steps:

Learn the basics of your first (programming) language

If you’ve decided to go into software development already, it means you’ve already done some, if not a little, programming. Make sure that you understand and can implement the following concepts in your programming language of choice:

  • The basic different data types (strings, integers, booleans, etc.)

  • Using variables to store and manipulate values

  • Arrays (or “lists” if you are using python)

  • Program Control Flow (If/Else/Else If statements)

  • Loops (however they are best implemented in your language of choice)

Try to understand these concepts as best as you can and practice them. If you are still having a hard time picking a language to start off, your 3 best options will be Javascript, Ruby, and Python. Here is a quick breakdown of each one if you have an idea of what you want to do.

**Javascript **- If you want to get into web development, Javascript is your best choice. The web runs on Javascript, and it is a must-know for anyone who develops sites and applications.

Python - Great option if you want to go into hot fields such as data science and machine learning.

Ruby - A programming language focused on “the joy of the programmer”, Ruby is a great general purpose language for beginners. If you are not so sure yet of what you want to work in, Ruby is a strong choice.

It should be noted that your first language doesn’t really matter here: Transitioning into different ones becomes easier later. What matters is that you start getting experience in the easiest way possible, so pick whichever language seems to fit you best.

Begin Practicing “Algorithmic Thinking”

Once you got the basics down, its critical to start developing algorithmic thinking. What is “algorithmic thinking”? Sounds fancy, right?

Simply but, algorithmic thinking is being able to break down a problem into a series of steps, that could be repeated over and over again to give you accurate results. For example, a recipe for baking a cake can be considered an algorithm, and when you write that recipe down, you are using “algorithmic thinking” to create steps for turning ingredients into a cake.

Putting cakes aside, how do we develop algorithmic thinking? It’s actually very simple.


And when I say practice, I mean programming practice problems. Get on websites like Codewars, and start trying to solve the easiest programming challenges. A word of warning: At first, this will be very frustrating. It takes a while to be able to think in terms of small steps to solve programming problems, but make sure you stay persistent.

If you can’t solve a problem after 20 minutes, look at the answer. But here is the important part; break down the answer yourself to see how it was solved in the first place. Then, redo the problem with the answer you learned. Rinse and repeat for every problem you don’t get.

With time, your algorithmic thinking will greatly improve! Stick with it, and you will see the results. The skills you learn here will pay off for the rest of your software development career.


The basics are the most important. From there, working on programming problems on sites like Codewars will make you a better developer. Remember, the goal here is for you to prepare for a coding bootcamp, or some type of certification program where you can become officially accredited as a programmer.

Keep practicing, and keep improving!

By Jonas Erthal