I am currently reading 'The Pragmatic Programmer' by Andy Hunt and Dave Thomas when I came across this golden advice. I knew I had to write a blog about it for people who haven't yet read the book.
Here are 6 strategies for self learning for software engineers-
1. Learn at least one language every year
Stop favouriting a single language, instead learn a language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut. Learn the idiosyncrasies of each language and really understand why one is a better fit than the other for a particular use case.
2. Read technical as well as non-technical books
If you don't have the habit of reading, you can start by reading a book every quarter and gradually move to a book a month. You can listen to audio books while doing chores or get a physical copy and keep the phone aside to avoid getting distracted. Create a ritual of reading.
Start out with topics that you're currently using in daily life and branch out to newer domains. Non-technical books are equally important because you build software for people.You need to understand the people that are going to be using your software to create better products.
3. Do a course
Enroll in a course online or offline. There are several free as well as paid courses available online on platforms such as Coursera, Udemy, Udacity, EdX, Codecademy etc. Some of these even have options to audit the course for free but you don't get the certificate at the end.
If you are a student, you can apply for financial aids for courses. You can also look for interesting courses at your university.
4. Network with people outside work
Participate in meetups, give talks, conduct workshops, attend conferences and network with people who share the same goals and interests as yourself. Use social media to your advantage and build relationships with like-minded people online!
5. Experiment and challenge yourself
Step outside your comfort zone and try out a new technology. Challenge yourself to lose your old ways and learn new and better ways to do something you already do.
6. Stay up to date
Read blogs, maybe subscribe to a Medium publication, subscribe to newsletters.