Define an external deadline and work towards that. Knowing the work required to build a feature only really comes from experience, and right now gaining experience should be your priority.
So find a game jam or anything with a hard deadline, decide "I'm going to make X", and work towards building that. Chances are you'll only be able to build half of X, or a quarter of it, and that's totally fine. Just make sure that you finish something by the deadline, even if it isn't what you envisioned. And when I say "finish", I just mean have a complete gameplay loop: start > play > succeed/fail > repeat.
You'll quickly discover stumbling blocks and will have to choose how to deal with them. Bash your head against the wall for a bit and then move on. Reduce scope until you have the simplest game you can possibly make. Just make sure that it works.
This way you are focusing on learning the tools, not mastering them. Build a few games with wildly different mechanics and before you know it, you'll find that the common elements like audio, UI, level management, player stats - whatever - become easier to handle and don't hold you back from doing the "fun stuff". Or maybe you'll find that you actually love doing UI and handling stats, and before you know it you've built a management game!
I also recommend that you create micro-projects to test a single thing you have in mind. Ask yourself "how do I implement a text popup that shows damage dealt?" and make only that.