Maybe this is because I was very young, when I saw my first coin op; it was Space Invaders, from Taito. I was used to TVs, of course, but I was simply amazed by those little creatures moving on the screen: they were alive and kicking, they were interacting with you, the player, they were fighting back and you cannot simply sit down and watch – you had to act, quickly, to avoid being overwhelmed and defeated, moving another little sprite on the screen that was following your orders!
It was magic. And, from that very moment, I knew that I wanted to learn how to control that magic. From that very moment, I wanted to become a videogame programmer.
Developing videogames is both a fine art and a science. On the one hand, it gave me the possibility to unleash my creativity, especially in the computer graphics and electronic music fields. On the other, mastering assembly language, C/C++, complex OOP analysis and design was just the bare minimum, I had to learn physics (mechanics, global illumination, cfd), advanced math, artificial intelligence, digital signal processing, just to name some of the many skills required by the multidisciplinary challenge of crafting a videogame. All in all, even if I cannot consider myself one of the best programmer in the world, I can state for sure that I’m far more skilled than the “standard” guy who spends his life developing just ERPs and databases!