Im 16 and have been programming Opengl for over a year now, and im pretty good at C and C++. I made a game over the summer. Ive been an active member at flipcode and here for about a year. Im at the point of graduating from a “beginner” to an “advanced”.
What advise would you give me to become a successful programmer? What would be the best route to take through my life so that I could become a great game programmer in the future?
My problem is with theories. Most of the stuff in the advanced board still confuses me. I think this is from lack of experience on my part. Where can I learn about vertex shaders, john caramack algorithms and such?
Mine advice are (I’m already passed the beginner->pro limit ;D ) :
Good math bases. Usually it’s better to start reading on-line tutorials for first (they usually are more practical than math books and so easyer to understand). As you start understanding something, switch to a paper book (try first university courses books).
You’ll never be able to implement anything by yourself ! (No, I’m not got mad). This means that, even from the most idiot unable sample/paper/source you can learn something, so read read read anything you can.
Never get frustrated. Start with simple projects, and write 'em as best as possible. “It is working” it’s not a good excuse not to continue optimizing it.
Focus on 1 subject at time, do not fall in the common mistake of doing you code, doing your graphics, doing your music, coding AI, coding engine, coding Networking. More specific you target will be, more the knowledge you get. Refer to point 3 to know when it’s time to stop on a subject.
- Hope to be lucky.
I study in the field and have never seen a clear cut from beginner to advanced to start with…
There is always something good to learn.
Do you know assembly? You could optimize your math libs with some mad assembly code!!!
Get a computer science or engineering degree to have a piece of paper to back yourself up, otherwise it will be very difficult.
Read books on software engineering, since they teach you how to manage team projects and things like those. How about trying out extreme programming techniques!
Learn how to optimize your code… A simple one that are not the most commonly thought of are loops. Dont perform a check in every iteration, use iterators!!! Start with something like that to optimize…
READ A BOOK ON THE C++ STL and linear algrebra!!!
Patience and practice.
Dont die over theory. Terminology??? Well, a lot of it is learnt from reading. It will come!!
Wanna work with vertex stuff??? I suggest you go to nvidia’s site. www.nvidia.com
p.s. You dont need to be gifted type of thing to be a good programmer. It is the effort you put into the art the of writing code that defines your programming skills most of the time.