Well you probably know this already, but, some general programming advice:

1. learn object orientated programming (if you're using an object orientated language), NOT procedural programming in an object-orientated language. Of course, knowing procedural programming is pretty much essential in itself, but do know the different 'âparadigms of coding and when to use them. Learning how to program is different from just learning a language.


2. Document your code: you have to understand what everything does a year from now, at least, write what your code expects as input and what it gives as output: be complete and write in logic code if possible. This is the part about programming I really hate, but i've seen the benefits...

3. write simple tests for pretty much every function you implement, and keep running them when you change or add things. Correcting a 'completed' program is a *****, even correcting one class can be a huge undertaking. Intermediate testing will save you time in the long run.

4. Have fun ! Don't start a big project where you will only see the results years from now (it takes a year for a modern 3D engine to be build I think, and those are done by experts). Start with little projects and work your way up, or divide a bigger project into little pieces that have results of their own (like a graphical representation, a basic form of abstract game mechanics, a data handling system, input interface, etc.).

Good Luck !