Learning Programming by Building Tools You Need
I only ever made it through maybe two books that taught me a new language or framework. And that was way back in the day when I started programming and was somewhat a glutton for punishment. When I read those books, I was learning programming so I could do something real with it sometime later on. But I think it works the same way as learning a language like Spanish.
Do you remember much of the languages you learned in high school? I know I don’t, because after high school, I had no one to speak the language with and it sort of faded from my mind. Well, when you learn a programming language and don’t use it to build something real then the concepts won’t stick around for long. But if you think of something you need, then you have a goal.
With a goal in mind, you will have a reason to learn to program. You will have something for the programming to do for you. And to finish what you are working on, you will have to learn those concepts. You may even go beyond what the book can teach you and end up searching Google for the answers.
Most programming books are like the math books you had in school. They are very dry and they lead you down a happy path to the end of the book. Well, no real project ever takes a happy path.
Things you learn from the book may or may not apply in the real world. And if the book is more than a year old, there is a big chance that things have changed. In fact, the Angular framework comes out with a new version every 6 months. So if you are learning Angular, searching Google is about the only way to get up-to-date information.
The writer’s of those books can only think of so many things. Since these authors have been in the field for a while, they may have even forgotten those stumbling blocks they ran into when they were new to the technology. Also, most programming projects you will work on won’t fit easily into a linear structure that starts at chapter 1 and ends neatly at chapter 10 with a big red bow.
So my suggestion if you want to learn a new language is treat it like a hackathon. Come up with an idea for software, a phone app or a website that you want to build.
Use the book as a reference to get your development environment set up. Browse through the first few chapters to help you set up the skeleton of your application and get the basic concepts. Maybe use the project in the book as the starting point for your own application. But then start modifying it to your needs, searching Google when you get stuck.
Because that is kind of the process that me and many other programmers use even after years of being in the industry. You will never know everything you need to know when you need to know it. But the process of hunting for an answer when you are building something that you have a stake in will tend to fix those new concepts in your mind.