Hack your learning: tips for continuous learning as a busy software developer
Continuous learning is an integral part of being a good software developer. Your job is not just writing code - its coming up with the right solutions and implementing them. Your ability to come up with solutions to problems is intrinsically linked to the quality of your learning.
The challenge is trying to find the time to keep up, especially as you get further in your career. You have more responsibility, more pressure and less time. You need to ensure that you are getting the most out of the limited time you have to learn.
I want to sure some tips which I have found to be extremely valuable in this regard. I hope you too will find them useful in your own journey.
Tip 1: Turn routine tasks into learning sessions
This is my top tip when it comes to continuous learning. We all have menial or repetitive tasks in our day to day lives. Some examples are:
- Driving to work and back
- Washing the dishes
- Sweeping the house
- Hanging up laundry
What you might not have realized is that these tasks are great opportunities to learn!
I don’t have a dishwasher at home so every night I spend around half an hour washing the dishes. I use this time to listen to tech podcasts. I will try plan what podcasts I am going to listen to during the week on Sunday so that I get a good mix of information on different technologies which are relevant to me at the time. Some examples of my favourites are The Laravel Podcast, Enjoy the Vue, Syntax.fm and The ReadME podcast
The goal here is not deep learning. It’s about awareness and exposure to ideas, concepts and trends. You’ll find yourself sitting in a meeting discussing some challenge at work and remembering something you heard on a podcast three days ago which might help solve the problem.
Tip 2: Mix it up
I have generally found that if I try focus all my learning time on one concept, I start getting bored. It takes me longer to learn the concepts and I get frustrated more easily. However, if I mix it up and spend some time learning one idea, then take a break from that and spend some time learning something else, I actually end up learning both things faster.
For example, I am currently actively learning two things: TypeScript and smart contract development with Solidity. I jump between the two of them constantly - I might spend an hour in the morning learning TypeScript and then work on a small side project with Solidity at lunch. I find that rather than making me confused, this enhances my learning. I might learn something about generics in Typescript which helps me write better functions in Solidity.
Your brain is a powerful thing and it thrives on making connections between seemingly disconnected concepts - don’t be afraid to challenge it in this way.
Tip 3: Discuss your learning
Discuss with someone outside of tech
I try have a weekly coffee with a good friend of mine where we discuss ideas and the things we are learning. We have very different skillsets and interests - he is a marketer and a brand strategist. These discussions are incredibly important learning opportunities for both of us. In the process of explaining blockchain, ethereum and smart contracts to him, I am cementing these concepts in my own mind. The same thing for him when he explains the unique selling proposition of some new project he is working on.
Discuss with someone in the tech field
While discussing your learning with someone outside of tech is valuable to ensure you grasp the fundamentals of what you are learning, it’s also important to discuss your learning with someone who is knowledgeable about the topic at hand. This might be a co-worker or a programmer friend or possibly on an online forum. This type of discussion is important because your thinking will be challenged. You will hear other viewpoints and arguments around the topic. You might find that your understanding has flaws that you need to go back and rectify.
Tip 4: Teach others about what you are learning
This tip is similar to #3 - you cement your understanding of a concept by teaching it to others. It’s important to realize you don’t need to be an expert on something to teach it. In fact, I’d argue that you have more valuable nuggets of wisdom to share when you are actively grappling with learning something.
This teaching can come in many forms. Here are some ways that have really helped me in the past:
- Give a talk at your local tech meetup.
- Search for questions related to what you are learning on Stack Overflow and try answer them
- If you have junior developers at your company, schedule a session with them where you share what you have learned
If you really want to push yourself to learn something quickly, commit to one of these options before you have a good understanding of the topic. This gives you a deadline and forces you to commit the time it will take to learn it properly.
Combining these tips will help you make the most of the limited time you have available. Look for tasks which are good candidates for learning opportunities. Mix up what you are learning. Schedule in regular discussions with people in and out of tech to chat and find ways to teach others. You will be suprised at how fast you learn!
If I can leave you with one last tips its this: you do not need to know everything. There are a small number of concepts you need to learn deeply, a few more that you need to have general awareness of, and a lot that you can safely ignore.