@ChaosFarseer's absolutely right! :)
I think if you're coming at it from a programming background, you might (based on my observations of others) have a tendency to be in love with how smart a system is, how clean a back-end, how "clever" a technical solution was, even though none of these might be things that a player actually experiences. If you're really interested in game design, it would likely be helpful to keep circling back to what has the largest effects on a player's experience. Sometimes a technical solution is very much needed, but often it's not (at least not to test out whether your game idea's any good). If you ever take a game further than a jam, it's likely you'll want to do it over, better, anyway, so spending more time on exploring an idea and less time on techie stuff is usually best bang-for-time-spent.
That said, if you're doing it as a hobby, then just do what you enjoy! I'd suggest still trying to make things with the intention of showing your friends and having them play them, and keeping your projects small, but if what you're doing and what you're learning brings you joy, then keep going! And if you're not enjoying it any more, then find something else that excites you. :)