It's 2020, there are lots of things to learn as a software developer. Your ability to learn fast sets you apart.
One of the best things about modern software development is the availability of free tools and frameworks. For example, as a frontend developer there's a lot of frontend frameworks you can use: React, Vue, Angular, Emberjs, Backbonejs, and many more.
This could be challenging because you have to select what to use. A developer in 2020 would have used at least 2 frameworks one time or another.
Picking up a new framework is good for the learning experience and expanding your perspective. It doesn't really matter which framework it is. I see it as starting a new adventure. I have used a lot of frameworks over time. In this article, I will explain some methods I used to learn fast and also talk about some nuances that surround the frameworks' ecosystems.
A simple overview of the framework helps create a foundation or a sort of guide. Most frameworks have a website and give a short explanation of the framework. A good explanation will include a particular problem the framework aims to solve. Knowing this will help you see the point of using the framework.
An example is React. On React's landing page, you easily see what the framework is about.
Watching videos about the framework also helps kick start your learning. Good videos will expand on the problem the framework solves and if there are other frameworks solving the problem, the video explains the approach the framework takes and why it may be better than the others.
As much as understanding the overview is very important, nothing is more important than code. The best way to learn code is to write code. When learning a new framework, you want to get to code as soon as possible because it's a different ball game entirely. Some frameworks have a good overview experience (OX, lol) but when it comes to code it's terrible.
If the framework has tutorials on their documentation then it's probably the best place to start. It'll be good to just follow the tutorial, that's writing the code as explained in the tutorial. If the framework's documentation lacks tutorials then you may have to do a little search on the internet for tutorials.
Depending on your experience level, this phase should take a few hours to days to get used to the basic parts of the framework.
Why learn a framework if you won't use it for building something?
Learning a framework should be done for a purpose. A framework is a tool for building something so while in the processing of learning a framework this should be taken most seriously. To explore the deep parts of a framework, you need to have a project that makes use of those parts of the framework.
One way to learn really fast in this phase is to join an existing project with someone or a group of people who are experienced with the framework. This makes it easier for you to explore the framework. You can easily reach out to the experienced people on the project if you have questions or you're experiencing some blocker.
If you are working on a personal project, you can still consult people with experience in the framework. Experienced people have a wealth of knowledge beyond the surface level, they can explain some methodologies used in the framework that'll make your learning experience very easy. They will also point out some nuances you may not be aware of (and sometimes that is not in the framework's documentation).
To quickly evaluate how comfortable you will be with a framework, you can re-implement a former project with this new framework. Of course, this will take time if you are re-implementing a large project. If you do not have small projects, you can strip down features from a large project and implement only a few parts of it. Doing this allows you to compare your experience with this framework compared to other frameworks you have used.
At this phase, you are already comfortable with the framework to some extent. This is where you can flex your developer muscles and play around the framework. There are a number of things you can do here:
Experiment with config: Frameworks usually come with configurations that have defaults. To really know how these configs work, you can change the defaults to different allowed values (You can attempt extreme values to see how the framework reacts). Doing this helps you understand better how the configuration affects the overall working of the framework.
Look into the source code: A framework's source code is the single source of truth. You can learn a lot by studying the source code. Sometimes, documentation and tutorials are out-dated but the source code is never outdated. You should take this as practice. While studying a framework's source code, you may find some inefficiency and you can offer to contribute by opening an issue on Github or submitting a pull request.
Play with the CLI: If a framework comes with a Command Line Interface (CLI), then you should definitely play with the commands it comes with.
No framework is perfect
If you use a framework long enough, you will find out it doesn't provide everything you want. Lots of frameworks have a community around them and this is where you find other people who have similar ideas, issues, or problems while using the framework. It's really beneficial to be active in the community because you get to meet really cool people and learn from them. You can even get to interact with the maintainers of the framework which is really cool!
A good community will have a set of guidelines that will keep things organized. The members will also be welcoming and will always offer to help when raise questions or have issues. A good community may also showcase large projects that are using the framework, this gives anyone new to the framework some level of confidence in the framework.
I hope this article will help you to get faster at learning new frameworks or technologies.