I want to get started badly with side projects. I feel like I never know how to truly get started with them, and most importantly, planning with scope. I don't know if something is ever too basic or too complicated with my knowledge. I wanted to ask, how do you all really get started with a project most importantly finish?
My criteria for picking side projects:
When it comes to side projects dont over think it. Software can always be made more and more complex with additional features. Pick something you can hack together in 2-3 hours and keep iterating over months. I dont think any software is ever "done".
Even something as simple as a login page can be made enormously complex (string validation, SSO, login with google/apple/github, reset password, ensure new password is not the same as old, ensure it shows properly on windows/android/desktop, dark mode/night mode, passwords should match, username should be unique)
I wouldn't worry about picking something too easy or too hard. Just figure it out as you go! use chatGPT or google to learn what you need as you need.
If you're feeling stuck a simple idea is pick an app you use and clone it and give it out for free-- gym tracker, nutrition tracker, productivity apps like notes, chrome extension to track submitted job apps -- and then make it free
RE: how to finish: make the completion criteria for publishing the first version of the project easy. Like, laughably easy.
No one will care or use your initial version of the product, it's just for you to build momentum and start doing more iteration.
Sai pretty much nailed it. The important thing here given that you're junior and just starting is to choose an idea that's stupidly simple. Something so simple that you're afraid that other engineers will make fun of you for it (don't worry, they won't). Follow the advice here: "Finding a mobile app idea - How to do it?"
After you have the idea, break it down and ship it within a week: "How do I make software less overwhelming?"
Ideally the best project idea is one that you've been wanting to make for a while and is not too complex. This takes time to come up with and exposure to different problems/fields. I have a Obsidian file where I list every new idea that I think could be viable.
Another way is to get ideas from others. For this, you can simply ask people or find collections. Here is a tweet with many ideas: https://x.com/\_buildspace/status/1793805155080777955.
I'm currently making a carpooling website at antride.ca. I remember talking about the idea 2.5 years ago in a internship interview (which I did not end up getting), and I'm finally getting around to making it. The idea is from personal experience of a uni club I was in that would be have off-campus events intermittedly. Carpooling wasn't attempted by the organizers and the current websites are unintuitive. No carpooling website currently exists that auto-matches people into groups based on location to make the optimal carpooling routes. So I decided to make one.
Once you start your idea, make a project overview document. List the problem, the solution, and the minimum viable product you would have to make to bring value. Keep scope as small as possible. Resist the urge for perfection.
If it has the ablity to get users, do a bit of upfront research by making a survey or asking potential users what they think of it.
And remember to enjoy the process by working on an idea that excites you.