If you are reading this article then I bet you have read your fair share of project idea articles. All projects have different pros and cons which can lead to indecisiveness in choosing one. Choosing what to build is extremely important as it will impact whether your project will be successful or not.
You should consider the following 6 points before selecting your next project.
1. Choose a topic you're interested in
The first and most important point is choosing a topic that seems interesting to you. If you're interested in what you're creating then you'll have way more motivation. Motivation is extremely important because it is the actual momentum that carries you through when you hit some kind of roadblock!
Some people might be motivated by finances and some by a project that relates to social good. Others might be motivated by something to do with the stock market or the latest cutting-edge technologies. You might also be obsessed with a favorite TV series! Whatever motivates you the most is what your project should be about.
2. Think about your goals
Another factor to consider is what your overall goal is in learning the programming language you will use to create your project. If you want to be a web developer, then a project that builds a small web app is quite ideal. If you want to be a data scientist, then a project that analyzes a dataset would be a good choice. By aligning your project with your goals, you'll be taking yourself closer to the new and better you.
3. Build something that you will use
Building something that you know you will use is awesome motivation. You will be after something you need and this thought would drive you to keep working until you are done. If it is something you need, there are probably more people out there who will gladly use what you come up with.
But what you should also consider is not throwing away something that interests you just because you don’t have a use for it. Well, you might be the only one using your project so don't tie the value of what is supposed to be a fun experience into having others using it too.
4. Start small
While choosing a project, you should not be too ambitious. As humans, it is natural to come up with a grand plan. Those grand project ideas sound like they are based around a motivating topic and they also intersect with your goals. But the difficulty of such projects is that they are far too big for you to complete.
In order to execute such a plan, a beginner will need to learn the very basics and advanced concepts of the programming language he/she is going to use.
Therefore it is much better to start with a small and simple version of your project and then adding more functions. If you don't adopt such an approach then it will take a long time before you get any sense of accomplishment from finishing and you might even give up halfway. By starting small and then improving, you're much more likely to have success after all, slow and steady wins the race ;)
5. Roadblocks and Difficulties
You've learned the basics of a programming language, completed a guided project, selected the perfect topic for your first solo project, and now you're ready to get started. After some time, you run into a problem. There seems to be something you don't know how to do! Another important factor to consider before selecting your project is that “you will definitely get stuck around roadblocks and face some difficulties while building your project”.
I guarantee you that this will happen and it is absolutely not the best feeling in the world after all no one likes getting stuck. But always remember that this is an “opportunity”. Such roadblocks are essentially where the learning actually happens. The key to solving these problems knowing how to research to get yourself around the roadblock and keep working while never giving up.
If you think that you are the only idiot in the world who got stuck with a certain problem, then fret not my friend. There have been countless people who got stuck with the same problems in the past. All you have to do is to be able to find the resources left behind by those people.
6. Searching for help
The key to being able to find help is constructing a search for information about a “general version” of what you want to do. Do not be specific as there are some good chances that you may not find what you want therefore being “general” is the best option.
Sometimes the exact question you google may bring you to a Stack Overflow question same as yours but remember, “Sometimes, not always”. Mostly you will end up with a similar question with some very helpful answers. Finding such general question types may be tricky but it is a very important skill that every programmer should have and they use it daily. Don’t get demotivated and practice your searching skills. If you can’t find anything helpful then you should break down your question in chunks and find answers to those chunks.
Most of your searches for help will end up in one of the following places:
• An online tutorial explaining exactly what you want to do.
• Stack Overflow (an online programming Q&A site) thread of someone stuck with the same problem.
• The documentation for the programming language you are using.
If you still can’t find any solutions, then post your questions on a place like Stack Overflow or any other community, where others might be able to answer your question.
Conclusion
I had been thinking about what to consider while choosing a project, therefore decided on proposing the above-mentioned guidelines to help you decide on what you are going to have fun, developing, next. There are a lot of us with skills to create something meaningful, that even if I get to help one person, it would be already a big win for me :)