Programmer evolution

So you are thinking about becoming a programmer

Starting this journey is challenging, but it’s also fun and rewarding. As with any new skill, there is just so much to learn out there at the beginning, that you might not know where to start. The important thing to remember is to be patient with yourself. No one started out as a rockstar developer. You will need a lot of practice, going through the same steps as everyone else before you, in order to learn the strange ways of computers.

Hello world?

Okay, so the first step will be to learn your first programming language. This will involve learning how a computer works and how it can execute the code written in that language. This knowledge will allow you to write small code fragments which can do all sorts of amazing things. Just to name a few:

  • like rolling a dice (or better said simulating a dice roll, outputting a random number between 1-6 every time it is executed)
  • or creating a Twitter bot that tweets dice rolls every hour (and betting with your friends on the next number to be tweeted)

How does a programmer evolve?

What are the next steps in a programmers career? Where does the career path lead to? To answer these question we could take a look at all the terms used to describe programmers, people who write code as part of their job. Let’s just name a few here:

  • Programmer or Computer Programmer
  • Developer or Software Developer
  • Software Engineer or Software Development Engineer

Unfortunately no clear, agreed-upon definitions exits for these term. Companies use them freely and interchangeably in their job descriptions, often also adding “junior” or “senior” in front of them to further differentiate between job titles. But in all the cases, the exact meaning greatly depends on the context in which they are used. A Junior Software Engineer at company A might be better at programming and even earn more than a Senior Programmer at company B. Just remember, there is nothing special in the name in itself.

Nevertheless, we can try to make some sense of these titles. We can come up with a ranking (our own subjective one) and group these titles based on the level of expertise and how widely applicable knowledge they encompass. Then we can use them to present how an IT career (your career) can evolve. Let’s have a look.

Junior level – Programmer

You already know how to write code. You are given clear instructions about what should you do (requirements for the software) and how should you do it (implementation details). You write the code and test is. You find out that there are some bugs in it (and there always will be), meaning that the software does not always behave as it should. So you check your code and correct the little mistakes made during development.

Intermediate level – Developer

You write code, like a programmer, but also developed other skills which are useful for creating software. You no longer need to be told how to implement things. You can come up with solutions for existing problems and sometimes suggest improvements, because of your previous experience of working on similar issues. You can also integrate different software components and make them work together, because you understand better how the computer works on a low-level and how to configure these systems correctly. This means that you will have more responsibility, while working on a project.

Senior level – Software Engineer

Because of your growing experience you start to see similarities between different software. By recognising these patterns, you can define the best approaches and algorithms to use during development. You also suggest what specific technologies and platforms (for example programming language type) would be best to use for a given project. You are more involved and have greater influence on the software creation process, than a Developer. You apply engineering practices and make design decisions based on identified trade-offs.

Rockstar level

You are the star of your company. Your productivity is ten times higher than the average developer’s. You achieve this because of your vast experience. Every problem you encounter is familiar. You always remember what was the most brilliant solution to a particular type of problem. You simplify systems and recognize every opportunity to do something pretty well and in far less time than it would take to do it perfectly. No project is started without asking your advice first. (this section was inspired by the popular myth of the 10x developer or otherwise called “rockstar” developer, the existence of which is somewhat controversial, but mostly accepted)

How to get there?

Lots of invested hours. It is not easy and you might feel overwhelmed at first. Fortunately, there are lots of resources out there to help you along the way, including free books, online videos and code examples. Anyone – with the right motivation and perseverance – can do it.

At Pixel Code House, we aim to help you through the first steps by offering an intensive, small-group programming course. We want to accelerating your progress and get you to a Junior level in just two months.

From there you will need more work experience on real projects, facing issues on a daily bases, to gather the expertise required to get to the next level and be able to handle more responsibilities in a software project.

Leave a Reply

Your email address will not be published. Required fields are marked *