I'm 20 and studying telecommunications engineering, so I already have a solid background in math and physics. After failing my exams last year, I'm currently at home with plenty of time to focus on learning. I recently got an older PC from a friend and want to take programming seriously, since it has interested me since I was a kid. I started learning HTML and CSS on W3Schools about a week ago, partly because I enjoy making simple websites and might eventually earn some money from them. My long-term goal, though, is to become a game developer, especially for 2D platformers, metroidvanias, roguelikes, and roguelites. What should I learn next, and which tools or programming languages would be a good starting point?
4 Answers
Focus on learning general programming concepts first: variables, control flow, functions, data structures, debugging, and object-oriented design. Python is a friendly way to practice, and you can make small projects with Pygame afterward. Once you’re comfortable, moving to C# for Unity or GDScript for Godot will be much easier.
Pick a game engine and start building small projects instead of staying in tutorials forever. Godot is a great starting point for 2D games and uses GDScript, which is approachable. Unity with C# is another solid option, especially if you want a larger ecosystem. Unreal and C++ are useful for certain professional roles, but they’re probably more complexity than you need right now.
I’ve settled on Godot for now. It seems fun and better suited to the kind of 2D games I want to make.
HTML and CSS are fine if you enjoy them or want to make websites, but they won’t take you very far toward traditional game development. JavaScript plus the HTML canvas can be used for browser games, though. For your goals, choose an engine and learn by making tiny games: a movement demo, a basic platformer, a simple enemy, and then a small complete game.
Think about whether you want to work independently or apply to studios. If you want a studio job, look at the tools used by the companies you’re interested in, since requirements vary. For solo development, choose the workflow that lets you create consistently rather than chasing the most powerful technology. Study games similar to the ones you want to make, but start with very small projects and finish them. Completing a simple game teaches more than endlessly following tutorials.

Python does look approachable, so I may use it before trying C# or another game-focused language.