Getting started with C++
Hello, I was wondering what the best way to start learning C++ would be. I want to learn C++ because I have a big interest in gaming and how games are made. I know this will take time but I have a lot of spare time and would really like to learn C++. I currently know some HTML that I have learnt from college but they don't teach C++ so I was hoping someone could tell me the ways in which I could start learning it.
Do you have any prior programming knowledge?
C++ is just a language, just like HTML, Java, or Visual Basic.
The things that you want to learn are not C++, but game programming concepts.
I believe gamedev has a forum of people who can explain many concepts that you
would like to understand, including many articles of how to do things like collision
detection and such.
When it comes to game design, the language is a don't-care, because no matter
what language you program in, your biggest issues will be getting the libraries for
getting things done, like game engines, text processing, physics, drawing, loading and manipulating resources, and so on.
This is even more significant to understand because many of the current games are more worried about managing resources, maintaining modularity, and making sure you can fix bugs when they come up, rather than going "oh, why should I store 1 in an integer when I can store it in the first bit of a character to save space?".
In summary, you should focus more on what you really want to accomplish, resources needed such as text processing, game engines, and so on, and getting used to putting them together in a modular way without particularly making your code unmanageable while not knowing anything about the libraries outside of their general theories and assertions, and standard terminology.
Overall, you will learn far more by copying programs and getting them to actually compile, then building onto that knowledge, rather than learning everything all at once. This does not mean you will not come into situations when language itself does things you have not learnt about, and cannot combat it. Therefore you should have a good experience with language before doing things like this, or use a more high level language such as java which will immediatly notify you in most cases when you do something that you did not intend to do...
Hopefully this helped.
Get a book on C/C++ and download a IDE. I learned C++ years ago using Visual Studio. You can download a free copy of Visual Studio Express from Microsoft and start learning.
What kind of college doesn't teach C++? I'd honestly question the quality of your education. HTML is nothing like C++, but it's better than nothing. My school uses http://bit.ly/ToKyuh for our intro C++ class, and it's a pretty big book so if you're willing to fork out the cash it will get you pretty deep. Also look for older versions if they exist, should be dirt cheap.
Originally Posted by T.Smith
Sorry but you can't develop a game without hands on experience. Concepts can only do you so much. Good luck learning the concept of OOP without stepping up and trying it yourself.
Originally Posted by DELOCH
You're right as far as 'which language' but you have to start somewhere. You think game developers learn one language and a bunch of concepts? No, they get their hands dirty with an array of languages so they have options later down the road.
Originally Posted by DELOCH
I'd suggest you dive in with a language of your choice and just have fun with it. Learning C++ will be a bigger task than learning HTML or anything else web related but if you have a passion for it then go for it! (and consider changing schools :) )