|
When I was an idealistic 18-year old heading off to Harvard, my plan was to become a renaissance man. I figured I was great at all of my school subjects, played violin, and wrote poetry. So to put my plan into action, I decided to major in the hardest subject -- physics -- and to make sure to take lots of fascinating humanities classes. By the time I graduated, knew a bit about physics, a lot about English poetry, and I was a pretty decent painter and printmaker. Being totally confused as to how to turn this into a career, I did the natural thing, and decided to get a Ph.D. in physics.
After the struggle of being a physics major at Harvard, physics grad school at SUNY Stony Brook was shockingly easy. I passed both halves of the comprehensive exams on my first try, and basically breezed through my classes. I started working in a lab, doing research polarizing hydrogen atoms with microwave radiation -- and hated it. The prospect of laboring 5 years for an arcane scientific result was unbearable.
So I packed my belongings into a Ryder truck, and moved in with my girlfriend (now my wife) in Chicago. It was there that I got my first job as a professional programmer, at a small company called Critical Concepts. The idea of this company was to create a human physiology simulator. They were looking for their first hire, someone with strong math and simulation skills who also knew how to program.
Back at Harvard I had taken a few programming courses, one on data structures (in Pascal) and one on scientific programming (in FORTRAN). The skills I picked up in those courses were handy in my college senior project (simulating atoms in an atom trap), and for various grad school projects (e.g. controlling lab equipment using GPIB.)
What really stunned me -- and my employers even more so -- was how fast and productive I was as a programmer when I dedicated myself to it full-time. They expected me to produce a small prototype to prove feasibility for a product. Instead, in six months I completed a medical education product that we were able to immediately shrinkwrap and sell. This early success guaranteed that we could raise the funding to broaden our development efforts, and hire a team to produce a whole string of simulation products.
The most important lesson I learned through this transition is that I am basically a "make things" person, not a "learn things" person. It's true that I love the process of studying and learning. But what really gives me a thrill is creating something that wasn't there before.
Software development provides the same kind of fulfillment for me as painting and poetry. In writing software, you can create the most complex systems of thought. But rather than pure thought or philosophy, it can result in something useful, something that people like and use. I'll never forget how good that felt, the first time someone paid money for my software! Ever since then, I've been hooked.
|