We often hear about the importance of continuous education in today’s job market. This rings especially true for software developers. They learn something every day, as they create and troubleshoot software. However, the pace of innovation in software development is so high, a working professional can still find his or her skills outdated if one is not mindful.
When talking about up-to-date skills, we’re not talking about using the latest and trendiest frameworks, libraries, and other software development tools. It is perfectly fine if one’s core competencies only include mature and unexciting tools. Our skills are not outdated as long as we are effective and competitive. Are we able to execute an idea, and deliver it in a timely fashion? Using ECMAScript 5, jQuery, or Python 2 (dare I say) is perfectly fine, as long as we remain competitive (as an employee or company).
Going back to the question of keeping our skills up to date, how do we achieve it?
Simply put, there is no other way than doing the work of learning. The only question is where do we do this work, and how deeply do we study these new technologies.
In the best-case scenario, a software developer is able to grow his or her skills at the place of full-time employment. We often hear the message that companies prosper when they give their employees opportunities to learn; and there are certainly employers who offer such a work environment. However, there is a natural tension between finishing a current project and making employees more productive in future ones. Also, it will always be difficult to get permission to develop skills in an area that is distant from our current responsibilities — where the medium- and long-term benefits are less clear to the employer.
In general, a software developer cannot avoid sacrificing his or her personal time in order to pick up new skills. Fortunately, programming is fun (or should be) for all programmers, so finding the required discipline doesn’t have to be hard.
There are a few things to keep in mind when deciding on those side projects:
The first rule of side projects is to make them fun. So, focus on an itch you’ve had; do something you would never get to do at work, and don’t put any business considerations into your choice of a project — it is enough to know that learning in itself pays off.
The second rule of side projects is that they should be small. Don’t be ambitious about how impactful your app is going to be, and don’t plan on becoming an expert or advanced user of the new technology. Keep projects small, so you can actually complete them. You will have many great reasons to desert a project. As with all long-term efforts, maintaining momentum is critical. Use the satisfaction and confidence we get from executing an idea to maintain this momentum. Smaller but more numerous projects also lend themselves more easily to trying out different technologies.
Your learning should be more about exploration, rather than gaining expertise.
Use these projects to discern what effect these new tools would have on your daily work. You might become advanced with technology if you use it often enough in your side projects. To become proficient, though, you typically do need to use it in daily work. The good news is that with the experience of the side projects on your side, you will find it much easier to get buy-in from your employer or team.
What do you do when your employer is resistant to these types of suggestions from developers?
Then it’s time to evaluate the long-term benefits of you working there. As soon as we stop learning, we stop growing, and the clock starts to work against us. Sometimes, a difficult decision has to be made.
On the other hand, developers need to appreciate employers who are open to new technologies. The opportunity to learn should be included in our evaluation of the compensation package that an employer offers us.
If you do get to the point where your skills are outdated and you leave the company (whether voluntarily or not), the good news is that you should be able to catch up quickly, as long as you have strong fundamentals in programming and a desire to learn. Without ties to the technology choices made by you or your employer years ago, you will re-emerge with the latest skills, and still have years of hard-won lessons to leverage.
Not surprisingly, as long as you keep learning, you win.