Engine Programmers are mainly concerned with 3d graphics programming. This basically means they program the things that draw the graphics onto the screen. Competence in 3d mathematics and a good understanding of physics are vital to be an engine programmer. Game logic programmers, like myself, are concerned with the inner workings of the game. For example the code that makes the creature in Black and White decide what to do, and where to go.
Programming is about problem solving.
As a programmer you have problems created by the game design, and you find solutions to achieve goals. Programming is not purely about completing set tasks, it is also coming up with new creative solutions for the problems that arise. Generally there is no specific correct approach to take, so it is important for a programmer to be creative, to create elegant solutions, and push the game technically forward. While this may sound complex, it is excellent fun. You can draw inspiration from other members of the team you are in, and are constantly having mental exercise which is a real buzz.