How to learn programming in 9 months
Nowadays, because of the quarantine, many people cannot do their job. They have a lot of time, but an uncertain future. In that time, programmers seem to be doing great. Not only we can do our job remotely perfectly well, but also demand for our services grew. Willing to help those in need I decided to do what I do best: write to help people learn to code. So here is your practical plan on how to learn programming in 9 months.
Over the last years, the most common question I was asked was “How to become a programmer?”. It forced me to think about that question again and again. My personal experience is not very helpful here, as I started learning programming as a small kid. Though over the last years, I could observe and help quite a few people starting this path and becoming a developer without any background. It includes three people that are really close to me. This experience and discussions with them let me see what worked and what did not. Now I feel I have a good picture of how one can effectively become a developer.
How long does it take?
For most of the people I observed, it took around 9 months to get the first job as a developer. Nearly all of them had some job at that time and so they couldn’t commit fully to the learning, but they all treated learning very seriously and spent practically every spare moment. I would estimate that most of them spent at least 30 hours a week of learning. This rough estimate sums to around 1000 hours of learning. This is a huge investment. It is worth it, but only if you treat it seriously as your future career.
Is it fun?
Coding is a lot of fun if you learn it for yourself. As a student, I had a lot of fun with coding challenges or funny projects. Though such a way would require much more time. Many people finish studies as a Masters in Computer Science, and yet they are not prepared to start a real job. They still need to learn certain tools that are used in real-life projects. When one learns to get a job as a programmer, he or she needs to concentrate on those tools. Looking at my friends, it generally isn’t a fun experience.
I would like to say that programming is fun. I love it, and those who I observed have developed a love for programming over time as well. It was generally when they finally had their programming position. But the time when they were learning wasn’t fun at all. And the moment when they were searching for a job and sending their CV to every company in the city was for nearly all the people I observed, extremely stressful and hard. It wasn’t a fun time. Although, in the end, they are all happy and proud of the way they passed.
I see no reason why someone shouldn’t become a programmer. It is hard at the beginning, but in the end, it always pays back.
Marek — a friend of mine who passed that way.
Ok, I decided. So what’s the plan?
If you want to become a developer as soon as possible, you need to concentrate on a single position and get all the requirements. This is the plan:
- Choose your career
- Lay on foundations
- Follow step-by-step tutorials
- Start independent programming
- Build a portfolio
- Start applying for a job
Choose your career
This is a topic for another article as there are many possible career choices and each of them has some characteristics. What you need to find is a concrete job position type you want to apply to (you can search in your local job offers and look at what is common programming job position companies are looking for). On the end you need to decide:
- What kind of development do you want to do? (backend/frontend/Android/iOS/desktop/game/data science/data engineering/operations/analytics/…)
- What programming language do you want to learn?
- What framework do you want to use?
(Spring/Ktor/Django/React/Angular/Vue/Android SDK/iOS SDK/Flutter/Ruby on Rails/Symfony/Laravel/…)
A few popular and easy to start career choices are:
- Backend development in Python using Django
- Android Development in Kotlin using Android SDK
Choose what fits you best and what is on-demand in your city.
Lay on foundations
The first steps are the hardest as you need to make your brain very familiar with basic programming concepts and literals. It is like learning to write and read. It is not enough for someone to show you letters. You need to get used to them and learn to use them, and it takes a lot of time. You can start by watching some videos, but you should start writing a very simple code as soon as possible.
For videos, remember to search for courses for beginners. There are many courses designed for developers. They will be too hard for you. You need to lay the foundations first. Also, choose longer videos. You need to take your time. Those are good examples of courses for the beginners:
I highly recommend courses where you learn by doing, but you are guided step-by-step like this one:
I highly recommend games that teach you to code step-by-step like those:
I also recommend Head First books for the language of your choice: