I'm learning programming and can come up with small projects for practice, but I struggle to think of larger projects that could keep me busy for several months. How do experienced programmers find those ideas? Do they solve problems from their daily lives, combine programming with their hobbies, improve an existing tool, or get inspiration from somewhere else? Is finding worthwhile projects mainly a matter of experience, or is there a practical process for discovering and developing good ideas?
4 Answers
Look for problems and inconveniences around you, especially repetitive or tedious tasks. Ask yourself, “Could I automate this?” or “Could this work better?” Ideas often come from something you personally need, such as a custom tool, a hobby-related application, or a small improvement to software you already use. You can also build your own version of an existing product to learn how it works; the goal doesn’t have to be inventing something completely new.
Keep an idea list. Write down anything that sounds interesting, even if it seems impractical, and review it later when you have time or new skills. Ideas tend to become clearer after they sit for a while. It also helps to choose projects based on what you want to learn—web development, game networking, interpreters, automation, or another area—because the learning process itself can provide direction.
Most large projects don’t begin as large projects. Start with a small, achievable version—something you could finish in a weekend—and then expand it when you discover useful features, technical challenges, or ways other people might use it. A computer-vision experiment, for example, might gradually grow into a platform with multiple models, input types, and deployment options. Keeping the first version small helps you avoid losing motivation before you have anything working.
Experience makes it easier because the more life and programming experience you gain, the more problems you notice and the more realistic your project estimates become. If you’re stuck, ask friends, family, classmates, or coworkers what tasks frustrate them. A simple tool that makes one person’s life easier can become a substantial project once you add authentication, storage, synchronization, a user interface, testing, and deployment. Define a small first milestone, then let the scope grow only when the earlier version is useful.

Related Questions
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically