As a developer, the moments when I learn the most are those when I am building things. This is true for the stuff I build on the job, but even more when I work on something I choose to work on, a side project that really excites me and that I do on my own time.
Coding a feature or a full product is usually a process of tackling problems one by one, some easier to solve than others.
The hardest problems, those seemingly insurmountable at first, that force me to go deeper into the workings of a technology, are the ones that make me learn things that stick with me forever afterwards.
This is why I firmly believe that the best way to learn new technologies is by doing. More than that, as explained in Indrek Lasn’s articles, we should strive to build useful things as a way to make progress.
If, like me and many developers, you enjoy building stuff, working on something you are excited about is one of the most glorious experiences you can have .
We developers are extremely lucky: we get to use our creative energy to produce things that others can use, and to enjoy the pure act of applying our craft to get things done, while getting better at it in the process.
And when the things we create also bring value to other people, the rewards are tremendous.
Here are some of the benefits of working on a side project:
It keeps you motivated
A side project you are excited about gets you going and fuels your creativity. It’s your thing, your baby, your sweat and tears. With patience and work you might even end up bringing a lot of value to its users and transform it into a business.
It drives you to learn new technologies faster and in-depth
“You have to do in order to learn. You have to try stuff, break stuff, regret you ever tried, overcome your laziness and get s**it done. ” – André Pena
When you are trying to make things work, you are learning far more in-depth than when just reading, watching or coding along.
Getting your hands dirty and treating the technology as a means to get where you want to be is the most effective way go from theory to actionable knowledge.
It opens new opportunities
Having a side project and a particular interest for the technology you are using is something that makes you stand out, technically and as a person.
“Side projects can be immensely rewarding to talk about. They demonstrate a lot about how you work. ” – Tanner Christensen
This article explains in detail how talking about your side project can have a great impact on your career, even as a beginner and/or self-taught developer.
It helps you get better at other important skills: product design, UX/UI, marketing, etc.
In your professional life you don’t often get to work on a project from end-to-end.
Not so with the side project: you are responsible for conceiving and designing the product, develop it, deploy it and market it. The responsibility of finding a way to learn enough to get to the results you want falls on you.
For all these reasons, the side project of your choosing can tremendously boost your creativity and growth, when you find your own sweet spot:
1. The main issue: shipping
Fear of shipping, procrastination and resistance have been heavily documented.
They rank among the main reasons why a great amount of projects are never born and end up in the graveyard of abandoned projects.
This means that the mere fact of finishing a project and confront it to the reality of its users is already setting you apart.
However, since there is nothing important at stake, you can keep the pressure to a minimum: a side project is all about succeeding slowly, at your own pace, on your own terms.
Unlike in the workplace environment where failure has real-life consequences (downsizing, losing clients), the side project space is somewhere you can experiment, define your own measure of success, fail without risking anybody’s career or income, and have fun in the process.
2. Taking it easy
Tobias Van Schneider said that side projects should be stupid:
“The only way a side project will work is if people give themselves permission to think simple, to change their minds, to fail — basically, to not take them too seriously.
When you treat something like it’s stupid, you have fun with it, you don’t put too much structure around it. You can enjoy different types of success.”
You should treat your side projects as experiments and not let crippling questions and doubts kill the project before it becomes something. In other words:
“My first piece of advice is to just fucking do it.” – Tobias Van Schneider
This is the place where you can fail without consequences and have as many shots as you want.
It is also the place where you can make tangible and measurable progress towards a goal that excites you; this will keep energizing you, and make you happier too.
3. Finding the idea
How can you find ideas for side projects?
Scratch your own itch
If you keep stumbling upon something that makes you say “why doesn’t this exist yet ?” or “I can do much better”, it’s time to do a little research and go for it if the need isn’t met.
That idea that keeps nagging you
You’ve been thinking about it for months or years. It keeps coming back and begs you to help it make its way into the world.
Whether it’s transforming a feature from an app you love into a product, or cloning an existing product for a different purpose, if you feel the drive to make it, this is a good sign you have to get started.
Execute ideas provided by others
Here are the links to two articles that are full of ideas that you can consider:
5. The wow effect
While shipping a prototype that works well should be your main objective, the goal is also to delight the user of the product : you only get one chance to make a good first impression.
Wayne Chang has introduced the notion of MLP — Most Lovable Product — a prototype that provides a great experience for your first users.
“An MLP is a product that is so intuitive, so satisfying to use, that your customer base can’t help but tell someone else about their experience.” – Wayne Chang
Even with the minimal features, building a beautiful prototype can make you stand out and place you in the delta of wow.
6. Going in-depth with the technology
Time for me now to dive in React (never too late, right ;), something I’ve wanted to do for a long time and never got to tackle properly.
I get really bored when trying to learn something new and the default tutorial app is another blog or to-do-list that will end up in a graveyard of folders in my computer, while I could use the time to create something meaningful.
Working on a side project helps me embrace the technology as I use it as a means to an end: transforming the idea I have into a tangible version of the product, that I am satisfied with.
7. Documenting the process
If you like to write, documenting your journey in itself can be a very rewarding exercise too.
I find writing articles is a great way to log your progress, clarify your ideas and allow you to see how you’ve improved. Journaling helps retain concepts and clear your head at the same time.
Go for it
Having a side project that excites you will keep you motivated and you may find yourself carving more and more chunks of time to achieve your goals in the process.
Stick to one project and get it done, while learning a new technology along the way, starting small and succeeding slowly. Whatever the outcome, you will have honed many of your skills and feel the pride of having created something important for you.