Okay can you guys make a list of what a programmer should know before tackling games?

Functions, pointers, polymorphism, inheritance...you get the idea.

What libraries too?