Do you ever feel depressed because there is a vast amount of information that is required with programming? And it feels as though the more you learn the more you realize you don't know... |
You don't really need to know that much, you just need to know the basics and then know how to learn on demand. Generalists tend to know a lot, but not be an expert at anything. Most of the time you're better off learning the fundamentals and then specializing. Don't be discouraged by people on the internet who seem to know every obscure detail about everything. Most of them are just trying to show off and or are just being googles middle man, and ultimately they're just wasting a whole lot of time doing it.
Even if you think you know a lot, you had better at least brush up on what you think you know before applying it.
The point of most advanced courses is not to memorize a bunch of knowledge, algorithms, or math. The point is to learn what's out there and to recognize when your problem can be solved well by some method. You don't know how to use the method off the top of your head, but you know it exists, and you have acquired the skills to find the details on the internet or in the library, and then implement it yourself to solve your problem.
And even some of the fundamentals are not so important to know in detail. For example assembly language. In some niches this is very important, like compiler design, but for most programmers, just know the basics about how it works in general is more than enough.
The things you need to know and get good at are generally timeless, and mostly this is just learning how to learn and find information, getting good at being systematic, understanding different programming paradigms and design principles, and different approaches to the software life cycle, being pragmatic, and all of the things that come with general programming experience. Everything else such as libraries, languages and frameworks , change constantly. Those things you can learn on demand when your project or job requires it. Good professionals will keep up to date on what's out there, what advances have been made, etc, so they can recognize when something that exists already can be useful, and so they can be wise about preparing for the future in their work. And as simple as it sounds, one of the most important skills is being patient and being good at following instructions.
I am possessed by wanting to make a game I don't care how long it takes me or how hard it is going to be but I will not be "happy" with myself until I make something that resembles a platformer in directX |
Striving to achieve this goal will be a good learning experience ( although I would recommend you use something like SFML or SDL to do this instead of directX directly ). But you should go about this in a smart way. It's the journey, not the destination. Take your time, and have fun with it.
AND THIS CAN NOT BE STRESSED ENOUGH, BE HAPPY WITH YOURSELF WITH EVERY LITTLE IMPROVEMENT, EPIPHANY AND POSITIVE STEP YOU MAKE. And, make sure to try and learn the critical methods and tricks that people use along the way. This is the important thing, not that you complete your game. Save your masterpiece for when you are seasoned and ready.
Also, you will find that making a large scale game that people want to play is very time consuming, and most likely nobody will care about it anyways except yourself. Or maybe you make some simple game that goes viral? But don't think you are going to make the next generation MMORPG or FPS by yourself; you would be wasting your life.
Last, because video games are so popular, many many people go into programming strictly because they want to make games. This is fine, its just that the majority of them don't end up game makers, and even if they do get hired by a game studio, as a programmers, what you will be doing is a whole lot of programming. If you want to be a game programmer, you should also consider whether you love programming, not just video games, because that is how you would be spending your time. Otherwise, there are other jobs besides programming you might be able to do that may give you an actual opportunity to be involved in the design of the game besides being a programmer. Either way, game dev jobs are hard to get, you have to be talented, and be ready to be abused and underpaid.