A question frequently asked by new developers is what to learn, how much to learn, and how do you know when you’ve learned enough?
Learn what you need to solve the current problem and then repeat for the next problem.
Don’t think about his as a finite set of knowledge that you need to learn and then that’s it, that’s the end. That’s not how it works. There’s always something new to learn, and there’s always something you’ll find that you don’t know.
Adjust your mindset to keep this in mind and you’ll be ok.
In Reddit programming subreddits there are never ending questions about how to learn a programming language to get rich, or how to learn language XYZ because ‘I need to get a job next month’. If the people posting these questions did only a few minutes of research by reading previous similar questions (you don’t have to scroll back too far before you’ll find another similar question) they’d realize how unrealistic their expectations are.
Learning a programming language doesn’t make you a developer. The analogy I like to use to answer these questions is that learning to use a hammer by itself does not mean you can build a timber framed house. I summarized this before in this post:
I have another analogy that maybe is more relatable given that some people are attracted to the Gold Rush of software development. Doctors make a lot of money. If you learn how to slice open someone’s chest to do open heart surgery then you’ll be able to get a job as a surgeon right? If course not, that’s not how it works. Similarly, learning a programming language by itself will not help you get a job as a software developer.
A common question asked by new developers starting out, especially during the first few months of learning, is ‘when does it start to get easier?’
The reality is it never really gets ‘easy’, but with experience it does get easier. When you’ve seen enough similar problems and previously worked out solutions before, that knowledge and experience helps you approach new problems.
A completely new problem that you’ve never seen before obviously takes more time and effort to work out an appropriate solution. A problem that you’ve already seen before takes less time because you’re able to apply the previous knowledge and solution.
The point where things start to get easier is where you’re able to pull from previous similar problems that are different from the current problem you’re working on, but enough knowledge and previous experience helps to find a solution to a completely new problem.
When do you reach this point? It varies for everyone, it depends what you’re working on. If you’re working in an environment where you’re working on very similar problems day after day, you’re not encountering enough variety to grow your experience so will take you longer. If you’re lucky enough to be working in an environment when you’re exposed to a broad range of problem types, then you’ll develop your experience quicker.