I'm 16 and have been trying to learn programming since I was 12. I started with Scratch, then moved to Python, Unity, Godot, and CS50, and I'm currently learning C after watching programming videos. My main goals have involved making games, but I keep switching languages and tools whenever I get stuck. For example, I abandoned Unity because I couldn't figure out how to rotate an object toward the mouse, and game development sometimes becomes difficult because of the math involved. Now I don't know what projects to make, and even when I do start something, I often quit because of a small obstacle. How can I choose a direction, find manageable projects, and develop the persistence to finish them?
4 Answers
You may be dealing with both 'shiny object syndrome' and giving up when the difficulty increases. Try setting a fixed rule: one language, one framework, and one project for a specific period of time. When you hit a problem, research it, make a tiny test program, and return to the project. Not knowing how to aim an object at the mouse is a solvable programming question, not a sign that the entire tool is wrong.
The biggest issue seems to be switching tools instead of spending enough time practicing one of them. Pick a language and a project, then commit to finishing something small. If you want to make games, follow a tutorial once, then put it aside and create your own simple version. Getting stuck is normal—programming is largely the process of figuring out things you don't know yet. Treat each obstacle as part of the work rather than a reason to restart.
Watching someone create impressive projects can make it seem like you need the same advanced setup immediately. Instead, choose one small project inspired by something you've seen and recreate a simplified version. The practice of building, debugging, and finishing will teach you more than searching for the perfect language or project idea.
Start with projects small enough to finish in a few days: a calculator, text adventure, guessing game, command-line utility, or a basic 2D game. If game math feels overwhelming, strengthen your arithmetic, geometry, and trigonometry while making simpler projects. Python with a beginner-friendly 2D library may be easier than C for learning the fundamentals, but the most important choice is one you will actually stick with.

I also worry about code structure. I don't want the whole program to end up inside main, and that makes me want to switch tools again.