How To Become A Software Developer?

Becoming a software developer in todays time is actually super exciting. It can seem like a daunting task, but it’s also an incredibly rewarding career path. Software developers are in high demand and can work on a wide range of projects, from developing mobile apps and websites to building enterprise software systems.

Whether you’re a high school student interested in pursuing computer science, a college graduate looking to switch careers, or someone who’s always been fascinated by technology, this blog series is designed to guide you through the steps of becoming an actual software developer.

In this series, we’ll cover the basics of programming, introduce you to popular programming languages, explore different career paths within software development, and share tips and resources for building your skills and advancing your career. I will share important lessons, discuss ideas and show you tools, gadgets and resources, that every software developer is using. By the end of this series, you’ll have a solid understanding of what it takes to become a successful software developer and be well on your way to building your first software project. So, let’s dive in!

How I became a software developer

Before I tell you how you can become a software developer, I will tell you how I became a software developer.

It all started with the University

I was actually never going to become a software developer. I studied Bioinformatics and Genomics because I was planning to become The Scientist that finds the cure for cancer and deadly viruses.

The course was focussed on creating a bridge between computer science and biology, specifically genomics.

The course was great and very interesting and soon I came in contact with my first programming language: Haskell.

Haskell is a purely functional programming language and I truly hated it.

Functional Programming Languages

Functional programming languages are designed to evaluate mathematical functions and treat computation as the evaluation of expressions. In functional programming, functions are first-class citizens and immutable data structures are emphasized.
Functional programming languages tend to favor recursion and higher-order functions and they tend to emphasize declarative programming.

Until today I cannot understand why Haskell had to be the very first programming language of my software development path.

When you come from school and you never programmed anything in any language, then Haskell is a no-go. It almost made me doubt whether or not this course was the right one for me.

However, I was saved by the next language I had to learn: Java

Java is a famous example of an imperative programming language:

Imperative Programming Languages

Imperative programming languages are designed to execute a sequence of statements that change the state of the program. The focus is on control flow and mutable data structures are commonly used. Imperative programming languages tend to favor loops and statements that modify program state.

Today I can say, without hesitation and guilt, that Java was my first love (within the space of programming languages). Still having scars from the functional Haskell horror and going into a imperative programming language, it took quite a while until I had the right understanding of Java. It took failures and errors and many nights of frustration, but very quickly I overcame the first hurdle and I started to do literally everything in Java.

Still being a student and learning more programming languages such as C, C++ and bash, people were noticing that I had some clue about computers and programming. They asked me to help them out with some small jobs, but most of them were rather website related, frontend things.

I didn’t really enjoy frontend related languages such as CSS. I found them rather fiddly and I was never great with colours and spaces and positions…

However, I learned a lot about myself, my preferences and my strengths. Today I’m only working in Backend Software Development roles and that preference is originating from that time being a student.

After University

I soon had to learn PHP because a friend needed some help with his online shop. PHP, yet another imperative programming language, was just the right tool for me to enter the software development industry. Back in the days PHP was only a poor scripting language and very immature in regards to object orientation, performance and portability.

I gathered a small portion of many languages, specifically PHP, javascript and CSS. I learned frameworks and deployed my first Symfony project for a small company. I did a lot of online courses and read a lot of books and most of all, I developed a lot of projects.

My first real job

When I landed my first job as a PHP software developer, I was still very young and inexperienced. It wasn’t the solid knowledge in Java that got me the job, but the countless nights of trial and error that I had during and after my university time.

I had little knowledge about many things and this was a great. Today I would say that I was rather lucky to get this job, but I was also very grateful, since it was the start of a great journey.

Starting my first job, I was quickly overwhelmed of how little I actually knew about the industry, the tools, the languages, and the workflows. I had to learn so much alongside. But learning from others, adapting to new environments and be open-minded are some of the soft-skills you need to have.

Conclusion

Initially I learned one functional programming language that I really hated and one imperative programming language that I really loved. It taught me OOP design pattern and I tried to create a lot of application using this language.

When I got my first job, I realised that it is not the number of courses that I completed or the languages that I learned. It is about the common understanding of computable problems and it is about the skill to translate a solution into a piece of code.

Learning a lot of things, from books or courses is a great start, but it is not the key. You have to apply your knowledge over and over again until it becomes normal, like muscle memory. I gained most of my skills from implementing small to medium applications. I learned to apply applications designs and most of all, I learned from mistakes, errors and bugs.

Should I really start learning software development?

In the next episode I want to help you to answer the very first question of your journey: Should I really start learning software development? The answer to this question is not as simple as it seems. Until then,

Happy coding