5 Reasons Why Every Developer Needs a Side-project
If you have coding skills, I would recommend you build your own side-project. Today, I explain why it's important for your career
Nowadays, if you're a developer, you should be able to create a full-stack web application of your own design.
Now, I'm not saying you'll be an expert as soon as your digits touch the keyboard, but at least understand the basics to create something for each tier: Presentation Layer, Middle-tier/Business layer, and Database Layer to start.
This is called an MVP: a Minimal Viable Product.
A developer should always have an MVP or side-project they're working on. If you write code, there is absolutely no reason why you wouldn't have a side-project.
A Quick Story
I'll try to get to my point quickly.
I started digging into the Internet back in 1995 when I was working for a well-know insurance company. Although I was hired in 1993 for my Clipper skills (MS-DOS/DBF development), that didn't stop me from learning the Internet outside the company in 1995.
I told a couple people about what I was building and, within six months, I was asked if I would like to build the company's website.
Absolutely! So the company created their first Internet team and built a web presence.
During this time, I found the Internet to be another medium like TV or radio so I decided to pursue this new technology on my own time. Webmaster by day, mad Internet scientist by night.
Before the turn of the century, I started a simplistic site where I could update the content without uploading hard-coded pages.
I started building my own data-driven website.
With this side-project, it grew over the years and I continued to research new technology to update my site. It evolved from:
- Classic ASP --> Delphi (A fat-client, or .exe for writing out content)
- Delphi --> WebForms
- WebForms --> ASP.NET MVC
- ASP.NET MVC --> ASP.NET Core MVC
Of course, versions factored into this as well, like ASP.NET MVC 1.0 transitioned into 2.x, then 3.x, then 4.x, and finally 5.x.
This turned into my current CMS you are viewing right now.
Over the years, I've started a number of web-based projects where some have failed and some took off, but this project is what I always fell back on for testing different ideas or technologies.
So why create a side-project? Let's discuss some reasons...
1. Evolving Trends
For example, this is what I did with my CMS. A new version would come along (ASP.NET MVC x.0) and I would refactor the code using the new version/technology.
If the new technology was extremely different (like ASP.NET MVC to ASP.NET Core), a new version of your project would require refactoring (or <gasp> a rewrite).
2. Familiar Grounds for Experimenting
When you have a side-project with a familiar code base, it's always easier to dive right into recent(-ish) code you work with on a daily basis for experimentation.
For example, this is what I did when I first found out about SignalR back in 2012 (thank you @shanselman). I used my CMS/Blog as a testbed for SignalR with such projects such as a real-time Twitter stream or a real-time Like button.
At first, I feel the standard "Hello World" is necessary to understand the technology at a fundamental level, but there's something about implementing a new technology into a real-world example to get the blood pumping with a "code frenzy."
3. "You have a side-project? Impressive."
If you have a side-project and you're interviewed by a company, some companies view side-projects as a candidates way of keeping their skills current. You are not only committed to your project or platform, but you keep moving forward.
Also, if it's open source, that's another feather in your cap. The company may be extremely interested as well if you're project aligns with their strategy.
4. It Could Turn Into Something More
...which leads into this reason.
Every developer has a dream of building the next big thing to where they're approached by investors who decide to purchase the project. They give you $132 million and you retire.
As I said, it's a dream.
Take your side-project and continue to build on it over time. You never know what it could turn into and how valuable it could be to others.
5. Personal Projects Prepare Your Career
I can't tell you how many times I've worked on a personal project and it's "bled" into my professional career to further my understanding of that technology.
For example, earlier in my career, one company asked me during an interview if I knew a certain technology.
I respond by saying "Yes, I've been working on it for the last two months."
I was hired before I was even out the door. They left a message on my answering machine before I got home from the interview. The clincher was me working on a side-project utilizing existing technology already used in their company.
Side-projects may be frowned upon by some companies, but in the end, I'm "training" myself on my own time by building something I'm proud of and keeping my skills current. This is something you can't put a price tag on.
(well...until you are offered compensation for your side-project).
Do you have a side-project? Have you sold it? Or are you using it to learn as you continue throughout your career? Post your comments below and let's discuss.