Carmack the Student
FS: Less about organization then, what about a boss as a teacher? Is there anyone from whom you feel you could learn from?
John: I actually learn things from almost anyone. This is one of the major differences between me as a teenager and me now. My views as a teenager were that "I am smarter than all these people around me, and therefore I will completely ignore anything that anyone has to say." I went through a couple semesters of college classes like that. I look back on it now and realize that I was not treating things in the right way. Yeah, maybe I was smarter than the professor but it didn't mean that there weren't things I could learn from him.
The way I go about things now is that everyone I work with in the programming level I learn something from. I can look at the time I spent with Brian Hook. I learned some better C coding standards and stricter use of struct and const that I wouldn't normally do. That's been a positive thing that I've improved on because of him. And then there's Graeme - I'm seeing him put some things together very quickly from the Java libraries - things that I would have rolled from scratch and taken longer to do.
So it doesn't take someone that's necessarily a "better" developer or programmer for them to have things that you can learn from; that's a really important lesson that I've learned over the last decade. There's knowledge waiting to be gained all around you in just about everything. There's benefit to putting yourself in an information rich environment like a university IF you've got the right attitude. If you're looking for anything to be learned from anywhere you can get it, rather than looking for the one "motherlode" of useful information where you've got everything together. You have to glean things. You have to be able to grab things from anywhere you can get it.
During the development of Quake when we hired Michael Abrash, I was really psyched about that because I learned a lot of my early PC programming skills - assembly language and graphics - from his articles in Dr. Dobbs. So that was really great to bring him on. I did pick up some further things from him but it was interesting…it was almost uncomfortable for a while because he got fairly deferential on the programming side to me about things. Michael knew an immense amount of stuff, but I've still been on this very quick learning curve.
So almost all the programmers I've worked with, I've learned something from.
FS: OK you mentioned gleaning things from the world around you. How about non-technical sources - recent books and movies.
John: My favorite book in recent years has been A Deepness in the Sky by Vernor Vinge. As far as movies go, I'm not sure what I'd say is really inspiring. I see most of the reasonably good movies that come out. Toy Story 2 was wonderful - I really enjoyed that.
FS: The Matrix?
John: Matrix was wonderful. All the great sci-fi, action movies and everything. I'm not too big into deep meaning movies, I go to movies for entertainment and a lot of that basically plays out in our games also. We are kinda the Arnold Schwarzenegger movie of computer games.