So, you've decided to take this time in quarantine to learn to code, and now you need some projects to practice on? Cool beans, here are some ideas to get you started. This is going to bias towards web development, just because that's what I do, but these ideas should work just as well for desktop and mobile development.
- Talk to family and friends about problems they need solved. Does your mother need some way to digitize and organize her old recipe cards? Would your uncle like some way to play euchre with his friend across the country? How hard would your baby brother giggle if you made a Discord bot that just responds to any post that includes "69" with "Nice."? If you have an actual human problem that you're solving, you're more likely to actually see it through to completion than if you just have a piece of homework that you can shelve as soon as you think you've learned enough. No I do not have a dozen unfinished projects cluttering up my Github, why do you ask?
Create a CRUD app. CRUD, for the ignorant, stands for Create, Read, Update, Delete, the 4 basic operations with databases, and refers to anything that can be reduced to messing around with a list of data. These apps include, but are by no means limited to,
- A website that shows a random joke/fact/cat picture from its database on each view, and optionally includes a permanent link for each item so users can share them with friends.
- A journal app, optionally including push/email notifications to remind your user to make an entry for the day.
- A budget tracker, possibly attaching to bank APIs to read the day's transactions.
- A catalog of the media in your collections, optionally interacting with to eg IMDB to properly identify your media.
- A workout/diet tracker, optionally including analysis of each day's caloric and nutritional intake.
- A poll/survey site, optionally including stats/charts and the ability to create new polls.
- A recipe database, optionally including search-by-ingredient capability.
- Implement a (simple) game. Obviously this one is going to be largely up to you, but the less you have to track, the simpler the game is to implement, particularly if you don't have to track it in real-time. For optional challenge, you can include a leaderboard, a better AI, a human opponent.
- Clone your favorite website. A lot of websites, including Twitter, Spotify, Github, Reddit and others, have semi-public APIs you can access to make your own clones of their website. You can also build on those APIs to add your own special features, like a list of your most-played songs on Spotify.
- Create a form-filler. The classic example here is a resume generator, where you enter your name, experience, education, etc, and get out a neatly formatted resume in whatever layout and format you need. You can also use this sort of thing for making RPG characters, planning a build in a computer game, or possibly even doing your taxes, although I would advise caution on that last.
- A drawing app
- A real-time chat app
- Something with image manipulation, like maybe a meme creator
- A timer app, either as a simple stopwatch/alarm clock, or for Pomodoro purposes
- A forum engine
- A blog engine
- A calculator, scientific or otherwise. This may interact with the form-filler above, if you need to work out how much HP an orcish barbarian gets from one more point of constitution.
If none of these ideas really speak to your very soul, you can search through the "ideas", "project", and "projects" tags here on DEV.to to find other ideas you like better. Happy coding!