Seibel: Was he a programmer or a hardware guy?

Fitzpatrick: He was an electrical engineer; he dabbled in programming. Hetaught me to program when I was five and jokes that I passed him uparound six or seven. My mom says I was reading the Apple II programmers’manual from the library at the same time as Clifford the Big Red Dog. Insteadof “variables,” I would say, “valuables.” Some of my first memories areprogramming with my dad. Like he pulled me into the kitchen and he waswriting down a program on paper. He asked, “What do you think it does?” Iremember it was like, “10 PRINT HELLO, 20 GOTO 10.”

Seibel: So you started with BASIC?

Fitzpatrick: Yeah, that was BASIC. I couldn’t do stuff with the mouse, orstuff with higher graphics modes and colors, until a friend of our familyintroduced me to C and gave me Turbo C. This was maybe when I waseight or ten. My dad moved to Intel in ’84 and we moved to Portland. Hehelped design the 386 and 486. He’s still at Intel. We always had new, funcomputers.

Seibel: Did you get into assembly programming at all?

Fitzpatrick: I did assembly a little on calculators. Like Z80 on the TIcalculators, but that was about it.

Seibel: Do you remember what it was that drew you to programming?

Fitzpatrick: I don’t know. It was just always fun. My mom had to cut meoff and give me computer coupons to make me go outside and play withfriends. My friends would come over: “Brad’s on the computer again. He’sso boring.” My mom’s like, “Go outside and play.”

Seibel: Do you remember the first interesting program that you wrote?

Fitzpatrick: We had this Epson printer and it came with big, thick manualswith a programmers’ reference at the end. So I wrote something—this wasback on an Apple—where I could draw something in the high graphicsmode, and then, once my program finished drawing whatever it wasdrawing—lines or patterns or something—I’d hit control C and be typing inthe background, in a frame buffer that’s not showing, and load my otherprogram, which read the screen off and printed it.

Before that I remember writing something that every time I hit a key, itmoved the head and I had wired backspace up to go backwards so as I typedit felt like a typewriter.

This was one of my first programs—it was something like K equals grab thenext char. Then I said if K equals “a”, print “a”; if K is “b”, print “b”. I prettymuch did every letter, number, and some punctuation. Then at one point Iwas like, “Wait, I could just say, ‘Print the variable!’” and I replaced 40 linesof code with one. I was like, “Holy shit, that was awesome!” That was somemajor abstraction for a six-year-old.

Those are the notable early ones. Then in middle school I would makegames and I would make the graphics editors and the level editors for myfriends, and my friends would make the graphics into levels, and then wewould sell it to our classmates. I remember having to make games thatdetected EGA versus VGA. If one of ’em failed on VGA, it would fault backto EGA and use a different set of tiles that fit on the screen, so we’d have tohave two sets of graphics for everything. People from school would buy itfor like five bucks and they would go to install it and it wouldn’t work, andtheir parents would call my parents and yell, “Your son stole five dollarsfrom my kid for this crap that doesn’t work.” My mom would drive me overthere and sit in the cul-de-sac while I went in and debugged it and fixed it.

Seibel: During that time did you take any classes on programming?

Fitzpatrick: Not really. It was all one or two books from the library, andthen just playing around. There weren’t really forums or the Internet. Atone point I got on a BBS, but the BBS didn’t really have anything on it. Itwasn’t connected to the Net, so it was people playing board games.

Seibel: Did your school have AP computer science or anything?

Fitzpatrick: Well, we didn’t have AP C.S., but we had a computer programmingclass. There was a guy teaching it but then I would teach sortof an advanced class in the back. They still use the graphics editor and thegraphics library I wrote—their final project is to make a game. I stilloccasionally run into that C.S. teacher—he’s a friend of my family’s and I’llsee him at my brother’s soccer games—he’ll be like, “Yep, we still use yourlibraries.”

I did take the AP C.S. test. It was the last year it was in Pascal before theyswitched to C, which was one year before they switched to Java orsomething like that. I didn’t know Pascal so I went to a neighboring highschool that had AP C.S. and I went to some night classes, like three or fourof them. Then I found a book and learned the language, and I spent most ofmy time building asteroids in Pascal because I had just learned trig. I waslike, “Oooh, sin and cosin; these are fun. I can get thrust and stuff like that.”

Seibel: How’d you do?

Fitzpatrick: Oh, I got a five. I had to write bigint classes. Now that’s oneof the interview questions I give people. “Write a class to do arbitrary,bigint manipulation with multiplication and division.” If I did it in high schoolon an AP test, they should be able to do it here.

Seibel: Your freshman year in college you worked at Intel during thesummer. Did you also work as a programmer during high school?

Fitzpatrick: Yeah, I worked at Tektronix for a while. Before I had anyofficial job, I got some hosting account. I got kicked off of AOL for writingbots, flooding their chat rooms, and just being annoying. I was scripting theAOL client from another Windows program. I also wrote a bot to floodtheir online form to send you a CD. I used every variation of my name,because I didn’t want their duplicate suppression to only send me one CD,because they had those 100 free hours, or 5,000 free hours. I submitted thisform a couple thousand times and for a week or so the postman would becoming with bundles of CDs wrapped up.

My mom was like, “Damn it, Brad, you’re going to get in trouble.” I was like,“Eh—their fucking fault, right?” Then one day I get a phone call and I actuallypicked up the phone, which I normally didn’t, and it was someone fromAOL. They were just screaming at me. “Stop sending us all these formsubmissions!” I’m not normally this quick and clever, but I just yelled back,“Why are you sending me all this crap? Every day the postman comes! He’sdropping off all these CDs!” They’re like, “We’re so sorry, sir. It won’thappen again.” Then I used all those and I decorated my dorm room incollege with them. I actually still have them in a box in the garage. I can’t getrid of them because I just remember them being such a good decoration atone point.

After I got kicked off of AOL, I got a shell account on some local ISP. That’sbasically where I learned Unix. I couldn’t run CGI scripts, but I could FTPup, so I would run Perl stuff on my desktop at home to generate my wholewebsite and then upload it. Then I got a job at Tektronix, like a summerintern job. I knew Perl really well and I knew web stuff really well, but I hadnever done dynamic web stuff. This was probably ’95, ’94—the web waspretty damn new.

Then I go to work at Tektronix and on my first day they’re introducing meto stuff, and they’re like, “Here’s your computer.” It’s this big SPARCstationor something running X and Motif. And, “Here’s your browser.” It’sNetscape 2 or something—I don’t remember. And, “If you have some CGIs,they go in this directory.” I remember I got a basic hello-world CGI, likethree lines working that night and I was like, “Holy shit, this is so fun.” I wasat work the next day at six in the morning and just going crazy with CGIstuff.

Then I started doing dynamic web-programming stuff on my own. Maybe atthat point I had found a web server for Windows that supported CGI. Ifinally convinced my ISP—I’d made friends with them enough, or sentenough intelligent things that they trusted me—so they said, “OK, we’ll runyour CGIs but we’re going to audit them all first.” They’d skim them andtoss them in their directory. So I started running this Voting Booth scriptwhere you created a topic like, “What’s your favorite movie?” and youcould add things to it and vote them up. That got more and more popular.That was going on in the background for a couple of years.


Перейти на страницу:
Изменить размер шрифта: