The best strategy in my opinion is to build something that aligns with some of your hobbies or favourite things. Do not attempt to "solve a problem" or "do generic exercises", build something that ties up with something you already enjoy. For example, if you're into some kind of sports, build a software that helps you keep track of it. If you like cooking, build a recipe tracker. You know the gist. By building someth…
What if anything I can come up with that aligns with my hobbies has already been done?
That depends on what your goal is. If your aim is to learn the programming language, code up that program/task/tool even if someone else has already done it.