The Technical Treadmill of Software Development
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.
Its hard. There is so much for us developers to keep up with. Not only what our day to day jobs require but also keeping up with the new technologies and best practices. As we speak there were probably 20 new JavaScript frameworks created on GitHub.
How to keep up to date
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.
Blogs and Articles
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.
Social Media
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.
How do I keep up with all of this? 70/20/10 rule
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.
70% Craftsmanship
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.
20% Technology
The next 20% is spent on learning new technologies and creating. Try to spend this time learning new technologies that can improve what you do now. If you are a web developer look into newer JavaScript frameworks like Angular or Ember. Try out other back-end frameworks like Ruby on Rails or NodeJS. If you are mobile developer in IOS try out Android development or vice versa. Learn things that can help solve your problems you may come across day to day. The key to learning new technologies is to create things using them. Have side projects or contribute to open source. Building and creating side projects is one of the best ways to understand how a given technology or framework works.
10% Cutting edge and shaping the future
The last 10% is spent on the cutting edge technologies. These ideas push the boundaries of any given technology. Help or contribute to open source projects that are new and need help getting off the ground. Test out new alpha versions of projects and give feedback. Get involved with understanding new web specifications or emerging technologies such as ES7 JavaScript (TC39) or Web Components (W3C). Some of these technologies can even be used now in production applications. Getting in early with these processes you can help shape the future of software development.
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.
Originally published at coryrylan.com.
Treadmill diagram image is copyright of Sears.com