Reading Brad Feld's Google AppEngine post and his experiment with different computer languages reminded me of a post I have been meaning to make. I have delayed writing it on purpose because I was in denial.
I'm not the guy you read about that has been programming computers since he was three. In fact I never touched a computer keyboard until I was about 20. However, from that point on I was completely obsessed with understanding how they worked, programming in nearly every language I considered real, even understanding how the IC's and firmware worked. I viewed the computer as one of the only toys that could make more toys. Computers were my spin-straw-into-gold machine. In college, although I never took a formal computer science class, I would regularly help CS students with their homework. Programming was easy for me, and there wasn't a part of it all that I was not fascinated with.
My first job out of college was at NASA programming and testing digital control systems on X-Planes. NASA afforded me the ability to completely shift my career to computer programming leaving electrical engineering in the dust. I sucked at electrical engineering. It was hard; it took me twice as long to do things as everyone else. By contrast, programming was easy – I could do in an hour what took others a day. I really found what I loved to do.
In the 15 years from age 20 to 35 I programmed all day, programmed more stuff at night, worked on the weekends on other projects. I read book after book and cranked through about dozen computers from Commodores, to PC's, to Mac's, to Sun Workstations (yes I had one at home), back to Mac's, and finally back the PC – oh, and back to Mac's. I wrote code on Sun OS, embedded operating systems, windows, unix, linux, minux, X-Windows, Cocoa and about 10 other environments you likely have never heard of. Programming was an obsession, it was relaxing, and no matter how different one project was from the next it was always in my comfort zone. In fact, it was so in my comfort zone that I never really felt like I needed a vacation. I just accrued vacation and kept working.
Then one day, like when Forest Gump's running, I stopped coding. I just got tired of it. Certainly the effort it took to transition to CEO from being CTO my last company gave me a lot less time to explore. Ultimately, one day I looked up and I was – just done. I haven't written a line of code in about 2 years, I haven't written any code for work in about 5 years, and I don't miss it at all – not even a little.
I'm not an obsessive personality (really), but after 25 years I have no need (at least now) to ever program again. I do miss the relaxing 'feeling' of writing interesting and pretty code. I always believed the best software engineers were a mix of left and right brain. Systematic yet creative. Well written code is like porn, you know it when you see it.
A friend of mine said being a startup entrepreneur means getting comfortable with being uncomfortable. I now feel like if I'm not uncomfortable then the edge isn't being pushed, stuff isn't getting done, opportunity is being lost, and success isn't being seized. Interestingly, vacations have become quite important to me, now. There has to be some kind of relief valve.
Programming was the fun thing that helped me find who I was. But, life goes on and you find new friends.