If you haven't noticed software development is moving fast. No I mean break neck fast. New frameworks, technologies and solutions constantly coming out to solve problems we never could have dreamed of a few years ago. In this post I have compiled a list of tips that help me stay up to date and prioritize what to learn using the 70/20/10 rule.
If you are anything like me you kind of feel like this when trying to keep up with all the new things happening in software development.
There are three main categories for keeping up to date. The first is reading technical books. Books are great for deep diving into a new technology. They can provide a solid understanding of a given technology. The downside to books is that they can quickly become out of date. The more specific the technology the more likely it will be out of date. I try to buy books that have lasting knowledge that I can apply to any technology. Some of these could be 'Clean Code' by Robert Martin (Uncle Bob) or 'The Software Craftsman' by Sandro Mancuso. These books teach long-lasting knowledge that will make you a better programmer overall.
The second category on staying up to date is reading blogs and listening to podcasts. Blogs and podcasts are a great way to stay on top of new technology and software development techniques. Blogs are great for short quick reads that can be easily adapted to a busy lifestyle. Podcasts are great for developers that may need to commute and can learn on the long drives.
The third category is leveraging social media. Services like Twitter are a great way to get the latest and greatest in software development. Twitter can help find new developers with similar interests. You can critique the list of people you follow to learn about topics that interest you. Many open source projects and contributors are tweeting about updates and new features. Following the right people can help you find new blog posts and articles that are worth reading. Developers tweet things that they feel are relevant to them which may help you. Think of twitter as a giant filter bringing you the content that you are interested in.
Short answer you don't. There is too much to learn to try every great new framework or language. Trying to learn everything will leave you with little long lasting or useful knowledge as a software developer. So I have a a technique I personally try to follow and it may help you. I follow the 70/20/10 rule. You may have heard this rule from Google. The idea is you invest 70% of your time or resources into parts of the business that make money and continue improving on them. The next 20% is on investments that have a start and continue to get them off the ground. The last 10% is spent on completely new products or ideas. Now this idea is designed for businesses but is easily adaptable to improving ourselves as developers. After all we are investing in ourselves with our education.
The adaptation I follow is 70% on becoming better as a software craftsman. No not learning a new framework or platform, but improving my craft. This includes working on Test Driven Development, Clean Code or understanding different design patterns. Learning different programming languages and programming paradigms can go a long way. Other topics could include soft skills, blogging and writing about what I am learning. Even learning about how to improve at learning. Taking the time to improve my craft will overall make me better able to chose what to learn and how to utilize my time.
Sometimes these may need to be adjusted depending on your current project or role. Just remember its not how much you learn but how you learn and prioritize your time. Software development is still a young industry and is rapidly changing. Spending your time learning is an investment and you want to make sure its the right investment for you.