In this article I’m trying to synthesize my approach to learning a new programming language a new framework. I had to good fortune, at least that is how I see things, to interact with quite a lot of programming languages. To my surprise, I found these concepts apply to more than just programming.
Don’t be afraid to jump right in
The first step into learning a new skill is to start practicing. A simple “Hello world!” can do wonders. Start small and build up from there. Build on previous experience. Trust me on this one. It gets easier with time. Once you’ve done this a couple of times, you will find that programming is more alike, than different. The amount of transferable knowledge always amazes me.
Take your time
Treat this as a learning experience. This tends to work a lot better when you don’t have a deadline coming up. Pay attention when you are learning, especially when you are starting out. Usually, the learning curve is quite steep and you have to learn a lot in a short time. Don’t fall into the trap of rushing to finish the project you are working on. Take the time to read about the problems you run into. If you understand the issue now, you will know better than to run into it in the future. On top of that, you tend to run into the same issues many times. If you take the time now to understand, you will save yourself a lot of time in the future.
Stay away from rabbit holes
Be careful with the point above. With computers, things can get incredibly complicated once you start looking under the hood, you can get lost in the details. There are so many moving things that need to work together to get to that simple “Hello world!”. Try to understand them all at once, and you will never get past the “Hello world!” stage. Instead, try to build some abstractions. Learn what you need, just enough to use the concepts. Do some things, break some things, learn from your mistakes and repeat.
You will make mistakes
Same as almost everything else, learning is a process that improves over time. Code is not any different. Get ready to make some mistakes. This means take the necessary precautions not to cause too much trouble. Run the unit tests. Manually test your code locally. Additionally, I found that it helps to have someone that has your back. Try to get someone who is more familiar with the thing you’re trying to learn to do your code reviews.