Know how you learn
Everybody has a unique learning style based on the types of learning that work best for us. These are placed into several primary categories including visual, auditory, reader/writer, and kinesthetic. Some people learn better in social settings while others tend to do better on their own. It's important to first understand exactly what style is the most effective for you and to embrace it.
The way in which you learn can also evolve over time. It isn't uncommon to have to change up your approach as your knowledge base in a subject grows. Books might not be enough and a more hands on style might be the next best step. A topic such as design might be better suited for visuals even if you aren't necessarily a visual learner. The key is to try a handful of materials and use what works best for the job.
This might all sound a bit obvious but it isn't always a concept that people are actively aware of. By being mindful of your learning style and that you don't have to learn any one specific way, you'll find yourself less frustrated. Many people give up when they are at the cusp of understanding, simply because they don't give themselves enough time to try several different methods.
It's very important to set a goal for exactly what you want to achieve. If your plan is too vague, you'll never reach your goals. Be sure to establish them as realistically as possible. For example, if you want to learn React your goals could look like this:
- Create a To-Do list application
- Add Redux and use it to manage state
- Create a database and an API to store To-Dos
- Rebuild the application with React native
Setting goals helps you to look back and realize how far you have come, that way you don't feel like you have wasted your time.
Don't worry if you don't always meet your goals. Even if you fall short you should measure the amount of success you had and then figure out why you didn't quite make it. Knowing why you failed and finding a way to prevent it in the future is just as important of a skill as learning quickly.
It's who you know
One of the first things you can do to stay up to date is to follow the subject matter experts of specific technologies. Surrounding yourself with those who work on a daily basis with a framework you're interested in can help you learn all sorts of things like best practices, important new updates, and other resources that you can lean on to make your job much easier.
Go to meetups and learn about what other people are using. Sometimes a difference of opinion can lead to new discoveries that are useful to you even if they just validate the path you have already taken. Having others to learn along with can help ease the feeling that you are being left behind.
The friends you make at conferences, meetups, and other events are a great resource too. Following them on GitHub, Twitter, or Facebook can also be an easy way to keep up with what others are interested in and using. Don't hesitate to reach out and ask for help when you are stuck. You are more likely to find the answer to your problem faster with the help of a friend.
Find a mentor, and be one
Nothing can help you hone your skills faster than a good mentor. Finding one can be difficult sometimes, but there are plenty of people willing to take you on and teach you. They might be a friend from Twitter, a coworker, or even someone in your family who is also a programmer. The most important thing is that they have time to help you grow.
A mentor doesn't answer your questions, but instead helps you answer them on your own. What that means is that they hold your hand and help you think about your problem. After all, problem solving is really what we do every day. They can provide new ways of thinking, as well as pointing out errors in your code and ways you can improve upon it.
Becoming a mentor can be beneficial as well. Yogi Bhajan once said, "if you want to master something, then you should teach it." This is absolutely true when it comes to coding. Have you ever worked on a piece of code that works well but when your coworkers ask how it works, you fail to come up with an explanation? Did they look perplexed when you tried to explain your process? We have a tendency to assume we understand a concept after reading about it, but it isn't until we actually talk about it and teach it that we really start to grasp it.
Set aside time
Setting aside time is probably the hardest thing for many developers to do. We're already so busy that it can be hard to balance work life, family life, and finding time to learn. It's important to remember that you shouldn't have to sacrifice sleeping or eating to get ahead. Even taking 20 minutes a day can add up really quickly.
Track your schedule and start keeping a list of everything that you do throughout the week. Once you have an idea of where all your time goes you can start prioritizing it. Start with the things that matter the least like watching a TV show and bump them to the bottom of the list. It's actually pretty amazing how much time we waste throughout the day on unimportant tasks like checking social media, as well as how many tasks we can group together to do more efficiently.
When you finally have an idea of how much time you can realistically commit to learning, write it into a schedule. Putting it onto paper formalizes everything, and if it's helpful, have a friend or partner make sure you keep that commitment.
Keep a list
Keeping a list of tools, buzzwords, and tech terms is an excellent way to make a todo of things to learn. A simple checklist that you can mark off as you read about and apply a new concept can help show how much progress you've made. This can also be a list of blog posts to read as well.
Create a document with a list of blog posts to read. Write notes about each article, that way you can reference it later on if needed. It will save you some time when you go back and only really need the key take aways.
The 80/20 rule
It's not very often that even the latest and greatest technology does something so completely different that it is truly unique. Because of this, you can apply the Pareto principle to get the most out of your limited learning time. The Pareto principle states that 80% of the effects come from 20% of the causes. When applied to programming, what it essentially means is that you don't have to know every little detail, but rather only the 20% that makes a certain language or framework different.
If you can answer the question, "What problem does this solve?", you can narrow down what you need to learn to several pieces. React, for example, helps simplify creating UIs with a functional approach to component based architecting. First, you'd want to learn what functional programming is, along with what a component is. After understanding those terms, the next focus would be understanding props and the render() method. With just that bit of information you should be able to build a couple of basic applications and slowly start to grow your understanding of React.
Take time away
Even if you have plenty of time to spend honing your craft, it is important to take time away from your learning routine. Having other hobbies, especially hands on ones, which are creative can help you reset your brain and offload everything you have learned. Spend time with the family, walk the dog (or cat), take a mini-vacation. Whatever it is, just make sure to stay completely disconnected.
Numerous studies have shown that the brain goes into a "cleanup" mode when you are in a restful state, especially when you are asleep. That's why it is so important to not get into sleep debt. You'll have an easier time remembering what you learned and applying it when you get enough rest.
Go forth and learn!
Staying up to date can be remarkably challenging but it doesn't have to be. With the right strategies to put up to date knowledge in front of you and finding the correct method to learn with the limited time you have you don't have to burn yourself out. When you apply a well laid out process for learning, you can ensure you'll never fall behind and might even find yourself ahead of the curve.