I've been writing code of various complexities since I was in 9th grade, starting with learning to punch Hollerith cards to program an IBM 360, and later BASIC on a TRS-80. Since then, I've written data analysis routines in FORTRAN, Object-oriented configuration management routines in Perl, control scripts in bash, learned Java on the job to write still more configuration management tools, and now I am learning MVC tools in Ruby/Rails. Occasionally I've even dabbled in (shudder) even a little C/C++ (when I needed to fix a bug in the Ubuntu OS that was keeping my wireless antenna from working, and when I needed a bridge to JNI from C++).
I'm trained as a physicist, did a lot of work on configuration management tools for a large player in the EDA industry, and now write code to manage a system in the logistics industry.