The Side Project
Most of us as Software Developers have something called the
main job that we do to earn money, run the family, take care of our needs. If you are a student, your main job maybe towards getting your academic score high, higher study, etc. If you are a job seeker, you may be taking a specific course, learning online, etc to get the dream job.
In many cases, a
main job may not run as per your wish and control. You may have to go by
- What your organization wants you to do.
- What is in the syllabus of your academic year.
- What is that particular skill you have to learn(even if you do not like it) to get that job.
Then what about your passion and eagerness of learning something new? That's where the
Side Project comes in.
Side Projectis something that you are doing aside from your main job to fuel your Passion while learning something New.
Why do you need a Side Project?
A side-project has several advantages.
Live your Passion: Your work organization may not be able to provide you an opportunity to live your passion all the time. Switching jobs are possible but may not be easy. Starting a side-project in the areas of your interest is a much affordable way to handle this.
Learning New Skills: A side-project helps a great deal to learn new skills. A front-end developer learning back-end skills, An ML expert learning web development, A Python veteran doing JavaScipt, all that is possible with it.
Potential to Grow: Do you know, what Gmail, Trello, Unsplash, Twitter have in common? Yes, they all started from something called,
Side Project. You can read the Unsplash story from here. Not very long ago, another side-project story was published by
daily.dev. So inspiring, isn't it? Your side-project may have great potential to grow.
Boost Mental Health: This is an 'I' story. Working on a side-project relieves me from my regular stressful days. It helps in focusing on learning something new that I had planned for.
Idea Generator: A side-project can generate lots of ideas for many future side-projects, your blog post, showcasing a demo, etc.
Rewards & Money: Besides your side-projects may become your next startup idea, you can earn by publishing about the journey of creating them. There are many publishers like to include articles that are 'How to...' in nature. I want to elaborate on this in my future article.
How to Start a Side Project and Do Well?
Start Small & Keep Simple: Always keep your side-project ideas small and simple. If you have something huge, try breaking it into multiple simple side-projects. As you do it more, you will see an opportunity to reuse your side-projects/code/modules.
Do it for Yourself: Do it for your satisfaction and learning. That's the whole purpose. You may also try to do it to create something that you would like to use(some productivity tool?).
Identify your Learning: You need to identify your new learning and take note of it. An outcome of a side-project has to be some new learning. Not identifying and documenting it may make you feel helpless later when it is needed most.
You May Fail: You may fail to accomplish what you have planned at the start of the side-project. That's fine and usual. Don't worry about it. Move on to plan the next one.
Do Not Trash: Do not trash your failed projects. Keep them aside and re-visit when you are running out of ideas. You will find opportunities to improve them with a new skill and improved knowledge.
Document the Project: This is very important. Create and maintain an informative
Readmefile on how to set up, run, deploy the project. My suggestion is to create, edit the document as you make progress than leaving it for the end.
If you are wondering, how to get one side-project idea to start with, just check this out.
My Side-Project Story, those 2 cents
This part of the article is purely optional but you may find it useful if you are just getting started with side-projects.
- An idea may occur or there is a plan to learn new skills say, React, and CSS.
- What to build with it? How about building a theming system using it(A small proof-of-concept)?
- First, create an empty project in GitHub.
- Start to Code, Test, Push, and repeat.
- Create some integrations so that the work can be show-cased publicly(beyond your PC/laptop). I use CodePen, Stackblitz, Netlify, Vercel to host, deploy, manage the final app/outcome.
- Note down the blog post ideas, tweet thread ideas, etc from your learning.
The journey is like this,
Before we end...
Thank you for reading this far! I hope to encourage you to start with side-projects asap. If you are doing it already, that's great. Please like/share this article if it was useful to you.
You can @ me on Twitter (@tapasadhikary) with comments, or feel free to follow. In case you are interested to know about my side-projects, feel free to visit and follow me on GitHub,