Personal

Software Development: How to Get Started and Make a Succesful Career

I started programming as a kid during primary school and was eight years old at the time. I got first full-time job while still studying at the University.

Davor Pihac
Davor Pihac Software Engineer
Software Development: How to Get Started and Make a Succesful Career

I started programming as a kid sometime during primary school. I was 8 years old at the time. Dad and I would copy program from the C64 manual and then experiment with it. First program that I ever wrote was in BASIC.

Programming was fun and interesting. I knew what I would like to do when I grow up (apart being a pilot or an astronaut).

I loved programming and didn’t think about the money at first.

Should you go to University?

I attended University of Applied Sciences where I learned some good skills. These days information is more available and accessible than ever. Should you enroll?

I would recommend to attend University if you have the means. You get to meet new people and learn about stuff that might come useful later on in your career. It might be boring or time consuming, but I would do it all over again.

On the other hand, if you don’t like the idea of student debt, there are many free resources online. It might be more challenging to get started, but only the sky is the limit. There are also paid courses and certificates that you can take.

University degree might be your ticket if you plan to move and work in EU. It’s not a hard requirement, but will make so many things easier. It might be similar with the US or UK, which are in strong demand for Software Developers.

Learn basics concepts

More important than choosing your first programming language are the basic concepts. You can start programming without understanding those at first, but I highly recommend not to fall behind. So, what do you need to learn? Here’s a quick list:

  • How computers work
  • What is a compiler?
  • Types of programming languages
  • Boolean algebra
  • Data types and structures (basics)
  • Algorithms (basics)

You can deep dive into data types and structures at a later time. Knowing only basics about algorithms is also fine. But you have to understand these concepts at some point.

I learned most of these concepts at school or reading computer magazines as a kid. Then I got deep dive into some of those at the University.

Can you write code without knowing some (or any) of those concepts? Sure, but it will limit your career growth.

Which language(s) to choose?

JavaScript might be on of the most popular languages today. It can be used on the frontend, backend and mobile. So it’s a first choice for many who are just starting out.

JavaScript is easy to get started and you see results quite fast. But I would recommend to choose something else - C#, Go or Python might be better choice. It will pay off in the long run.

I believe there are better languages to learn programming than JavaScript. Some concepts and inconsistencies might just confuse you at first. You might be confused now. Why not JavaScript, what’s wrong with it?

Starting with programming language like C#, you will learn more about:

  • Compiler(s)
  • Object Oriented Programming (OOP)
  • Data types and structures

You can switch to JavaScript at a later time, but I would recommend spending some time with C# first. Another alternative(s) are Go and Python.

First job

I was still studying when I got the job as Junior Software Developer. At first I was a working student and then switched to full-time after graduation.

I met some nice people there, had ups and downs and learned a lot. First job wasn’t something that I was planning, the opportunity presented itself.

These days requirements might be higher. There are even more people competing for entry roles. Here’s a short list that can help you in landing your first job:

  • Side projects (GitHub)
  • Networking (LinkedIn, Twitter, referrals)
  • Good CV (https://flowcv.io/)

HTML and CSS are hardly enough if you’re trying to become web developer these days. JavaScript is quite popular and there is a huge market. However, knowing other languages too, like C#, Go or Python will make you stand out.

When it comes to the CV - don’t lie or exaggerate. It’s very easy to spot and it will make you a disservice.

Ask questions

You will have many questions as a Junior Developer. Don’t be afraid to ask questions. When it comes to technical questions, you will find a lot of answers on Stack Overflow.

I understand there will be lots of new terms that you won’t be familiar with. At least that was my experience. Ask peers and colleagues, but don’t be shy to reach out on Twitter or LinkedIn too.

Try to find a mentor to bring this to a higher level.

Find a mentor

Mentor is a person who might have a significant impact on your career. Every Junior starting out in a company should have one. Mentors in companies should also be given time to teach and mentor. Something not many companies do these days (deadlines).

When working with mentor, make sure to do due diligence and try to find out answer yourself. Present your findings and show the effort. Don’t expect everything on a silver plate - mentor will help and guide you. Expecting them to do your work is not realistic.

Exception to this might be pair programming, which is actually a good way for you to learn from your mentor. You both work on a certain feature or a bug at the same time. Too bad many companies don’t see benefits in this :(

I had awesome mentor and would like to say big thanks!

Learn, learn and learn

Don’t spend a single working day without learning something new. It doesn’t have to be something big. Small gains over long time add up.

Dedicate at least 30 minutes each day for learning. You can read a blog, watch a course or listen to the podcast.

Step outside your comfort zone - you can learn a lot!