Originally Posted by AngeloG.
I've no problem studying, I'm just struggling to understand the route I must take.
Here's the route I took, everyone takes their own route but you'll get the idea of what I went through:
Started programming with QuickBASIC when I was about 7-8 years old. Very simple stuff like text based calculators. Around 12 years old I decided to try C++, and did some very simple stuff in that, like text-based adventure games. Around 16-18 I got a book and learned a good deal more, but I still wasn't far into it.
When I was 21 I went to college for Game Software Development, focusing purely on C++. After freshmen year I'd taken Basic Programming (variables, functions, arrays input and output, etc), Intermediate Programming (object oriented programming, containers like stacks, queues, link lists, etc), Algorithms, and some other non-programming classes like Linear Algebra, some science and English as well.
This was accelerated classes by the way, so no summers off. 2nd year started immediately after the first with a class on developing 2D games in which we learned how to use spritesheets, pixels (all games had been ascii up until this point), and frames (ascii games are event-based, meaning they don't need to refresh until some character moves, whereas pixel based games generally render many frames per second). Next class was 3D rendering, most difficult class IMO, and graphics programming is still a weakness for me til this day. It was at this point where I took up teaching myself C# and XNA at home so I could accelerate my learning, and boy did it work. I learned more about how to make a real game in a few months then I had learned so far in school. Of course school had given me the foundation, there's no way I would've learned C# in a week if I hadn't taken 1+ years of C++ so far.
From this point on school continued with some more mundane classes like compilers, and I continued to learn much more with XNA at home. I got together with a group of other students that were on top of their game and started making a game in our spare time for good practice. We ended up getting to demo the game at a convention, and it got a local gaming company interested in doing some mentoring at our school. This "mentorship" was going to be where students from the school make a game and demo it to the gaming company. There were 10 people selected for the group, 4 programmers, my whole group that had worked on the game we presented and 1 other programmer we selected, the rest were artists. By this time we were a couple of months into the 3rd year of school.
Over the next two months we all worked on a game with XNA in which we learned quite a bit and we ended up finishing the game and presenting to a company called NetDevil (which is now Gazillion Entertainment). The demo went extremely well, and the mentor from the company recommended me for a position at the company once I was closer to graduating. I ended up applying for the job 5 months before graduation and got a job there 2 months before I graduated. Over the next 9 months or so I talked them into hiring two more programmers from the same group that presented.
So began my journey in the game industry. That's my story from 8 year old kid starting with calculators to having a job in the gaming industry. But if we break it down it's really like this:
1.) Started with some simple programs in QuickBASIC
2.) Dabbled with C++ for awhile
3.) Got serious with C++, non-stop for a year or two, learning game concepts along the way.
4.) With a solid foundation of C++, starting messing around with C# and XNA, which was the best thing I could've done.
5.) Continued learning C++, and C# w/XNA, learning a lot about how games work, made some cool stuff, got a job because of it.
My recommendation for you would be to continue with C/C++ for a few months until you get the hang of it and from there I would honesty recommend going over to C# and XNA for making 2D/3D games. XNA handles most of the basic annoying stuff like window creating, and getting your directX setup, and getting calls each frame with elapsed times. If you focus on games and the concepts behind off of it you'll learn the important part and then you can go back to C++ if you need and learn how to do the windows setup there.