DEV Community

Cover image for Why do you need to do Side Projects as A Developer?
Tapas Adhikary
Tapas Adhikary

Posted on • Originally published at blog.greenroots.info

Why do you need to do Side Projects as A Developer?

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.

Your Passion.png

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 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,

management.png

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,

GitHub logo 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 πŸ‘‹πŸ€“

profile

Twitter Follow

πŸ“ˆ My GitHub Stats

GitHub Stars

Tapas's Github Stats

Top Languages

Top Langs

GitHub Streak

atapas

GitHub Trophies

πŸ“¦ NPM Packages Published by Me

npm npm npm npm

πŸš€ 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.

projects

πŸ“° My Top 10 Blog Posts

I have written 250+ articles on several platforms like freeCodeCamp, CSS-Tricks, OpenReplay, Aviyel, Bugfender, My Own Hashnode Powered Blog, and many more. Here are TOP-10 that I like most about my work πŸ˜€


CLICK to See my TOP-10 Blog Articles

What are Pure Functions and Side Effects in JavaScript?

  • How to Learn Something New Every Day as a Software Developer


  • Theming and…






  • Top comments (5)

    Collapse
     
    programmerbyday profile image
    Arman @programmerByDay

    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?

    Collapse
     
    0916dhkim profile image
    Danny Kim

    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,

    1. SNS -> Forget about authentication, real-time updates, search bar, or privacy. Save your posts locally as JSON files. No backend, just static html css and js. Just focus on get your posts rendered on your screen.
    2. MMORPG -> Forget about multiplayer, fancy shaders, particle effects, cinematics or enemy AI. Use free assets and simple animations. Make it single player with simple enemies. Develop for fixed screen resolution (say, 1080p). Just focus on making your game something playable.

    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.

    Collapse
     
    programmerbyday profile image
    Arman @programmerByDay

    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.

    Collapse
     
    desirtechnologies profile image
    Jeffrey Desir

    πŸ™πŸΏ 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

    Collapse
     
    atapas profile image
    Tapas Adhikary

    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.