It may seem simple and obvious but knowing how it works is one of the most important things you need to do in order to learn and master anything in life. Software development is not an exception to this, even if sometimes you manage to have a task done with just copying and pasting some code you found over the internet. The thing here is that if you don’t take the time to understand the code you just found, you end up not adding any value to what your doing and learning almost nothing from it, and probably becoming an automat, search, seek, copy, paste, done, and repeat.
In order to understand how things work I recommend to get to know the history and background of it, how it was used and how it is being used right now. Once you have a good understanding of how it was created and how it evolved you’ll be able to grasp enough information that will help you understand even better how anything works, and how it works this way and no other way.
Knowing how things work will give you a lot of tools to solve problems faster and more accurately, will help you answer questions promptly and will give you enough confidence in what you’re doing and in why you’re doing it that way. In the practical life it will help you to get the job, to get the job done and to mentor and help others to do the same. It will help you to debug in a more conscious way and to find a good solution for it.
We live in a crazy fast environment where everything needs to be done fast, where learning has to be mastered almost immediately and there is no time to waste. But not taking the time to know how things works won’t make it any better on the long run.
What I recommend is to learn the background and history in parallel with learning to how to use it, and extend it even after you use it regularly. What I’m trying to say is that don’t wait to know all the history and its details to start using and learning something, do it in the meantime, you’ll feel more productive and you’ll fell that you are moving faster. Research about who created it, why, what was the need, what was the approach, how it was used, how it evolved, how it’s the process, best practices, tips and tricks.
Sorry for the lecture, but this lecture wasn’t just for you it was intended for me as well.