Learning new skills can be difficult, especially without a plan. The amount of information is vast, sometimes it is hard to decide where to start and what is essential to learn, that is what might slow you down.
I want to share a few tips, how you can advance your learning process and encourage to try it out the next time you decide to learn something.
When you pick a skill to learn, the first thing is to define a specific, measurable goal regarding the skill. 'Learn React' won't do it, you need a goal you can keep track of, for example, 'Build a Todo List app with React' or 'Create a Todo List RESTful API with Node.js'. Having a measurable goal, you can keep track of it, know when you will reach it, which will be a gratifying feeling. You know, the one when you cross an item from the todo list.
After you set a goal, you need to gather material. Start with official documentation, books, blog posts. You want to look for the necessary information, how to start quickly with the least amount of effort. Explore the content of the books, tutorials and blog posts, notice what the order of the topics in the material is. You need to have a broad understanding of the capabilities of the skill.
Now that you know what the skill is capable of, you need to make a plan and filter out the information that does not fit the plan. For example, if you were to make Todo List with React, your plan could look like this:
- Initiate the project (create-react-app)
- Store items in the local state (state and lifecycle)
- Create components for adding new and render existing items (JSX)
- Add and remove items from the local state (handling events)
And based on the plan, we can filter out information about routing, context, portals, optimizing performance, and so on.
You have a plan and required material, it is time to start practice. The key is to start as soon as possible with the minimum info and explore it on the way. As you start doing it, you will stumble into problems that will make you search for additional information, this way, you will realize what is really important for you and will understand the concepts better.
And the most essential key to mastering the skill is to try to teach someone. Trying to teach the topic you learn is quite challenging but very rewarding, as you will be forced to learn it well so you can to explain complicated things in an easy to understand way. The information you teach will sink in better.
To share your learnings, you can write a blog post, teach a coworker, do a workshop or cast on youtube.
There is nothing new in these concepts, it simply adds some structure, planning and teaching. Give it a try next time, especially the teaching part and leave feedback on how it went. I would be glad to hear your learning process or a suggestion on how to improve this one.