This post was originally posted on my blog
Picking the right path
When you start in development, there are endless choices of learning materials, blogs, videos, and courses to take. It can be hard to choose the right learning path, because it’s impossible to learn everything. The key to this challenge is to realise that you can never know everything about all the areas.
A good way to start is to pick one specific thing and stick with it. Don’t learn three frameworks or different programming languages at the same time, choose one and stick with it for a few months, ideally 6 to 12 months before you start learning something else. To gain a deep understanding of a specific programming language or framework you will have to use it continuously for many months. The problem with only trying out something intensely for a week is that you will have forgotten all about it two months later.
There are a lot of roadmaps and learning paths out there and it can be hard to figure out what might be the right path for you. To get to a senior level, you will have to spend many hours practicing this specific thing. That could be building a backend in Node.js, creating user interfaces with CSS, optimizing Postgres databases, or building apps in React or Vue. Whatever it is, stick with it for a few months and you will feel that the daily practice will pay off. If there is a topic that particularly interests you, that will help hypercharge your learning, because it will be easier to create projects and keep learning in an area that you find exciting.
Here is a list of some of the most popular learning paths:
- Frontend Roadmap
- Backend Roadmap
- DevOps Roadmap
- Android Roadmap
- React Roadmap
- Angular Roadmap
- Vue Roadmap
- Javascript Roadmap
- Node.js Roadmap
- Python Roadmap
- Go Roadmap
Roadmaps like this can be useful in the beginning, especially if you are learning by yourself. They give you some guidance around what topics you might still need to learn more about.
The Dunning Kruger effect
After a few months of practice, you will gain some confidence. This can be connected to a psychological phenomenon called the Dunning Kruger effect. This effect is a cognitive bias in which people of lower ability mistakenly assess their cognitive ability as greater than it is. In other words, you will feel that you are smarter than you are. This is a dangerous feeling because it can make you overconfident and you will neglect to learn more, practice more and ask for help.
This effect often happens after boot camps or with students after their first year of learning to code. At this point, many developers are very confident in their abilities and they will act like they already know everything there is to know about the area. Once you start to get more insight into a more specialized area, you will realize how wrong you were. You will see how much work is still required to become a master (valley of despair). Once you reach this dip and recognize how much you still have to learn, it’s important not to get discouraged and put yourself down. Becoming an expert takes a long time and a lot of experience (way to enlightenment).
You can make this journey a little bit easier on yourself, by celebrating the small wins with your friends and colleagues. Another great way to get support is to find like-minded people who are also just getting started and help each other out. Depending on the area of your focus, there will often be communities you can join, like specific Slack, Reddit, or Discord channels with people that share their love and knowledge for this topic.
Exercise - Finding out where you are
Having a big goal that you want to reach is essential. Your goal could be that you want to become full-time employed as a software developer, you want to start your own business that makes money or you want to build a project that can do XYZ. These goals are important to know the direction you want to move in, but the essential part is breaking down any large goal down into concrete steps that you can take every day to get there. Here are a few questions, that can help you figure out what your goals and small steps might be:
Topic | Questions |
---|---|
Areas for Improvement | What areas do you want to improve? |
Strengths | What are you good in? What do you enjoy doing? |
Weaknesses | What do you struggle with currently? |
Opportunities | How can you combine your weaknesses with your current role to improve? |
Small goals | What is something you can do in one day to improve? |
Feedback & Community | Who can you ask for feedback on what you have worked on? |
Resources | What resources can you use to improve? |
Top comments (1)
Thanks for taking your time to write this.
-A junior engineer