How to Learn a New Programming Language or Framework is a very common question. We all experience the same challenges when challenged with new technology.
If you work as a software engineer you will always have to learn new stuff. For example, you will need to learn programming language, new technology or simply a new concept.
This is a reason why software developers have to come up with an efficient way of smart learning.
1 – Plan your study and book time in your calendar
It might seem pretty straightforward, but this is a common mistake and the biggest problem that many people have. You must have goals and time-frame, otherwise you can not measure your progress.
For example, if you want to learn Python programming language, define your goal first. There is a difference between “I want to learn Python basics and write 10 examples” goal and “I want to write an script in Python which automatically updates firmware of network devices”.
Once you define your goal, you need to “guesstimate” the time you need for this. Furthermore, it is extremely important to do this if new technology is related to your work.
For example, if you need to find a new library for your project this will take time. If you don’t calculate few hours for researching libraries and few hours for experimenting you will have problems.
Finally, you need to define when you want to spend this time.
At the end of this step, you should be able to form a sentence “I want to learn X technology, which will take me Y hours and I will do this _____“.
I want to learn new programming language, for example basics of Python, which will take me 30 hours and I will do this each day for 1 hour.
2 – Learn vocabulary
This is a quick tip on how to quickly embrace new things. You want to learn a vocabulary. Therefore, you will understand all of the basic concepts of what you are learning.
For example, if you want to learn API programming and REST concepts, you should learn what API, REST, Client, Server, HTTP, Endpoints, Verbs, Parameters, Permissions means.
- Quick 10-minute YouTube videos can be a good place to find some concepts or vocabularies explained.
- Quick search of StackOverflow might be a good idea.
- Reddit channel for LearnProgramming is a good place to ask questions and get quick answers.
3 – Find a free course on how to learn a New Programming Language or concept
You might ask why a free course? Why not a premium one?
It is quite simple, as a beginner to some technology you really need basic stuff first. This kind of basic stuff will be provided in free courses. You won’t get advanced knowledge but you don’t need it at this point.
Furthermore, this will probably happen in 2nd step already. During your search for a vocabulary, you will find a good resource(s).
Keep in mind that this step shouldn’t take more than 40% of your defined time!
4 – Make an ugly/dirty prototype
Make something, just do it. If you are learning to code, make some simple program. Furthermore, if you are doing something complex just make it work (hard-code dependencies, have simple interface, don’t validate properly, brake all rules) but JUST MAKE SOMETHING. 🙂
Still, always try to write a clean code. There is a difference between making a dirty prototype and making a dirty code.
For example, when you are learning to code, it is important to know golden rules of clean, simple and maintainable code.
5 – Experiment with your prototype
This is a final and very important step.
Try to find out various ways to break your prototype, or to make it work bad.
Why would you want to do this? What is a benefit of this?
- This is Quality Assurance one on one
- By doing this, you will find your mistakes and move step closer to advanced topics.
For example, if you made a simple API handler which recognizes 200 success, by testing it you will be directed in a way to make a handling for 4xx and 5xx HTTP errors. Furthermore, you might have to implement some kind of logging mechanism or find a better way to debug your solution.
Learning a new programming language or a concept is not easy, but it doesn’t have to be very hard or related to pressure. The best way to handle with pressure is to do a smart planning and give yourself enough time. Making a quick prototype will give you a “wind in your back” and motivation to continue working.
Finally, keep in mind Pareto principle, also known as 80-20 rule.
80% of effects come from 20% of cause
To put it more in context with our use case, you can easily learn a big part of new technology. Later, you will need more time to polish it and learn all the details (if you need them).
Plan carefully, focus on things that make the biggest impact for you and most importantly have fun!