As a professional developer, in an arena where the pace of change can be very fast, it is important to develop some healthy habits when it comes to maintaining your skills. My most valuable professional development habit, by far, has been working on side projects. Over the years, outside of my regular workday, I have spent countless hours driving my learning by building apps in the next new language/framework/tech stack. It was ASP, JSP, ColdFusion, and Flex in the early days. Lately, it’s been mostly React, React Native and Angular. This experience has helped me stay on top of the ever-changing industry of front-end web and mobile development and I will share some of the challenges I’ve faced, some tips and tricks around best practices and all the best parts of my story over a series of blog posts.
The ideas I plan to explore include the following:
- What is a “side project” and how can it help you become a better developer?
- How to get started
- How to maintain focus with so many other tasks vying for your attention?
- When should you invite others to participate?
- When and how do you bring it to a logical conclusion?
My track record hasn’t always been consistent and I’ll be the first to admit that the biggest challenge has been keeping my head down when work and life and everything else gets in the way. I can tell you, though, that pushing all these projects down their individual evolutionary paths has always been rewarding.
So, let’s kick this series off by defining what a side project is, exactly.
1. The primary purpose of a side project should be to learn something new that will increase your marketability.
It would be a waste of time to build a side project using a language no one cares about or a tech stack in which you are already proficient. The whole purpose of this exercise is to invest in yourself. So it makes the most sense to drive your knowledge and experience into areas that will make you more valuable to your employer (current or future). You shouldn’t be afraid to step way outside your comfort zone either. For example, the most well-rounded front-end developers have an appreciation for the complexity of the role the back end team plays and vice-versa.
The bottom line is that you should only be thinking about tackling a side project if it will expand your horizons in some meaningful way. And while there is no shortage of new topics to tackle in this industry (the main problem will usually be narrowing down your list of choices to something that’s manageable) don’t limit yourself to the next version the framework of the week.
2. Choose to solve a problem that interests you on a personal level.
If you are going to build an app, make it do something that you can see yourself using in your own life. This will help you maintain your interest and stay focussed when the challenges start mounting. In my case, my hobby is playing guitar and learning music theory so, for one of my recent side projects, I built a small app that lists all the chords for each of the musical keys.
3. The scope of the project should be relatively small.
You have to go into this endeavour with the understanding that you won’t be able to spend all day, every day working on it. Keeping the scope small and manageable means that you’ll be less likely to become discouraged by your apparent lack of progress. Setting realistic goals will have a huge impact on your success over the long term.
4. Don’t sweat the small details. Just get started.
Newton said it best. A body at rest tends to stay at rest unless acted upon by an external force. Newton probably didn’t consider the fact that the external force could actually originate from an internal source… your own self-motivation. Like any challenge in any field, taking the first step is the hardest. But people who are self-motivated tend to be very good at mowing down all the little excuses and refusing to let themselves get bogged down in all the details. If you make a conscious decision to NOT overthink things and just chug along without being bothered by the fact that the road ahead is unclear, you will overcome your initial stasis and you’ll slowly build momentum. It’s liberating to realize that there are no clients to please, no deadlines to meet, no managers to answer to. The stakes are low enough that you really do have the freedom to make mistakes and start over if you realize that you’re on the wrong track. So have some fun, learn something new, make something cool and don’t let the idea that you’ll never finish prevent you from taking the critical first step.
I hope these few guiding principles provide enough to help you start thinking about where you might like to go with your next side project. In the next installment, I plan to cover some of the specifics techniques I use for getting my projects off the ground. If you have questions or comments about this article, feel free to send me a note through “Contact Us” and I’ll be sure to get back to you.