I think we can all agree that making projects is extremely valuable for aspiring developers without formal work experience. Personal projects can directly demonstrate the skills you claim to have and can boost your resume. However, making your resume stand out from others is another challenge. No one wants to make the same old todo list or weather tracker anymore, so we need new ways to find unique and impressive project ideas.
But how do you brainstorm ideas? How do you think in a way that is conducive to producing good ideas? And where can you get inspiration? Well, throughout this article, I will try to answer these questions.
I think that the first thing you should do is try to find a problem in your own life which needs solving or an activity throughout your day which you can make more efficient. You probably can't think of any right now, so I would advise journaling about everything you do each day and analyzing each activity to see if you can make software that can improve that.
For example, if you have problems with time management, you could make a program that takes in what events you want and need to do in a day and spits out an organized schedule.
However, if you journal for a few weeks and can't find any good ideas, you can start to analyze the problems of everybody else through online communities...
Communities, such as Reddit or Twitter, have people that are frequently sharing personal problems. And since Reddit has subreddits for just about anything, you can look for problems among people with similar interests and try to solve those.
This strategy actually helped me come up with Classius which is an online course reviewing website that lets users find the best online courses for whatever subject they want to learn. This idea came to me after constantly seeing people on different programming subreddits asking questions like "what course should I take to learn X?" or "which course is better: X or Y?".
Another project brainstorming strategy I love to use is taking advantage of public API lists because they give tons of datasets that you can choose from for your project. With the amount of APIs on some of these lists, you're bound to find at least one topic that interests you and that you can base a project around.
For example, many people used COVID-19 data from the APIs on this list to make dashboards for COVID-19 spread and vaccine distribution. There are also categories for music, health, jobs, cryptocurrencies, and more.
Any type of visualization project is always a good idea because they are easy to show off and always look impressive, especially if you make an algorithm visualizer. There are already a lot of algorithm visualizers out there, but you can make a visualizer which compares different algorithms for solving a similar problem and see which is the fastest.
For example, you can make a shortest-path visualizer which compares Djikstra's algorithm with Floyd-Warshall and Bellman-Ford. This will add extra functionality to your visualizer and can make it stand out
Everyone wants to distinguish themselves on their resumes, so you should look at resumes from computer science students or graduates to find unique projects. I'm not saying you should copy these projects, but instead you should read their descriptions and try to make the same project yourself, preferably with improvements that add upon the functionality of the original project. A good place to find some of these resumes is r/csmajors on Reddit which has a periodic resume roast you can look through for inspiration. I found that this strategy provides some of the best project ideas very quickly (as compared to journaling).
Most of the ideas you find will be unique and can really help make your own resume stand out as well. For example, I've seen a project which utilizes satellite data to locate pollution in local communities, a fraudulent job posting detector, and a machine learning model which analyzes a politician's speeches to determine their political party to name a few.
Thanks for reading! Please share any other strategies that you come up with in the comments and I'll try to add it to my list.