It’s a common mistake in our industry that people when first starting out believe they can spend [insert any short number of days here, like 30, 60, 100] days learning a programming language and then they’ll be an expert, easily get a job and hit the ground running. The reality is that software development is not something that you can learn over night, it take time, and it takes practice (with regular feedback).
You can learn the basics of programming and a specific language in a few weeks, but to take those basics and use that knowledge to build anything larger than a simple app or contribute within a development team, you’ll rapidly discover how much you actually don’t know.
A career in software development is a continual learning process. As you work with a specific toolset in a specific functional area, you’ll continually come across new things that you haven’t seen before, you’ll see what works and what doesn’t work. You’ll gain experience as you go and become more comfortable applying your skills and experience to solve problems you’ve seen before, and also become more comfortable solving new problems as what you’ve seen before often helps understand a new problem and find an appropriate solution quicker.
When you start a new project or a new job, you’ll often find this whole process repeats, especially if you’re starting with a new framework or toolset that you haven’t used before. And this repeats throughout your career.
It takes time to gain experience, and unfortunately there is no quick or easy shortcut other than hands-on experience, practice, and continual learning.