How to choose tech projects
Some suggestions on how to find project ideas worth building
This blog post won’t tell you what to build, but will help with how to find projects relevant to your interests, skills or aims.
Benefits
Some projects or challenges in this post are just for the sake of solving a problem and growing, then you might never use look or look at that code again. Some will be projects you can actually continue to run or reference after you’ve finished writing them. Either way, these projects will help to sharpen your tech skills and problem-solving abilities by pushing yourself into using new tools or ways of thinking or solving a problem you hadn’t thought of or didn’t even know was a thing.
Why find new projects or code challenges?
They can help you to:
- Find what you are weak or strong at
- Give you a sense of accomplishment when you solve them
- Open your mind to different ways of thinking and multiple ways to solve a problem
- Focus on the logic rather than the syntax
- Solve tech problems in your own projects or work projects
- Improve skill and confidence when answering code challenges / technical assessments for job interviews. These come up often - I’ve been through typed, written and verbal challenges in interviews.
Code challenges
If you get bored and can’t think of anything original to build, try finding a list of code challenges to solve.
Some places to start:
- List of programming ideas, grouped by topic or difficulty.
- See the Idea Bag website and mobile app.
- Solve a code challenge daily.
- You don’t even to code it - even just thinking about it or talking to a friend about is great for pushing your logical problem solving abilities. You might have to investigate something about your choice programming language or research some libraries. Or maybe choose to solve the problem in a language in which you are less familiar, forcing yourself to lookup the syntax and think about a logical sequence in that language.
- Places to start:
- Daily Coding Problem website - This service will email you everyday for at least a year and will indicate the difficulty level
- 30 days of code challenge
- 100 days of code website
- 5 day coding challenge - 60-minute challenges
- See recent code challenges post and see solutions from others in various languages.
- See SoloLearn. I like the code challenges view on the mobile app though actually coding on a mobile device is not so nice so you might switch to the website on a desktop.
- Find mathematical and algorithmic challenges if you are interested in that.
- Great for thinking about scalable solutions in tech services with large infrastructure, such as a high volume website with millions of requests or database records to search.
- Go to a site like Project Euler.
Talk to someone
Some a problem someone else has. Whether practical or just made up and fun.
Ask a friend or colleague about a challenge in their life which could be solved with technology. Maybe there is an existing tool you can find and setup for them, or you can put together the ideas from a few tools you see and make something new. Maybe they just need to change their approach or lifestyle, rather than using a tech tool as a solution to the result rather than cause.
I sometimes get challenges from friends to make a game or website. Sometimes the ideas are ridiculous or too tough. Sometimes its actually something I managed to solved in an hour or day and they are delighted by it.
On originality
Also, don’t get stuck on being creative and original. Everything come from something before. A lot of programming is often just gluing existing tools together. Whether they are different Python libraries, or using a web server and database service to serve data you scraped. You have a unique background and community.
Maybe you can take the idea of Instagram but tailor it to dog owners or hikers. Or create a meetup and networking platform for tech people in your city. Or maybe just make a pointless and fun game or script which force you to learn some new skills and maybe you’ll use those pieces of code or skills in a later project.
No-code solutions
Often the best code is no code. Nothing to write or maintain. Get the benefits of another library or website service to downloadable tool which someone has shared or sells.
The problem you are trying to be solved has problem being solved in a similar way on a blog post or Stack Overflow and maybe exists as a library or script. You might have to tweak it or take the best parts from it - that’s the beauty of open source code.