I started programming as a kid during primary school and was eight years old at the time. Dad and I would copy a program from the C64 manual and experiment with it. The first program that I ever wrote was in BASIC.
Programming was fun and exciting. I knew what I would like to do when I grew up (apart from 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 the University of Applied Sciences and learned some valuable skills. These days information is more available and accessible than ever. Should you enroll?
I recommend attending University if you have the means. You get to meet new people and learn about stuff that might be useful later on in your career. It might be tedious or time-consuming, but I would do it over again.
On the other hand, if you don't like the idea of student debt, there are many free resources online. Getting started might be more challenging, but only the sky is the limit. You can take paid courses which are usually of high quality, and try to earn a certificate.
A university degree might be your ticket if you plan to move and work in the EU. While having a degree is not necessary, it can help you a lot. It might be similar to the US or UK, which are in demand of software developers.
Learn basics concepts
More important than choosing your first programming language are the basic concepts. You can start programming without understanding those initially. However, I recommend staying caught up. 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 dive deep into data types and structures at a later time. Knowing only the basics of algorithms is also acceptable. But you have to understand these concepts at some point.
I learned most of these concepts at school or by 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?
Starting with programming language like C#, you will learn more about:
- Object Oriented Programming (OOP)
- Data types and structures
When I got a job as Junior Software Developer I was still at the University. At first, I was a working student and then switched to full-time after graduation.
I met some lovely people there, had ups and downs, and learned a lot. The first job was something other than what 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/)
When it comes to the CV - don't lie or exaggerate. It's easy to spot, and it will do you a disservice.
You will have many questions as a Junior Developer. Be bold and ask questions. When it comes to technical questions, you will find many answers on Stack Overflow.
There will be lots of new terms that you will need to familiarize yourself with. At least, that was my experience. Ask peers and colleagues, but be bold and reach out on Twitter or LinkedIn.
Try to find a mentor to bring this to a higher level.
Find a mentor
A mentor is a person who might have a significant impact on your career. Every Junior starting in a company should have one. Mentors in companies should also have time to teach and mentor—something only a few companies understand these days (deadlines).
When working with a mentor, do due diligence and find the answer yourself. Present your findings and show your effort. Don't expect everything on a silver plate - a mentor will help and guide you. Expecting them to do your work is unrealistic.
The exception to this is pair programming, which is a good way for you to learn from your mentor. You both work on a particular feature or a bug at the same time. Too bad many companies don't see benefits in this :(
I had an incredible mentor and would like to say big thanks!
Learn, learn and learn
Spending a day without learning something new is a day wasted. It doesn't have to be something big. Small gains over a long time add up (compound effect).
Dedicate at least 30 minutes each day to learning. You can read a blog, watch a course or listen to a podcast.
Step outside your comfort zone - you can learn a lot!