r/learnprogramming • u/Paxtian • 19h ago
The "I don't know what to build" community support thread
There are always posts acknowledging that building software is the best way to learn once you know the basics, and then people asking, "But what should I build?" I'm hoping this thread can help with that.
In the comments below, briefly describe one to five of your hobbies. Even if they are well known, easy to understand hobbies, explain them like the reader is five. Describe what they involve, what tools/equipment/"hardware" they involve, how you measure progress, how you improve, what sticking points there are, what challenges they involve, what you're struggling with in them, or whatever else might be relevant. Try to keep this concise, but informative. Keep it to about one paragraph per hobby.
In response to those posts, others can say, "For this hobby, build something that does X." Try to make an easy, medium, and hard version.
So for example, let's say one of my hobbies is reading. I might describe it like this: "Reading involves selecting books, which tell stories, and reading them. Books are characterized by having an author and a genre. I have a lot of books I've read, some I've liked, some I haven't, some I didn't finish. There's not really an 'improvement' but some books are recognized as harder than others. New books are often recommended based on being from the same author as others a reader has read, or being in the same genre."
And a response could be something like, "Why don't you build a book tracking app. At the easy level, just track what books you've read. Put in the title, author, and genre, and whether you finished the book or not. Then give it a rating. Have it be queryable so that you can list all of the books you've read in total, or by author or genre or both. Maybe you could even put in the date when you read the book so you can track how many books you read per year, and at the end of the year it could list all of the books, when you read them, and your ratings. Medium level could be to build a nice UI for this that can visually show by month how many books you read, how many you finished, and your ratings. Hard level could be to build a multi-user book website that would track each user's ratings, but also source and group similar ratings for common books/authors, and provide recommendations between the users if they opt in to such recommendations."
As another example, "I like disc golf. Disc golf generally involves discs, which can be drivers, mid range, or putters. Drivers go the furthest, putters go the shortest, and mid range are between drivers and putters. Discs can also be characterized as stable, left-turning, or right-turning. I can track my progress in disc golf by tracking how far I can throw each disc, and whether I can get it to go straight, turn left, or turn right. I also track my progress based on golf scoring at various courses, lower scores being better. So I could see improvement either by learning how to throw further/more accurately, or by seeing my scores decrease at a given course."
And an app could be, "Easy level: just track what discs you own, how far you can throw them, and whether you can get them to turn left, turn right, or go straight. Mid level: track each course and your scores at each course over time, which discs you use on each hole, par for each hole, and your performance over time at each course. Hard level: do the same but for multiple users, share what discs are used at each hole (if the users opt in to allow their data to be shared), how far each person's discs are thrown, and a recommendation engine for new discs you might like based on other users' discs."
Let's help each other out!