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.
A
Side Project
is 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 bydaily.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
Readme
file 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,
atapas / atapas
This is my GitHib profile page. Feel free to check out the readme file, copy, fork, and use. You can visit it to know about the side-projects as well.
Hello there! My name is Tapas Adhikary ππ€
π My GitHub Stats
GitHub Stars
Top Languages
GitHub Trophies
π¦ NPM Packages Published by Me
π My Side Hustles
Here are my top-most Side Hustles. Most of the projects I have created are opensource. Please consider contributing to them. You are welcome to follow π€ me here to stay connected. Who doesn't need motivations?
Show your support with a star(β) if any of my projects inspire you or helpful to you.
βοΈ I Write For
I'm a Freelance Writer. Here are a few platforms where I have been writing for a while now.
CLICK to See my the PLATFORMS I Write For
π« You can find me @
-
tapaScript on YouTube
βΆοΈ - X(Twitter) π€
- Website π
- Blogβ¦
Top comments (5)
Great post. Thanks.
What would you suggest when we have an idea but it seems to be a big one and the way to reach it is vague?
The chances are, if you only have a vague idea about your plan, you will fail to make what you want. I have failed many times, and I learned I cannot build something I do not know how to make. If I don't know what I am doing, I learn as I build. And at one point, I eventually encounter one issue that blocks development for few weeks. That's the point where I give up. Countless projects were ended that way. So here is what I suggest: make a "stupid" version of your dream project first. For example,
You get the idea. The point is that you have to start with a simple project that you can finish within a couple of weeks (or days). Of course you will not be satisfied with the initial result, but it also means you can easily find room for improvement while having something to work on immediately. Adding social sign in feature to your SNS or adding support for various screen sizes can be fun tasks. You will get the sense of progress.
Do not start with a complete list of desired features for your dream project. Start stupid and build upon it.
Thanks.
Yeah, that's right.
However over my past experiences, I learnt that I get too excited about the technical side of that idea only to know later on that I don't have the capacity to run such idea by myself.
These days, What I do is to start with a business analysis and try to realise what is needed in order to run such an idea, and to see if I can pull that idea off.
Or maybe I should simply suggest the idea to one of the big IT companies.
ππΏ very relatable, I've dealt with the same brick-in-face lesson with passion projects...even without ~(much)~ !mposter syndr0me starting from improbable ideals is a tricky habit to stop. Thank you
Thank you. Glad you liked it.
While the 'big' is subjective, still I'll break it down. I have faced this situation a couple of times. I was working on an idea to create a DemoLab and wanted to incorporate the idea of JAMstack, loading modules dynamically, switching the themes, managing demo content from readme using GitHub workflow, etc.
If you get a chance to look into my GitHub projects, I have side-projects for each of those. This actually helped me to build the demo lab infrastructure and also re-used the pieces else-where. I have also encountered a situation where I did something but haven't used it for the demo lab and may end up using it later else-where.
Sorry for the long answer but that's how I would be looking into it. I am sure, there will be other ways as well.