At work, some of the software I develop uses a bytecode interpreter. And, as always, we need better performance from the whole system. So I'm looking into bytecode-to-native (in this case C++) compilation. I've done this before, with embedded Lisp-based languages and there are a number of compilers available that do this for Java (GCC has a back-end for this), C#, Lisp and its derivatives (Bigloo for Scheme, for instance). Compiling to C or C++ is great as it serves as a sort of portable assembly language and it's possible to leverage further the fine optimization skillz of modern C/C++ compilers. I'll report on this when I make some progress - if I don't get pulled off onto something else.
Wednesday, March 21, 2007
Tuesday, March 13, 2007
Confessions of a College Drop-Out
Numerous articles have been written about college degrees and IT careers. Here's my contribution.
I dropped out of UMKC in my junior year. It was a purely economic decision - I had a high GPA and I enjoyed school. Living at home and working my way through school making less than $8 an hour, I was broke. At my boss' urging, I applied for an entry-level job at Worldspan developing airline reservation software in assembly language for IBM mainframes. Worldspan's recruiters were skeptical, "with no degree, don't hold your breath."
Worldspan trained its engineers internally rather than attempting to recruit engineers with the required niche experience. They were filling their next class. To isolate candidates with aptitude for assembly language, they tested us. A week later they called back, "you got a perfect score!", and offered significantly more than I'd hoped for. It was a no-brainer.
Worldspan had the most effective and practical training I've encountered - either in school or at any other company. Training was a probationary period. As a result, the instructors invested heavily the class' success since failure to pass the instruction meant the trainee's dismissal. This contrasted strongly with my college experience, where instructors seemed often barely involved.
Shortly after starting at Worldspan, I met Rebekka and began spending all my time with her. We married about a year later, had our first child about a year-and-a-half after that. The question of going back to school is moot now. My school credits expired long ago.
Ryan Burkett once quoted someone who said, "The United States produces remarkably incompetent 21-year-olds and remarkably competent thirty-year-olds." It's an intriguing statement that rings true for software development.
Could I have finished my degree while working a full-time job, married and with kids? Sure, but it simply didn't make sense. Once employed in a good software development job, a bachelor's degree wouldn't make me any more money. In software and IT in general, experience rules. It has been years since I've been asked in a job or consulting interview if I have a degree. Electronic Arts offered my current job before I filled out the official application where I disclosed my level of education as High School Diploma.
For sure, a college degree is a valuable asset. The good news is that the lack of one does not necessarily spell failure.