Unfortunately I can't come up with project ideas! Whilst learning, I'm always creating something, but it's usually a todo app, ecommerce concept, a portfolio or blog.
Can you share some ideas? As @ben said here
You should start working on random projects regardless of how they fit your portfolio, more for learning.
I would love to have few fresh ideas, even if some might never end up in the portfolio, or regardless whether I'll be able to finish them.
I am considering contributing to open source but the task feels overwhelming. (The best advice I heard on the topic is, to contribute on projects you already use, but what if that's not an option?)
Top comments (23)
Reinvent the wheel. Perfect for stuff like this. Look at apps you like or sites you like and implement them yourself. Simple text editor in a browser, stuff like that; it doesn't have to be some amazing brand new concept.
You mention todo apps -- have you made more than one? What about making a series of them for different purposes or audiences? What about a todo app aimed for people playing video games to track quests? or a todo app specifically for code? It sounds like that's a schema you like playing with, so I say, rock that!
I have been wondering about this. There are few apps, like editors in a browser, that I've seen and thought "if only I thought of that"
And, for todo apps, there's so much nuances between simple todo to a project manager, to trello board like.
But I always felt that the next project has to be a) unique and b) completely different in genre to the previous.
Thanks for this comment.
Nah. I feel like half the time too, starting one project is how I end up discovering what really draws me and what I want to work on--while working on my last PHP assignment, i kept coming back to this idea in my head over and over and starting that, so as soon as the semester was over I started some other project and went... oh hey, getting pulled this way again, let's just follow it!
Here are some suggestions:
Make a simple Quiz App that ask multiple choice question to users. ✔️
A Markdown Editor with previewer in it. (like github.com/itsjzt/fcc-markdown)
A Twitter or Slack bot 😉
Random quoting App. (like codepen.io/itsjzt/pen/dRMrgb)
Well you can try to complete some FreeCodeCamp Projects or try to replicate Picked Pens on Codepen
Do you have some other hobby except for programming? Try to come up with a project that helps you with your hobby. Or develop a game! It's always almost fun and you will learn a lot.
Regarding contributing to open source, check this guide out opensource.guide/how-to-contribute/ Hope it helps.
Among ideas I have at the moment but which I will not act upon, most likely:
1) advanced video editor with features like removing the green screen and combining multiple tracks
2) a web tool to visualize encoded polylines on an OpenStreetMap
3) routing engine in JavaScript (started here github.com/orkon/routine)
Contributing to open source can be intimidating, but likely project maintainers will be glad to help or guide you - your contribution doesn't have to be huge, and since you're going to spend more time reading and understanding code than writing it as well as conforming to pre-existing code styles, it will be very useful experience. I would reccommend contributing to a game or utility that you already use, as it benefits you and you will have experience in the UX.
Another thing could be building a utility for your self. I remember the first program I ever wrote was a budgeting app in C, as I was always writing down and doing the math on my bank balance while in school. It opened the door to automating daily tasks and was useful in helping guide me to learn more about the software.
And as mentioned above, build a game. It's fun and makes testing much more interesting. Maybe something with a simple AI, like battleship or a card game.
I wanted to pitch “implement stl” of a language of your choice, but since OP wants to add it to portfolio, I think contributing to open source is the best advice. If one-man backed app is not a breakthrough on the market, without proper pressure from business your yet-another-blog-clone of a current generation product would look most likely quite poor.
For sure - leverage the open-source community. I remember working on this utility, and a good way through I stumbled across a very similar one built by a company I had heard of, and I got a bit discouraged as it was much better. That being said, it's still good experience either way, but open-source has the added benefit of building teamworking skills.
In addition to many great suggestions in this thread, here is another idea:
Many websites are hard to read on wide screens because the lines are too long and the distance between lines is too small. I often find myself going into the developer toolbar to add the following CSS properties:
p { max-width: 40em; line-height: 1.5em; }
Somtimes I adjust the line height a little but that
40em
seems right in general.Now I could save myself some time by writing a browser plugin to do that for me via a button click.
A couple of interesting properties of this project would be:
Now ideally it should solve a problem for you. Just trying to show it doesn't have to be a huge thing. Mini-projects are great to get the ball rolling.
Games, games, games. Try to make pong and breakout to get your feet wet, then you could attempt a platformer, cookie-clicker, or a puzzle-game.
Here's why I think games are good for all-around improving as a dev:
I'd suggest starting web-based. Check out lessmilk.com/
I remember that a few years ago "building a blog" was all the rage as a starter project. I would try to replicate something I use every day, maybe not the browser itself but some other app :-)
Regarding contribution to OSS, maybe these can help you:
and the OpenSource guide
As someone who has interviewed juniors and graduates myself, I often like to see something new and not reinventing the wheel. So for example I had one graduate developer come into an interview and he showed us a simple 2d game which incorporated new ideas he had been working on and showed us sample code snippets and talked about how he could polish it and where he could improve the code as well as taking pointers from me about small things around the code.
I often would say an interviewer seeing 10-20 app that all are todo lists would get bored fast and this does not show creativity and ways that one would have to go to engineer something new.
I am not saying go complicated but maybe if you wanted to do a list app, introduce a feature that would sell it like cloud syncing through Azure or maybe if you add a list item it automatically sends a text message to yourself, etc.
Anyway that's my 2 pennys worth.
Just do so small stuff in codepen.io:
Apologies for the self-promotion but I have an entire blog dedicated to open-sourcing project ideas: medium.com/100000-arrows/gathering...
Please, take one of my ideas and run with it! Just post and let me know if you do! :-)
This is might be very specific to backend and CI/CD, but in case if you have any code, literally any code, you could simply build a CI workflow around it in case you want a build automation portfolio too. Create a Jenkins server, probably above docker, or with ansible, and implement complex pipelines, that build separate parts, test, unit test, and report through e-mail or messages about different states.
As others have said, clone something existing, but start very small, minimum viable product, just so you can see what exactly is happening
Also this has some ideas:
medium.freecodecamp.org/the-secret...
At a previous job we used to interview all candidates with a very open ended "code day". The prompt was simple. Build and app that calls a public web api.
A basic website that lets you authenticate (use a framework that leverages someone elses OAuth2).
Call a public API. github.com/toddmotto/public-apis
Showing that you can work with existing systems and apis will give great "real world experience".
I scrolled through my bookmarks and finally found this website again: oduta.com. If you need some inspiration, you should check it out! Happy coding!! ✌️
A bookmark manager is a good and useful one.