If you starting with programming (of any kind, especially game programming,) avoid online tutorials as a source of reference as far as possible. I am not talking about online course-ware offered by institutes, I am referring to code snippets and short tutorials that show small but very attractive demos which could be easily mistaken by a newbie as his launchpad to the next Crysis. I too was guilty of these very things in the past and it’s after having been down that road you realize that some of the things taught were not the correct way to learn those things. The problem with online tutorials is, most authors who write these tutorials have little clue on how to tutor and/or present learning material. While their intentions are Nobel and the authors themselves do have a grasp on the topic (at least some do), it doesn’t necessarily translate into a great learning experience for a beginner. There may be exceptions, I am not saying all tutorials are bad. However such tutorials are far from being productive for a beginner. In fact, I would say they are actually counterproductive. As I have often found, the main focus in such tutorials is mostly on what the author himself knows and in worst case these issues could be totally irrelevant or not as important from a beginners point of view .
Lets make a distinction here. It’s not that tutorials are bad, it’s just that they are not meant for a total beginner trying to get his/her “feet wet” with the subject. They are often excellent resources to put ideas across, or to demonstrate advanced topics on a subject to an audience that has a fair amount of experience on that subject. The best way to begin learning anything is to go to your nearest book-store or Amazon.com, find the best book on the relevant topic and invest some money into buying it. Those books are rated as the best in their class for good reason. It’s because people have previously used that material and have actually gained knowledge after having read through them. A lot of painstaking effort goes into creation of a good book and a lot of experts review it before it hits the shelves, at least this is the case with most good ones out there. Start with chapter No. 1 and read through the book step-by-step even if the examples and material might look downright mundane. By the time you’ve finished with it, you would would have gained more all-round knowledge regarding the subject you were trying to learn than if you had referred to some online tutorial.
hello mr.susheel,
some pieces of very good advice for novices. e-tutorials are very good if one has some basic idea on the subject and knows what you are exactly looking at (which is hardly true if you are a novice). on the other hand, subjective books always give one an unbiased, in-depth and tested knowledge on the subject.
i’ve tried online tutorials at various stages of my academic carrier.they are concise and to-the-point, but a book always deals with a topic from various angles, plus any additional relevant information.
finding information on the net is becoming easier everyday (earlier google, now stumble) but i don’t think there will be an alternative to a painstaking walk to the nearest bookstore or the dusty library any day if one wants mastery on the subject.
Do you have a recommendation for a particular book?
@Omi
My answer would completely depend on what you are out to pursue, the platform you plan to target and your level of experience (in programming/graphics). Are you trying to learn game/graphics development, or are you looking for programing books in general?
If you are a total novice at programming. Then I would seriously recommend learning at least some programming before you jump in and start making your first game. My recommendations would C# or Python as first choices if your final aim is to become a game developer.
If you have dabbled with programming and are a beginner at game development, and intend to pursue game development then I would recommend XNA and C# for windows and Pygame of any cross platform development.
I myself began with C++ (a long time back) but I would not recommend beginners to take that language up as a first choice. Maybe later on when you have some experience with the above mentioned ones, it maybe good to look at C++.
If you are already a game developer looking for specifics like graphics and cutting edge game related stuff. Then you should look at the Game Programming Gems series, GPU Gems series (two of these are free, refer links in the “Blogroll” on your left) and the ShaderX series. They are advanced books and not recommended for anyone who hasn’t had at least a year’s worth of experience in games and graphics.