Bob Geitz is a CS professor at Oberlin College, where I spent 4 glorious years, ending in 1994. Below is the text of an email that I recently sent him. I am posting it here for several reasons:
Bob,
I don't know if you will remember me (David Storrs) from your CS 101 class back in 1993, but you literally changed my life and I wanted to thank you.
I had always been vaguely interested in computers, but had never really pursued them; I wanted to be a writer. I had taken a few computer classes, but they put me to sleep. I admit, the only reason I was in your class was because I desperately needed to fill 3 credits and it was the only thing open.
That attitude changed mighty quick--it might have been the very first class, but it certainly wasn't more than a week. I remember having a literal epiphany; my outlook on the whole universe, my place in it, and my future goals shifted in a single moment, dropping into their new pattern with an almost audible 'click'. Suddenly I felt that the world was just a collection of challenges--interesting challenges, at that--, that all of these challenges could ultimately be resolved through logical analysis and proper application of resources, and that a single person could apply that analysis and make the world change...that maybe I could even be that person. It was incredibly exciting.
I have told this story many times over the years...the way I always explain it to people is to say that I realized "This is the most incredible stuff I've ever seen and I'm going to do it for the rest of my life." So far, that has been a true statement.
When I left Oberlin, I applied for a job in the computer department of a pension firm in Norwalk, CT. Due to a bureaucratic foulup, I got stuck in the Performance Measurement department instead. I stuck that job for 366 days because I wanted to have a full year on my resume. After that, I moved to New York City and got a job writing computer games. Since then, I have written web applications, finance programs, (cheesy) virtual reality, and a lot of back-end code for various companies, including {REDACTED}. Today I am a contractor; I currently pay the bills by writing {REDACTED} code for a company called {REDACTED} while, in my Copious Free Time(tm), I am writing an Open Source medical records product which I intend to turn into a business. I am married and own a house.
I am not being hyperbolic when I say that everything in the preceding paragraph (with the exception of being married) is thanks to you. Your teaching opened me up to something truly amazing that I had never recognized before. I am so very, very glad that nothing else was open when I needed to fill those 3 credits.
Thank you,
David Storrs
So, why did Bob's teaching make such an impact? In part, it was Bob himself...he was relaxed, easy to talk to, funny, and had an aura of competence. I have seen (something like) these attributes in most of the really excellent programmers I have known. I suppose it's possible that someone could be a top-drawer guru but have a burr in his boxers 24/7, but I doubt it. The only way to become a real expert in this field (IMHO) is to learn as many different things as possible, internalize as many viewpoints as possible, and find a consistent framework for all of it. It's very hard to do that except by talking to, and working with, other people and, to do that, you need to be the kind of person they want to talk and work with.
Aside from the personal traits, Bob taught me how to think logically and algorithmically. He demonstrated specific ways to deal with problems: either top-down (taking a big problem and breaking it into smaller and smaller chunks until it becomes trivial to solve each chunk) or bottom up (building tiny little pieces that are trivial to write and test, then combining them to do more and more until the problem is solved).
The epiphany, of course, came when I realized that these techniques don't just apply to computer programs, they apply to everything. Need to build a house? I'd start top-down; figure out what all the necessary tasks are, then decompose each task until it's trivial, then execute. Trying to fix a problem in your love-life? I'd start bottom-up; do something small, right now (offer a compliment, spend 30 minutes together, give a card), then do more and more small things until the problem is resolved.
I also learned, perhaps not directly from Bob but certainly because of him, that programming is a lot of fun. Even when the code won't compile and you swear the computer is laughing at you, it's still fun. You get to be creative and logical at the same time and you have the satisfaction of knowing that there is always more to learn, always room to improve, and it's always going to be new. You can top out in a lot of jobs, become as good as it's possible to be--after that, it's just boring. Or you end up doing the same thing, day after day. With programming, that doesn't happen.
The final thing that Bob showed me--and I doubt he remembers this--is the poetry of programming. As I said at the top, before I came to his class I wanted to be a writer. I loved the fact that English has so many nuances, so many connotations, so many shades of meaning. Programming sounded cold and rigid by comparison. And then, one day, Bob casually demonstrated that a for and while loop were interchangeable with just a little revision. I think that was the moment of my epiphany, the moment I said "I'm going to do this for the rest of my life." Such a small thing, to have such an impact; so obvious to me now, after a decade of experience, but fresh and wondrous then. The part I like best about programming is that I keep having those moments--which I guess ties back to that "always more to learn" thing.
The real problem, of course, lies in not expecting the rest of humanity to behave as logically as a computer. I'm still working on that.
Considered: BigLug: Delete. This does not belong on this site.
Unconsidered: ysth: enough keep votes - Keep/Edit/Delete: 37/3/19
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Thank you, Bob Geitz
by dragonchild (Archbishop) on Mar 11, 2005 at 02:18 UTC | |
|
Re: Thank you, Bob Geitz
by johndageek (Hermit) on Mar 11, 2005 at 13:28 UTC | |
|
Thank you, Whitehawk
by BigLug (Chaplain) on Mar 14, 2005 at 13:59 UTC | |
by Whitehawke (Pilgrim) on Mar 14, 2005 at 20:14 UTC | |
| A reply falls below the community's threshold of quality. You may see it by logging in. | |
| A reply falls below the community's threshold of quality. You may see it by logging in. |