View  Info
 

Podcast 012

Intro, advertising

[01:02]

Atwood: I've heard of this "podcast" thing. I think we should get on top of this hot new trend.

Spolsky: [giggles]

Atwood: While it's still cool and all.

Spolsky: Ok.

Atwood: Yeah. So this week was a short week...

Spolsky: It was?

Atwood: Well it was for me cause I had a vacation thing.

Spolsky: How?

Atwood: I went to Iowa with my wife.

Spolsky: What's that thing they say now? You're not doing it right. [chuckles]

Atwood: What do you mean?

Spolsky: The vacation.

Atwood: Oh wow.

Spolsky: Hawaii, even San Diego if you're in California: it's close. Um, the Caribbean, Europe, Australia...

Atwood: Well this was a family, this was a family thing.  This was one of those required events.  It was in Des Moines.  It was nice.  I mean, Des Moines, nice.  It's got a really nice Fifties-style architecture there, it's not a bad place.

Spolsky: [laughs] Fifties-style architecture?

Atwood: [laughs]

Spolsky: Sounds like a, like a real thing.

Atwood: It's off the beaten track.  I like Americana and I like people from the Midwest.  My wife is from the Midwest.  They're actually very very nice people.  Uh, but one thing that happened to me while I was flying out is I'd forgotten how difficult it is to actually work on an airplane with your laptop.  It's pretty much impossible.  I guess unless you're in first class or something.

Spolsky: You have to have the X, like the IBM X series, the really small ones.

Atwood: Well mine is the [Dell] XPS 1330 which is an ultra-portable. It's like a three pound laptop, it's a thirteen inch screen.

Spolsky: That should work.

Atwood: Well it should work. But the people in front of me reclined, and I gotta tell you, it's really... you're allowed to recline, right?  It's a built-in feature of the airplane, but it's really hard not to resent the people who sit in front of you who decide to recline.  Because...

Spolsky: Yeah. It's just not fair on a short flight.

Atwood: [laughs] Yeah. Yeah, so that was awkward.  But I did get to actually work on some StackOverflow code, believe it or not, while I was on the plane.  A few little minor things I checked in.

Spolsky: All right!

Atwood: Yeah. Yeah. Subversion has really good offline support, which is really nice: easy to appreciate that on an airplane.

Spolsky: Have you ever heard... wait, Subversion has what? Huh?

Atwood: Offline.  Subversion has a very good offline client.

Spolsky: It does?

Atwood: Yeah, yeah, oh yeah totally.  Yeah, as long as you're not trying to check anything in.

Spolsky: Oh! Well then you don't get the benefit of source code control while you're disconnected.

Atwood: Well, yeah... that's a good point and I think that's one of the things about the distributed version controls, that they sorta, sorta get you on the right path.  It's like they're versioning everything you do.  And if you think about what's happening, it's like "Well, why not just version every time I save the file?"  Right, internally, and just give me like an audit rollback of every... you know, kind of like the "undo" buffer, that's in Windows?

Spolsky: Uh, yeah, but there's points, there's certain points that you want to declare as, "This is a major point, I'm about to do something crazy, I may want to go back to this restore point."

Atwood: Sure.

Spolsky: So you want to be able to establish that one of those particular undo points is more significant than all the little undo points.

Atwood: Well sure, sure.  But I think all those little undo points can be useful at times too. It's like on a computer, you know, computers have like so much space and power, it's like, "Why not just track everything I'm doing?"

Spolsky: Yeah.

Atwood: Not necessarily check it in, per se, but give me like a local audit trail that's like written to disk, it's not lost.  You know, cause Visual Studio's undo is great, but it's like, it's only like per file and if you close Visual Studio or Visual Studio crashes you lose your undo buffers.  And things like that.

Spolsky: Absolutely.  While we're talking about laptops on planes, have you ever heard of undervolting?

Atwood: I have.

Spolsky: You have?

Atwood: I do that.

Spolsky: You do?

Atwood: Uh yeah.  Well, I'm a hardware, you know, enthusiast.

Spolsky: I thought, here I thought I had discovered something nobody else knew.

Atwood: [chuckles with pride] No, undervolting is really cool.  That's just a way um, so power usage of a chip is like the square of the voltage.  It's also related to speed, obviously, like a five gigahertz chip.  But it goes up like much more, it tracks much more strongly to voltage.  So you can get huge power savings by reducing the voltage at which the chip runs.

Spolsky: Yeah.

Atwood: And overclocking, overclocking and undervolting are related because in overclocking you typically overvolt, which means you give it higher peaks, so the ones are higher and the zeros are... lower [chuckles].

Spolsky: [laughs]

Atwood: I know that's not the best technical term.

Spolsky: [laughing] So you've got a one then a two.

Atwood: Well exactly!  It goes up to eleven.  But what it does is when you juice the chip, it's able to usually sustain higher clock speeds than it normally would.  So the risk with undervolting is you could destabilize the chip at its default voltage.  But Intel usually is so conservative with these things, with these settings, usually you can under or overvolt them at least ten or twenty percent without too much danger.

Spolsky: Well here's how I discovered this: so I have a MacBook, the little one, Air, the MacBook Air, which I got because the old MacBook... well, I got it because it was sexy, but actually I got it because the old MacBook Pro that I was using was just getting really really hot in my lap and it was heavy and it just wasn't a nice way to watch video, to watch either downloaded movies or whatever.

Atwood: Right.

Spolsky: And you know, sitting in the living room.  So I got the Air because everybody said, "Oh, cooler, lighter, smaller."  It was true it was not cooler and in fact the first phenomenon I noticed is that the videos would play for about five minutes and then just start stuttering like crazy, like you'd get one frame per second all of a sudden and it just, the audio wouldn't keep up with the video.

Atwood: You know it's funny you mention this cause on my laptop I had Podcast number one, and I was just listening to it to compare sound quality and stuff and you actually talked about this cause I remembered talking about that.  And you actually did mention it on podcast one.

The reason I was thinking about it cause on Twitter, Wil Shipley was complaining that he has an Air, and he had to blow on the back, on the bottom of it, to get the second CPU core to come back cause...

Spolsky: Oh! Ok, ok, so I have...

Atwood: It was like a Nintendo cartridge, where you have to blow on the cartridge before you plug it in. [laughs]

Spolsky: See, I can't get Wil Shipley, I'm trying to find Wil Shipley.  If any of you knows Wil Shipley, please tell him to call me because we want him to speak at our conference and I have about a thousand things to tell him.  And one of them is, [laughs], that I have the solution to the MacBook Air problem.

So it was the video was... and then, and then somebody said, "Hey check if the CPU's overheating or something," and I found a little monitor that lets you put the CPU usage indicator in the menu bar so it shows the percentage load on each CPU cause it's two cores, it's like two CPUs.  And I started running that and I noticed that whenever the video was stuttering that was because one of the cores was shutting down.  And then I, at first I assumed it was a faulty chip and then I discovered that it will do that when it gets hot because that's a pretty quick way to cool down the chip - theoretically.

And so for a while I worked on the assumption that the problem with the MacBook Air is the ventilation cause it's got its ventilation slots are right on the bottom.  And the only thing that keeps the ventilation slots from being completely blocked when you put your laptop on something is these little rubber feet which are really thin. So if you put it on a perfectly flat surface those ventilation slots on the bottom theoretically work.

Atwood: [grunts understanding]

Spolsky: But they just weren't, and I wasn't able to watch video.  So what I was doing was I was setting my MacBook Air up on two books with a gap in between them.  So it was like standing like in between two books kinda perilously just so that vent would have at least an inch clear below it.  And then I could sort of watch video but not always.  Even when I did that it would overheat.

Atwood: [grunts understanding]

Spolsky: So finally I encountered this thing called 'Cool Book' which is just a little app that some guy in Sweden wrote that's impossible to understand and has a really difficult user interface that you have to sort of study to understand and it lets you change the voltage that the chip runs at, and its not just one voltage, its like multiple voltages like when your going at like 1200 megahertz use this voltage and at 1400 megahertz use that voltage and so there's a whole bunch of different settings and the voltages are things like 1.1 and the defaults are in the 1.1 area and I got it down to about .95 and I’m pretty sure it didn’t stop crashing and what happened was that the CPU started running much, much cooler, like 75 degrees instead of 100...

Atwood: Yeah, the voltage I think goes up with the square of the voltage [sic]

Spolsky: Yeah.

Atwood: And it has a huge, and it doesn’t sound like a big difference, but it actually is

Spolsky: Oh it really was.  And I think it will probably, I mean it will make the battery life last long enough not that I really care, because I mostly use it at home, but also its shockingly cooler and so its kinda weird, you said you, you’re right, Intel or I don’t know, if it's the Mac hardware engineers, that just assume different chips, you know there is some variability the chips and some of them need more voltage than others as they come off the assembly line, and -

Atwood: That’s because, well, I think some of their newer chips they do actually have a range of voltages they'll ship at, so they don’t have to throw the chips away.

Spolsky: Oh, interesting.  Well, my theory was that they just set it at a nice, high voltage that all chips will function properly at, instead of actually adjusting to the lowest possible voltage for the particular chip that they just made and the net result is that even though they're being conservative, you know, which is worse?  Overheating CPU, I mean, that is a failure too in one direction.

Atwood: Right. Well you talked about how aesthetically pleasing the bottom of the Air was and one side affect of that unfortunately is there is no ventilation holes, right?  So, heh, its sort of a challenge.  But I think a lot of laptops have had similar overheating issues where they don’t ventilate well when they're actually on a lap, you know, cause that's -

Spolsky: Yeah yeah yeah. Well you know what, not the [Lenovo] Thinkpads. The Thinkpads have ventilation off to the side, they work great. But anyway back to this 'CoolBook' thing. You run CoolBook, and it takes about an hour to understand the documentation, because I didn’t know anything about undervolting, and every time I would try to read something about it, it was like electrical engineering stuff. And the UI was just not intuitive and I didn’t understand what exactly I was editing and how I was controlling it, when it was going to save the changes and that kind of stuff. It was just not written that well. And then you had to like run a separate program that tested your CPU, to make sure that you hadn’t lowered the voltage too much to the point at which it was unable to, I don’t know, compute the square root of pi.

So that was all so incomprehensible, and it took about an hour of studying and fiddling around before I finally got it to work and I got much lower voltages than it shipped with and this completely solved my problem and to test it out last night I watched the entire Big Lebowski on hulu.com and it was fine.

Atwood: [chuckles] You had to for testing. You didn't really want to.

Spolsky: [laughs] No, I didn't want to, no. [laughs]  But you know, I did my duty and it was great. So wait, um, but, this UI is difficult to say the least.  And you'd think that somebody at Intel could write an app that, you know, ran for about an hour and basically just tried lowering the voltage until it failed and then raised the voltage a little bit, just found the right voltage for every chip.  And they just did this on the assembly line while these machines are being assembled, or at the very least make a download available.  So customers can run this and get their, because it really does increase the battery life time and it really does reduce the temperature.

Atwood: Well, right.  Yeah, no, they do that, it's called "binning."  But I think it varies depending on, you know, what chips they're making, what the demand is, but binning is the process by which you take a given chip, and you see, "Well, what speed will it run at," right? Cause some chips just have fewer defects and actually run better at lower voltages, I mean there's a lot of variability.  These, you know, what, .45 nanometer now?  It's like really really tiny stuff.

Spolsky: So I know they did this with speed, but do they do this with voltage as well?

Atwood: Well sure 'cause the two are related.  Like I said, I mean, if you have a really good chip it can run that can run really fast at really low voltage, or really slow at really low voltage, right?  Those things are related.  But...

Spolsky: Yeah.

Atwood: I think what happens is if they're building chips at a certain speed they may not test below that cause that's like their floor.  Like, "If it runs at this, we don't care, that's our lowest speed," or whatever.  I don't know if they go to the absolute floor.  They might on laptop chips.

Spolsky: Yeah, but they didn't... I mean they clearly didn't in the case of the MacBook Air and if they had they would have increased the battery time a lot.

Atwood: But they like to leave a lot of headroom.

Spolsky: Yeah, maybe.  I mean maybe I'm going to load Excel one day and it's just gonna shut down and the computer's gonna panic.

Atwood: They way you test that is the way historically you always test that, is you run this program called Prime95.  Which all it does - and it has a Mac version I'm pretty sure - all it does is calculate prime numbers at varying sizes. And you run two instances of it, one for each core, you have to run two copies of it and that will load it far beyond what most people will ever do to a CPU. So if it can survive dual Prime95...

Spolsky: Oh I have a stupid question now. Surely there are some instructions on the chip... I mean what if there's just some part of the chip, am I being crazy right now? [laughs] Maybe I just really don't understand CPUs.  What if there's some instruction that calculating prime numbers doesn't execute?  Like some Intel machine language instruction...

Atwood: Well, that's not really...

Spolsky: ...that some part of the chip just never lights up, and that particular part of the chip just happens to want more voltage than it's getting?

Atwood: Well, that's not really the intent of the code.  The intent of the code is to make the CPUs as hot as they possibly can.

Spolsky: Ohhh.

Atwood: Cause heat is what triggers these failures, usually.

Spolsky: Okay.

Atwood: So really, you're just exercising a particularly, uh, I think the floating point part of the CPU tends to use a lot of power.  Of all the programs you can run, that's one of the highest power consumption, like I have a little device that actually tells me how much power the CPU, the PC is consuming at the wall.  And you can run all different kinds of programs and see which ones, you know, load the CPU the most, as measured by power draw. And it's really hard to beat Prime95.

Spolsky: Okay.

Atwood: So, I'm by no means an electrical engineer and I apologize to anyone listening to this who is or knows one I apologize.  I have a very limited sort of enthusiast understanding of how this stuff works, but I have done this for a number of years and I know what...

Spolsky: Yeah. I do want to emphasize to anyone listening that I also misunderstood undervolting 'cause I thought it was the opposite of overclocking, which it's not. Undervolting just means less voltage; you still run at the same speed.

Atwood: That's right.

Spolsky: The chip is actually, it's not like you're slowing down your computer in order to keep it cool - although you can do that too if you want to.

Atwood: Yep.

Spolsky: And in fact, one thing that the Mac, the MacBook Air does not ship with which, is possible to turn on the chip very trivially, is: when running on battery power and you don't have a lot to do, just turn off one core.

Atwood: Yes.

Spolsky: So I think the way it ships, the MacBook Air you have I think eight hundred, a thousand, twelve hundred, fourteen hundred and maybe sixteen hundred as the speeds that it will go at.  But you could set it, you could give it a six hundred, where it will turn off one CPU and run at twelve hundred, or six hundred each or whatever.

Atwood: Right.

Spolsky: I know what I'm talking about.  You can make it run much slower and use much less voltage.  Or maybe it doesn't... no, yeah, that would use less voltage.  And you can do that whenever you just don't have enough load.  And I guess there probably... you know I can imagine the Apple engineers thinking that they don't want to do that because that might reduce the multitasking feel of the system.

Atwood: Well one problem they would have with this approach is that some CPUs may not actually tolerate lower voltages like yours does. You know Intel rates them at a certain voltage.

Spolsky: Yah.

Atwood: There's variability, right?  Plus or minus ten, twenty percent.

Spolsky: Yeah, well, they should test that in the manufacturing process.  Anyway.

Atwood: Yeah.

Spolsky: So anyway, Wil Shipley, there's your solution. Go install cooledit [meant CoolBook] and waste half of your life, half of a day of your life configuring it.

Atwood: But bear in mind this is coming from the guy who advised us to drop the computer to fix it.

[16:46]

Spolsky: Hey, that worked!  Was that on podcast?

Atwood: Yep, that was on the podcast, I think one of the earlier first five that we did.

Spolsky: That computer is still running!

Atwood: I know.  I'm just teasing you.  I'm only kidding.  So I had another...

Spolsky: Also she had a baby that won't stop crying.

Atwood: Oh, no no no no.  That's not hardware, that's like software.  That's a totally different topic.

Spolsky: [laughs] Five inches off the ground.  Onto a padded surface, padded surface.

Atwood: Yes.  So another thing I wanted to talk about is I had a, a funny thing came up... so I had a ego search set up, I think like a lot of people do, and Google I think, I don't know if it was Google search or, I think it's Google blog search.  But it just tells me when people are talking about me.

Spolsky: Yeah that's cool, that's awesome.

Atwood: And, and, I like to do that.  I don't necessarily respond to everything cause that's kinda creepy if you're the guy who's always responding to everything everybody writes about you.  I think there was some guy on Usenet who used to do that and they came up with a name for it.  You know, Godwin's Law?  Something like that where...

Spolsky: Yeah, what the heck was his name?  It was like 'scrid' or something [Transcribers' note: Jeff's show notes identify him as 'Kibo'].  It was something that could be grep'd, and he used to just grep for himself.

Atwood: Right, and then anytime you invoked his name, it was like Beetlejuice.  You know, he was 'poof', he was there.  So I don't want to be that guy necessarily.

Spolsky: He showed up [laughs].  What was that guy's name?  That's funny.  He would just show up in any usenet group anywhere.

Atwood: You realize that when I talk about this stuff, then I have to go research it.  That's why it takes me so long to do these notes for the show, but I will have the link in the notes for the show of this guy.  But I do pick up some interesting things and I enjoy reading them, and one thing I picked up, gosh I suppose it was over the weekend, was - and you'll like this one - and the title of it is Don't let Jeff Atwood lead your web project.

Spolsky: Oh, yeah, Marco?

Atwood: [laughing] This guy, Marco Arment, who is the lead developer at Tumblr.  Which I like.  I like Tumblr, Tumblr is really cool.  He also has some site, Instapaper, and then he was also at this web search engine, Clusty, which we actually looked at.  We were researching sort of the way web search engines worked and search results.  Clusty would do clustering around, like, different vectors of a term like "jaguar".  Like "jaguar" could refer to: Atari Jaguar; it could refer to a jaguar, the big cat; it could refer to an OS X variant; it would do clustering like that.  And I think Google kind of does a little bit of that now.  I don't know what happened to Clusty, but it was a neat site.  But was frustrating to me about this post was that-- it's fine, I don't mind people criticizing me and in fact, if it's good criticism, what we call "constructive" criticism, then it's actually helpful.  But I did not find Marco's post to be very constructive because there's nothing in it that really explains what he thinks I'm really doing wrong.  I mean, he sort of vaguely alludes to the fact that I sort of said negative things about PHP, which I don't think I actually did [laughs nervously].  I get a little frustrated with sometimes the way people interpret my posts because I wasn't really saying that PHP sucks.  What I was saying was a good developer can write awesome stuff in anything.  Right?  Whether the language is good or not ends up kind of being secondary to whether what you've created is actually good and interesting and useful or not.

Spolsky: Yeah, I have to agree with you. Yeah.

Atwood: And I really wasn't dissing PHP.

Spolsky: Yeah.

Atwood: Yeah, so I'm a little frustrated. I had a little sound clip. I got Pamela hooked up, and I want to play a little sound clip as my response to that so here we go, it's 14 seconds:

Sound Clip:
  Other rappers diss me.
  Say my rhymes are sissy.
  Why? Why? Why? What? Why, exactly?
  What? Why?
  Be more constructive with your feedback, please.
  Why? Why?

Atwood: So that's my excuse to play...

Spolsky: Flight of the Conchords.

Atwood: Flight of the Conchords[laughs]. [rapping] "Be more constructive with your feedback!" [/rapping]  So that's...

Spolsky: Thank you very much for that "Brit" [mispronouncing "Bret" on purpose, one of the members of that duo]. "Brit", "Brits"...

Atwood: Oh, my wife and I, we love the Conchords. We're kind of actually a little bit obsessed with them now. They were in...

Spolsky: You know, I'm a New Zealander, so all those jokes, like when he says "Brit?", "No, Brit", "You mean Brit?", "No, Brit".

Atwood: [laughs]

Spolsky: [laughing] Because it's "Bret" of course.  With an E.  New Zealanders say "Brit".

Atwood: Yes, lots of love for the Conchords.  They had a concert here but, one problem with the Bay Area is a lot of the cool concerts sell out in seconds.

Spolsky: Right, right.

Atwood: And they even had a second show, and they all sold out.  And of course they were scalped like crazy, which makes you hate the scalpers even more than you already do, and it's just unpleasant.  But we didn't get to see the concert, and they actually played the Google I/O conference as well, which I was really bitter about that.

Spolsky: Yeah, yeah.

Atwood: Cuz if I had known they were playing at the Google I/O conference I would have pulled strings to actually get me a ticket or an invite...

Spolsky: Yeah, a couple of Fog Creek people went to that.

Atwood: Yeah.

Spolsky: I heard it was great. I actually heard that that was the best part of the conference.

Atwood: Aw... That just-- that does not please me, I don't like hearing it.

Spolsky: [laughing] Sorry.

Atwood: But I do have-- I recommend that the Flight of the Conchords album is available on Amazon MP3, DRM-free, and I highly recommend it.  I think it's hilarious.  And also the show, which is on HBO, right, Flight of the Conchords, excellent show.  So really that was just an excuse for me to play Flight of the Conchords.  So I apologize, Marco, but I do wish you could tell me like why I suck, like what am I doing wrong?  Like...

Spolsky: Yeah, you know I think that it's just that you're just generally an idiot.  Um, but, then again [laughing] that's his opinion.

Atwood: Yeah.  No, no.  And it's a valid opinion but I-- Well, what specifically?  I don't know.  I just-- my analytical programmer mind can't let it go a little bit, you know what I mean.  I get it on a personal level, it's like "Okay, you don't like what I'm doing".  That's fine.

Spolsky: Well listen, if you're really searching, then search on my name and you'll find all these people complaining about how I interrupt you, and I never listen to what you're saying, and I'm the idiot, and you're the wise one on the show.  And that's fine, because what's cool is, the more-- that's just going to make people listen to the podcast more.  That's the way it is with podcasts.  There is nothing more fun than listening to two people, one of whom you hate, one of them you like.

Atwood: That's true.

Spolsky: It doesn't matter which is which.  It's just so much more fun than if you like them both, or if you're-- there has to be like one guy there that you just want to punch.  Or you can't get emotional.

Atwood: [laughing] It's Joel.  You guys should-- you should punch Joel.  Joel is the guy that's-- I'm you're friend.  Joel, I don't know, he's crazy, so.

Spolsky: Remember, in the early days we were talking about setting up some deliberate conflict debates, just to make the show more interesting.

Atwood: We could.  Well, hopefully that's what the questions do.  I mean, that's-- hopefully.

Spolsky: Yeah.

Atwood: Hey, did you want to talk about, um... you had the Fog Creek Management Training program? The reading list? Cuz we had our [lists?] for a long time.

Spolsky: Yes.

Atwood: And I don't have a ton of StackOverflow stuff to talk about. I mean, we have a lot of progress on the site, but it's just been a short week, so it's tough for me to have a lot of topics at the top of mind.

Spolsky: Yeah, and to be honest we didn't get a whole lot of recorded questions this week.

Atwood: Okay.

Spolsky: So we should talk about books.

Atwood: Yeah, books are fun.  We love books.

Spolsky: There was one book question... you still there?

Atwood: Yeah, I'm still here.

Spolsky: Okay, I don't know, I clicked something and then I heard a click sound, and thought I might have [unclicked?] you.

Atwood: No, no.  I'm alive.

Spolsky: Um, alright forget that question. That's not really relevant. But alright, let's see.
The books... SMTP... uh no, that's not what I meant...

Atwood: Yeah, it's the Fog Creek MBA Curriculum dot HTML.  http://www.joelonsoftware.com/articles/FogCreekMBACurriculum.html ]

Spolsky: Ah, Fog Creek MBA...

Atwood: ...Curriculum dot HTML.

Spolsky: Yeah.

Atwood: There's a lot of books here, so [laughs].

Spolsky: Some of them aren't that good.  Um, okay.

Atwood: Maybe... I'm not going to read the list.  What you should do is, why don't you go down the list and just highlight the ones that you think are interesting, and I'll make remarks as appropriate.

Spolsky: Where in the heck did this go?

Atwood: Are you still trying to find it?

Spolsky: [Laughing] Penetrating[?] program books... Ah, here we are: reading list, software management training program.  So, there will be a link in our show notes if you're missing this.  What I'm going to do is go through the list really rapidly and highlight the great ones and the random ones, and I'll explain why some of the things that are on there are on there.  Ah, yeah I can do this pretty quickly, um...

Atwood: Okay, wait, before we start... The intent of this book list is to support - you guys have a management training program?

Spolsky: We do.

Atwood: Okay.  And so are these the type of books that your average programmer should read, or just people who want to ultimately run their own companies, I mean, what's the audience here?

Spolsky: There's a couple of goals for our management training program.  The first is to take - I mean our original goal actually, was to take the kind of people that go to good schools, want to get into business, want to go get an MBA, and need to get some real-world experience before they can get their MBA.  A lot of them go to management consulting for two years and they do real drudgery and they get paid nothing and they get treated like crap and the drudgery they do is just stupid, but they have to do it because they want to get into business school, and the business schools need to see a couple of years of real-world experience.  Plus, the management consulting firms make those jobs sound extra extra excellent.  When they're recruiting on campus, they're always like "We have offices in Paris, London, Moscow, Sydney!", and what that means is: you will never go to Paris, London...

Atwood: You'll be in Des Moines, like I was.

Spolsky: [Laughing] Yes. You are not going to Sydney, because we have an office there. Where we don't have an office is Tulsa, and that's where you're going! [Laughs] So, those programs sound really great, and we thought a lot of kids who are interested in that might be interested in something like this.  What it turned out - you know, we're learning slowly - but what it turns out is that the ideal candidate for our software management training program is a programmer who has been working for 5 to 10 years and has managed to be completely oblivious to the business side of software, and really wants to move into management or start their own company, and they're just missing all this knowledge of everything that the suits do in their company.  They never got it, they were allowed to just be coders and so we came up with a program that sort of started out at 3 years but is now down to 2 years, where the academic component comes from going to school to get a Masters in the management of technology.  There are 3 programs in the management of technology in New York: at Columbia, NYU, and Poly.  So, a couple of people went to Columbia, um, the 2 people that are in it right now are going to Poly. They're pretty good programs, and then during their work hours at Fog Creek, they rotate through various different responsibilities, all of which are sort of "suit-like" in the company.  So, they'll rotate through sales, customer service, QA testing, program management, and they're usually given various semi-management tasks to work on.  It gives them a lot more experience with the not-coding side of a software company.

Atwood: And just to support your point.  I have the minority opinion that being a software developer - the way to become a better software developer is not necessarily to do all the coding you can forever, but also to complement those coding skills with also business skills, communication skills.  So I believe even if you have no intention of starting your own company, I think it will better you as a programmer to study some of the business stuff.  I mean, I know it's kind of a minority opinion, but I really believe that.

Spolsky: No, you're probably right.  And in fact I would even go so far to say that a coder, a software developer, in the first 5 years of their career - and this number may vary radically - they acquire a set of programming skills that tend to sort of plateau.  At some point, you're as good a coder as you're ever going to be.  And, it may be for some people it may be 1 year and they may be doing when they're 19 because they started coding when they were 12.  For some people it may take more than 5 years.  You know, that obviously varies, but there is sort of a plateau at which point you sort of sit down and you write really good code.  I remember, after about a year of programming, I got to the point where the compiler never complained about anything I did.  Like before that, it was like "How do I get the compiler to accept what I'm typing at it?" [laughs] cuz I would just be making syntax errors left and right.  I got to the point where pretty much I didn't make syntax errors.  You know, I started making logic errors, and that was - that's one milestone.  But, you know, obviously as time goes on you get better and better and you start - and one of the things that I've noticed is once you sort of - at some point, you kind of max out on how good code you can write.  Then what tends to happen for a lot of people - and a lot of people have reported this and I feel the same way - is that you actually get wiser about what you do.  You do things in a much more intelligent way the first time, but you also get slower about doing them.  So, for example, it'll take me - it might take me a week to get around to writing 8 lines of code, but those 8 lines of code that it took me a week to write are going to do what some other kid spent a week, wrote 800 lines of code with 33 bugs that he had to debug on Wednesday, Thursday, and Friday.  And so he'll wind up with, you know, hundreds of lines of code to do what my 8 lines did, just cuz I did it in a more intelligent way, but I didn't have quite the stamina to just really bang away at it.  So what I found is a lot of software developers, they sort of hit a plateau with their coding skills, and then they start doing more and more intelligent things with code, but it's kind of - that's the good thing, but the bad news is that they have less stamina for coding so they don't write as much code, and so their output tends to level off.  And that's just with the code until, Jeff, I think what you're saying, which I agree with, is that at that point you really need to start thinking about communication skills and business skills and econ[omics] and design skills and a whole lot of other things, besides [writing code].

Atwood: Well, I think writing code, for a long time, is it's own reward.  It's like you write code because you love to write code.  And then eventually reach a point where you love the code enough to write as little of it as you humanly can.  Right?  You sort of let go a little bit of writing code for the sake of writing code.  Cuz it is fun, it's really fun to build stuff, and that doesn't go away.  But you start to ask "Well, why am I writing this?" That becomes the more important question that "because we can write code".  And it's always amusing to me how often I'll post stuff and developers - it's like a knee-jerk reaction every time - "well, the answer to this is obviously is more code."  Right?  Like that's the answer to all problems that we have in the world - we just need to write more code to solve all these problems.  And you start to wonder, like, "Well, does that really work? Does that really scale? Is that really going to solve the problem?"  I mean, that's sort of the way I look at it.  And I still do love writing code. I mean, I really enjoy it, but I think you get a lot more perspective over time.

Spolsky: You also tend to find these shortcuts.  You're always trying to think "How could I do this with less code?" or "How could I reuse some other thing that already exists as a way to do this thing?"

Atwood: Yes, exactly... So, let's go down the list.  This is a great list.

Spolsky: Okay here we go.  Some of you have read some of these books.  There's The Mythical Man-Month which is kinda famous - everybody's read that, right?  I mean it's really sort of the--gives you a basic understanding of what it takes to get a development team to work together; and mainly the problem that that book gets into is that adding people doesn't necessarily help make things come in on time.

Atwood: That is the one, true classic book, I think.  I think everyone should read it.

Spolsky: Yeah. 

Atwood: You should just have it. It's sort of like The Bible of software books.  I mean, it was sort of the first major software book and you owe it to yourself to read it if you haven't.

Spolsky: Yeah. Yeah, I actually just gave it to my whole sales team to read.  Um, so let's see.  Don't Make Me Think [by] Steve Krug.  That's actually one of the better books about user-interface design that gets into some of the theory of user-interface design rather than the practice.  There's an awful lot of books that tell you "do this, don't do this, put this here, don't put that there" but underlying all that is sort of this theory of people are malicious, stupid, and bored and don't want to deal with your app; and really they're just not paying attention to what your app is doing and you really have to make them, you know.  So Steve Krug has a great book, and really it's about web usability but it applies to all user-interface design.  So that's a pretty good UI design theory book. 

Growing a Business by Paul Hawken, this is the guy that created Smith & Hawken which is a company that sells garden implements.  But he's created a couple companies over time and he's really got a philosophy of boot-strapping a company, of growing slowing and cautiously without using large sums of capital, without taking major risks, and really growing a business like you would grow a tree which is very different than the Silicon Valley model but it is the Fog Creek model of boot-strapping so that's why that's on there.

Now this book DEC Is Dead, Long Live DEC - there's a bunch of books on here that I just picked because they were stories of high-tech firms, the origins of high-tech firms.  And when I was starting Fog Creek I could not get enough of these books that were just like "here's the story of some stupid company that succeeded or failed."  And just the more I read about them sort of the more I learned about, you know, what should be happening.  So there's a bunch of those in here not all of which are necessarily worth reading but some of which are.  So I'll call those out, I'll say you know, "this is just another story," when I pass through them.

Applied Cryptography, Second Edition -- ya know, probably only the first half of that book is really important.  I think it is kind of important to understand what the algorithms are and what they can do and can't do.

Atwood: [jokingly] And you should be able to write them in C.

Spolsky: [laughs] You don't have to be able to prove them.  You should be able to understand that factoring a prime [sic, perhaps he meant large] number is what all this stuff depends on, and you should be able to understand what it means to sign something -- to digitally sign something.

Atwood: Yes.  No, the concepts are hugely important.  I totally agree.

Spolsky: Yeah, I mean we use them all the time, yeah.

Atwood: Yeah, and he has a number of follow-up books where his focus has kind of changed over time; he's sort of gotten into more of the human aspects of, you know, "the algorithms can't save you when the people are stupid."

Spolsky: The interesting thing is that the first edition of Applied Cryptography has like almost a rant in there about how we really should replace replace cash with digital cash because it has the following properties: it's more anonymous; it's more secure; it's more... and ah, that just makes you laugh. And I think he completely turned around on that one. But that said you should know what it means to be public key cryptography -- you should know how public key systems work, you should know what signing -- what digital signing is, what hashes are for and why they work.

Philip and Alex's Guide to Web Publishing, that's the one with the little guy sitting there with the dog.  He really was a pioneer on the Internet, on the web, and he has a very humorous and light style of writing that made that kind of interesting, although now it's kind of a historical piece.  I don't really know how important it is anymore.

Atwood: Well, I want to kind of give that one a shout-out, because I actually bought that one because I saw people talking about it.  And I was surprised.  You're right, it's totally outdated in terms of the actual content but it's still a really compelling read, which surprised me.  And he also pioneered the style of something I'm very ambivalent about - it's text interspersed with random photos which I find a little...

Spolsky: Well, he's a photographer.

Atwood: Well I know but, like, I don't know, it's just I like the pictures, but...

Spolsky: You know what?  If he hadn't of done that, nobody would have known who he was.

Atwood: It works for him.  It works for him, I will say that.  I love that book, even though it's...

Spolsky: He wrote Travels with Samantha (sorry to interrupt) - when he wrote Travels with Samantha on the web, that was the first website you could go to where there was a person telling you a story and showing you pictures.

Atwood: Right. That book is worth getting, it really is.  You can get it for nothing, used.  And it's really a fun read.  So, I do recommend that one.  That's all.

Spolsky: Yeah. The style, I mean, I sort of copied the style of putting random pictures in, obviously, and I think that it actually makes people-- honestly, I feel like half of the success of Joel on Software is using a slightly larger font and having pretty pictures [laughs].  Just make the whole experience.

Okay, Sam's [Wiley's?] book Testing Computer Software, this is the classic book of what software testers do.  And it is a well-written and clear survey of the field of what software testers do.  Most software testers are not trained in software testing.  I don't know if there is such a thing as being trained in software testing, and so this is the book that you throw at them, and they read it, and then they're like "Okay, now I know how to do my job".

Atwood: Cool.

Spolsky: Design for Community, Derek [Pawazek]'s book is one of the only books about, like, how to do UI design such that communities can get created.  Have you read that one actually?

Atwood: I have not.  I've never heard of this book actually.

Spolsky: Oh, well that's sort of one of the classics.  Since we are doing a-- we are designing for community.  Now, it's a little bit-- I'm trying to remember why I'm not so excited about-- I'm half-hearted[ly] excited about it.  It's a half-good book.  I think that it doesn't really cover-- it doesn't really touch on all of the points of how to design for community, and it's a little outdated.  But this is a guy that was building web communities and it shares his experiences, so there's a lot to learn from it.  Let's put it this way, it's not quite-- you know, Clay Shirky's new book Here Comes Everybody sort of supersedes this a little bit.

Atwood: Right.

Spolsky: Version Control with Subversion, that's just on there because if you've never encountered version control you should understand how it works.

Atwood: Well, you know, one alternate there is Eric Sink [who] had a great series on source control.  And you know, this is a guy who wrote a source control system so he knows it inside and out, which was awesome.  I think he eventually published that.  I got to look up how.  I would almost recommend Eric's stuff as just "Here's what source control is.  Here's what source control is supposed to do for you".

Spolsky: Yeah.

Atwood: That was just a brilliant set of writing.  And, yeah, source control is important.

Spolsky: Yeah, if you use source control and you know about it, just ignore that [book].

Now, The Non-Designer's Design Book is awesome. It's written by a designer who happens to be named Robin Williams.  It's not that Robin Williams.  And she is a, I think, Santa Fe based graphic designer, and she's written a couple of books on the general topic of "Here's how you design stuff" and mostly about how the page should be designed.  But it all applies to the web and to any kind of graphic design you do.  And again, it's some very simple principles that you can apply to making things look better, like just lining things up.  Things like, "things should be lined up."

Atwood: And this is another point where, as a programmer, it's like "I don't have to do any of that design stuff, somebody else does that".  I think as a developer, you really should know basic design principles too.  Like you should know enough not to make a page that looks just like a GoDaddy.com for example.

Spolsky: Well, I think that programmers are very frustrated by that, because they think that it's an artistic thing that they've never been taught how to do, and they don't think of themselves necessarily as being artistic or having artistic skills.  And actually, the great thing about Robin Williams is that she shows you some of the underlying principles here, of how this stuff works in a way that is completely understandable to a programmer because it's almost like algorithms that you follow and your pages look better and things look better-designed.

Atwood: Great book.  Highly recommended.

Spolsky: The Pragmatic Programmer.  Yeah, say something about that, I can't remember what the heck goes on in that book.

Atwood: Well, it's just a classic set of guidelines for programming without pulling your hair out. Basically, like, some of the classic concepts that people write blog posts about to this day, like "Don't Repeat Yourself" [the DRY principle], broken windows... Andy [Hunt] and Dave [Thomas], the pragprog guys, were really the first people to talk about this stuff, like in 2000.  I mean it shows you how young our craft really is, when we're talking about the people-- the first people to publicize this were in the year 2000, that was like 8 years ago!

Spolsky: Yeah.

Atwood: And now this is considered classic material, and for good reason.  Like, if you read The Pragmatic Programmer you'll be nodding your head like every 5 pages.  It's a lot of really good collected wisdom expressed in a very down to earth way.  It's very complementary to Code Complete, I think.

Spolsky: Yeah.

Atwood: I would recommend them almost side by side.

Spolsky: Yeah, or what about the Robert Glass book Facts and Fallacies of Software Engineering?

Atwood: Oh sure, absolutely.

Spolsky: A lot of the same topics.

Atwood: Yep, another great, great book.

Spolsky: Yeah, Robert Glass is somebody that a lot of people, I hesitate to say, our age have not heard of, because he's really the previous generations' Jeff Atwood. [laughs]

Atwood: You give me too much credit.  That's way too much credit.

Spolsky: [laughing] From two previous generations.  A combination of Joel Spolsky, Jeff Atwood, and Paul Graham, all put together.

Atwood: Right.

Spolsky: I want to scroll back a little bit.  Measuring and Managing Performance in Organizations by Robert Austin.  Something that I'm a big believer in, that when you try to measure people's performance, individual's performance, and you try to do these scientific experiments where you're like "If you do this, what will be the result?" the people are self-aware, unlike things that you'd normally do scientific experiments on.

Atwood: Machines?

Spolsky: Yeah, say machines or chemistry experiments.  You're sure they do these chemistry experiments and the chemicals don't know what you're doing, but people do.  And so, his thesis is that when you try to measure performance in organizations, in order to get better results-- for example, you decide to start paying programmers for not writing, not creating bugs, and you think this will make better code, then for a very short period of time you actually get the results that you wanted.  For a short period of time.  But very rapidly, the people figure out how to game the system and how to get the measurements that you want while maybe doing something that is not-- that is perverse for the organization.  So this is-- I could go on this for hours and hours and hours, but luckily Robert Austin already has, and this is a book that's fairly academic.  He's a professor of [?] business school, and it's on a subject that it's just hard to find a lot of people that believe in this, so. [laughs] So, that's a good book to read.

The reason I put Paul Graham's Hackers and Painters is there's some good stuff in there. The best thing is "Why Nerds are Unpopular" at the beginning, and I think an understanding of the nerd personality type is fundamental to dealing with people in the software world.  I think that's really one of the-- there is a personality type that is extremely common among great programmers, and understanding that personality and putting that into context, is probably the most critical thing for a person who wants to manage programmers to do.

Atwood: Right, and Paul gets a lot of experience with that, being that he's running Y Combinator and dealing with all these young software entrepreneurs.

Spolsky: Yeah, and I think that that essay is what got him his audience which is gets him so much attention of people that apply to Y Combinator.

Atwood: Right.  Yeah, a lot of his early essays are really classic, so definitely worth reading.

Spolsky: Let's see, Competing on Internet Time is just another one of those like "Here's what was going on".  It's another one of those history of a business, kind of.  The whole concept of Internet Time turned out to be false [laughs] so maybe that book-- I really should delete that book.  You know, there was this idea that they said of Internet Time of things going fast, and you'd look out-- you know, cuz Netscape 1 came out and then Netscape 2 came out-- and you know what?  Any software product that you work on, the first few releases come out very quickly because there isn't a big installed base and a lot of backwards compatibility.  You can just sort of knock things out, and you actually add features very rapidly to a new computing system, which you just cannot do when that system is more mature.  So, I don't think there was anything about the Internet that made there be a short release cycle. I just think that was just a complete fallacy.  So forget this [book].

Atwood: Okay.  We'll [scrap] that one.

Spolsky: There are some sort of internal, like "what happened at Netscape?" stories that are interesting.

The Inmates are Running the Asylum.  Alan Cooper, a famous UI expert, has written a lot of books about user interface design.  All of them are good.  This is one of the best.  He does manage to squeeze more words into fewer thoughts than anybody else I know, he really does cram the words in there.

Atwood: Well, hey, did you notice that the newer editions of About Face [The Essentials of User Interface Design]?  There's been about 3 versions of About Face now, and he keeps adding authors, but it makes it better because it sort of dilutes some of the Cooper-isms that we sort of...

Spolsky: Cool.

Atwood: Yeah, so I will say, get newer editions of the Cooper books, particularly About Face because he adds authors, and it really does help the book when there's more than one author - in his case.  Although, Cooper is great, but there is such a thing as too much Cooper.  Definitely.

Spolsky: Yeah, he's saying the right things, you just kind of have to speed-read to get them at about the right speed.

Atwood: He kind of likes to bludgeon you with it.

Spolsky: Donald Norman, The Design of Everyday Things, he's the mother of all UI design books, and this is even before there was UI design.  This book - The Design of Everyday Things, which I believe was renamed [from] The Psychology of Everyday Things - that's the same book.

[Transcriber's note: this book was originally titled The Psychology of Everyday Things (1988), but is now titled The Design of Everyday Things (2002).]

Atwood: Oh, that's right, that's right. That's just a classic. There's nothing really else to say about it other than it's truly a classic, so...

Spolsky: He talks about things like "What makes a door work?"  Why are some doors easy to go through and some doors seem to confuse people?  Stuff like that, that really is very similar to UI design but he was talking about this before there was that much UI.  And, so this book has examples like a clock radio that's hard to use.

Atwood: But you know, that made me feel good reading that though, because I figured if I can't get software UI to work, then there's people who can't get door UI to work!  It made me feel a little bit better about what I was doing cuz I figure, okay, the software is a little harder than a door, so if it's hard to get a door right, imagine how hard it is to get software right with all these buttons and dialogs and things, so...

Spolsky: Yeah.  Alright, The Difference Between God and Larry Ellison, just another insider account of Oracle.

How Bill Gates Fumbled the Future of Microsoft, just another insider...

Atwood: Hey, wait! We can't just gloss over The Difference Between God and Larry Ellison!  That's probably my favorite technical book title, it's hilarious [laughs].  Larry Ellison is-- I don't know if you know much about Larry Ellison but I'll link his Wikipedia article I guess but Larry Ellison is kind of a strange guy.  I think he fancies himself like sort of a-- literally like a tech ninja.  He's a very strange guy and worth reading about, he's quite a personality [laughs].

Spolsky: Yeah.

Atwood: Anyway, that's all.

Spolsky: So anyway, the subtitle of The Difference Between God and Larry Ellison is that God Doesn't Think He's Larry Ellison.  Get it?  [deadpan] Ha ha. [/deadpan] Okay [laughs].  That's actually the title of the book!  But, you know, I just put it on there [the list] cuz pretty much anything that was the story of a software company or an Internet company, I just threw in here.

Similarly, How Bill Gates Fumbled the Future of Microsoft - a lot of insider stuff about Microsoft. I think it was taken from those emails that they had to submit in some antitrust case.

Linus Torvalds' Just For Fun - his story about creating Linux.

On a Roll, by Howard Jonas, is the story of IDT which was an early Internet Service Provider and again just another story of an Internet startup.

The First $20 Million is Always the Hardest is actually a novel about a fictitious software company or hardware company or something in the Valley - ah, you can skip it - it's just another thing to read if you want to know how Silicon Valley works, and it's in the form of a novel which makes it in some ways more true than a non-fiction story because when you're telling a fiction story, you're limited to the facts but when you're making up a novel, you can come up with the exact facts that you want [laughing] that most closely corresponds to the general truth.

Atwood: Right, and hey, complementary to that, have you seen the documentary Startup.com?

Spolsky: Oh yeah, that's not a bad one!  Yeah, that's a good movie.

Atwood: That-- I would maybe add that because that shows some of the pathology of some of the early web bubble stuff that's just-- it's amazing, so...

Spolsky: It's kind of insane, but I mean you know what?  I don't think that was unique to that period.  I think a lot of companies start with that kind of hubris and that kind of misunderstanding and that kind of overhiring and all those pathologies...

Atwood: The reason I thought about that is cuz you said, you know, you couldn't make this stuff up, it seems fake.  Like, you're watching-- this is truly a documentary, this stuff all happened, these to real people.  And you would swear it's like a reality show where everything is sort of semi-scripted and not really [real]-- but it's astonishing.  I'll link it in the show notes, but, yeah.

Spolsky: Alright, so Random Excess is the story of Corel which is a Canadian-based software company that made some photo-editing software for Windows, before Photoshop was available for Windows and now they, you know, they bought WordPerfect and stuff.  But it's just sort of the history, the rise and fall of the company.  It's a very hard book to find.  You can get it like used, in bookstores in Canada and stuff.  I don't even know if it was published in the United States, so it's tricky to get.  But again, it's just another story of a software company. 

Showstopper! by G. Pascal Zachary is the story of creating Windows NT version 1.0, which they called version 3.1, but it was version 1.0.  And it's just basically the story of creating a new operating system and it's fantastic!

Atwood: It is, it's really good.  And you know Dave Cutler, the primary architect, was just this fascinating guy.  I love the sections on Dave Cutler because he's sort of the anti-Unix guy and it's weird to me to think that there's basically only two operating systems in the world now.  There's pretty much everything is either Unix or Windows NT-based, which is based on I think VMS, which is what is...

Spolsky: It's not based on it.

Atwood: Well, it's inherited.

Spolsky: It's written from scratch.  A lot of the underlying philosophy takes some things from VMS.  For example, the concept of objects that it uses is from VMS.  The concept of access control lists is from VMS.  But it really was a from-scratch operating system.

Atwood: Right, and [is] anyone even building that anymore?

Spolsky: Yes.

Atwood: Do you think there will ever be another operating system in our lifetime that matters?

Spolsky: Yeah, people make them all the time.  Oh, that matter? [laughs]

Atwood: Yeah, that ends up getting significant market share?  I don't know.  But anyway, fantastic book!  Really highly recommended.

Spolsky: The Leap is just a guy who made an Internet company called the HomePortfolio, which is his website where you can find, like, let's say you're looking for a faucet for your bathroom renovation, they will have all the faucets there.  And it's just sort of one of the stories of one of these crazy dot com companies.  They maxed out their credit cards, they spent a lot of time talking to VCs, some of the VCs were stupid, some of them were smart, et cetera, et cetera...

Okay, Digital Hustlers - what the heck is that about?

Atwood: If you can't remember, then that's not good.

Spolsky: Yeah, don't get that one.  Wait, let's see, let's look-- I'll zoom in on Amazon and see what it says here: "Living large and falling hard in Silicon Valley [sic]", oh man, oh "Silicon Alley".

Atwood: You're not even in Silicon Valley!

Spolsky: It's Silicon Alley.

Atwood: Oh, Silicon Alley.

Spolsky: Okay, I have no idea. This is just one of those books you read to get some of the insider knowledge and you don't have to read them all.

In Search of Stupidity, Rick Chapman's book, he wrote this great book about basically why the first generation of software companies all fell to Microsoft.  So, here's why Lotus fell to Microsoft, and here's why WordPerfect fell to Microsoft, and here's why Novell fell to Microsoft.  And his general thesis - which I tend to agree with - is that it wasn't that Microsoft was so smart, it's that all of these companies made some critical, crucial, and easily pointed-to mistake they made.  There was a goof, in all of these companies.  And Microsoft just didn't make that mistake, and won by default practically, because they didn't make the mistake.  So, some funny stories about what happened, really mostly around the first gen of PC software companies: Ashton-Tate, Novell, Lotus, that kind of stuff.

Startup is an older book.  It's about a company, a Silicon Valley VC-funded startup that was created, called Go, to create a tablet computer, before anybody knew what a tablet computer was, before they even really had laptops.  And, it was an abject failure but, again, a lot of the insider stuff: what goes on in typical VC-funded, typical Silicon Valley companies.  Even though it's very old, it's really completely contemporary in terms of the what goes on and stuff.

Atwood: Well, you know, pen and touch and stuff is one of those things that's taken 15, 20 years to catch on.  I remember all those really early infatuations people had with pen computing.  Remember that?

Spolsky: Yeah.  Well, they thought...

Atwood: Even now, we still don't have it.

Spolsky: The theory was that the old business people would never type, because they have secretaries to type, and they never learned how to type, they didn't want to type.  And so pen was supposed to alleviate that. And then there was this special niche of the UPS driver, and the doctors walking around.  But mostly the theory was that the older business executives, and lo and behold they retired, and the next generation knew how to type.  And that was that.

Atwood: But there are always-- you'll still meet people that are really into like-- there's a bunch of really cool tablet features in Vista.  Like many features in Vista, almost nobody uses them, right?  But they're actually pretty cool and people who use them swear by them.  They love tablets, they wish every laptop was a tablet, and we're still not really there yet.  So, anyway...

Spolsky: And we may never be.  Okay, Peopleware, 'nuff said.  Best book ever.

Atwood: Yep, great book.

Spolsky: I don't even think-- I don't think there's anybody listening to this podcast... [laughs]

Atwood: Yes.

Spolsky: If you have not yet read Peopleware, what are you...

Atwood: Do not pass GO, do not collect $200, go straight to your favorite bookstore and buy it.  Yeah.

Spolsky: It probably should just be first on this list, cuz it's just the n'est plus ultra, the ultimate bible, the source of all knowledge, which is that: SOFTWARE MANAGEMENT IS ABOUT PEOPLE.

Atwood: Right, and I would also advise people to spider down the book list.  DeMarco and Lister have written other books that are also very good.  So, if you like Peopleware and you think it's classic, walk the list.  Read some of their other stuff.

Spolsky: Yeah. The Macintosh Way is Guy Kawasaki, one of his early books.  He's written a lot of books, but this is-- in the early days, he was the evangelist for Macintosh.  And by being an evangelist - I think he made up that word - I think pretty much it is fair to credit him with the concept of "tech evangelism": the idea that you are almost a religious leader trying to get people to adopt your religion.  And...

Atwood: Yeah, anybody who does any kind of evangelism, that's always the spiritual godfather, is Guy Kawasaki, who was really the first to do it.

Spolsky: The book is great.  Ah, Microsoft Rebooted, yet another inside-Microsoft book.

Speeding the Net, yet another Netscape book.

aol.com, there you go, there's the story of AOL.

dot.bomb, is the story of an e-commerce company in the first dot com boom that was just sort of a hysterical laughing-stock failure. [Joel and Jeff laughing] There was a time when all dot com companies were failing and some of them got written-up and at least they got a book out of it.

Atwood: I'm kind of glad I wasn't in California for that, cuz I think it would have been bad.  I think it was bad for most programmers.  That's one think I don't like about that...

Spolsky: These guys-- dot.bomb was interesting cuz they were in Virginia or something so they didn't even have...

Atwood: [surprised] Oh, they were?!

Spolsky: Yeah, they didn't even have the benefits of-- they were actually in your hometown.  They were in Charlottes... ver... berg... ville...

Atwood: Charlottesville?

Spolsky: Charlottesville, yes.

Atwood: Okay, that's where I went-- I went to the University of Virginia, so I spent some time in Charlottesville.  Interesting, maybe I'll...

Spolsky: It was a company called Value America, and I'm almost certain that it was in Charlottesville.

Atwood: Interesting.

Spolsky: Yes, [interesting]...

Atwood: I will look that one up.

Spolsky: ...company.  The New New Thing by Michael Lewis is the story of... not Netscape, but what was next... no, maybe it was Netscape.

Atwood: I've heard the title, but I don't know this book.

Spolsky: It's basically the story of Jim Clark, who created Silicon Graphics and Netscape.

Atwood: Oh, right, Jim Clark.  Yes.

Spolsky: Oh I know what it was: this was his book about this company that he was starting called Healtheon which was a failure.

Atwood: Right.

Spolsky: But anyway, Burn Rate is a story of a New York based Internet entrepreneur-- or journalist turned entrepreneur turned journalist. Yet another inside story of a startup that's sort of tech-related so that's why it's on there.

Accidental Empires [by] Robert Cringely is basically the great classic story of how Microsoft got to be Microsoft.

Atwood: I love Cringely. He also has 2 videos: Revenge of the Geeks? [Transcribers' note: It was actually called Triumph of the Nerds]  Oh gosh, I've linked to it before.  But there's a video series that's very complementary to this book, where he talks about the history.  It's about the time Windows 95 was launched, that's when he filmed it.  But I love Cringely.  He's still around, he still writes his columns.

Spolsky: That's a different human, but it's the same name.  Yeah.

Atwood: [astonished] It's a different person?!

Spolsky: Yeah.

Atwood: You're kidding me!

Spolsky: Yeah, they switched.  It's like Bewitched, [laughing] how they switched the actor.

Atwood: Oh man!  This is so uncool.

Spolsky: Yeah.

Atwood: Aw!  Okay, I did not know that.  I'm disturbed.  But anyway, proceed.

Spolsky: [laughing] Robert Cringely was originally, like, the rumors column in the back of one of those weekly computer magazines.  It was either PC Week or InfoWorld, I forget.  And they had this rumors column and they didn't want to take-- they wanted to appear anonymous so they had the made-up name Robert Cringely and there was some kind of dispute over who got to keep the name and the current one is not the same as the old one.

Atwood: [?]

Spolsky: Yeah [laughs].  Revolution in the Valley is about Macs, good book, lots of pictures, lot of fun.

Atwood: Just to interject, we're probably going to run out of time here.  So what I would do at this point is just pick the ones you really like in the last quarter of the list.

Spolsky: [sarcastically] Oh geez, but we're having so much fun [/sarcastically]. Okay.

Atwood: I know, but it's an hour, so.

Spolsky: Ow.  Okay.

Atwood: There's a lot of good books.  This is a lesson-- is that we do love books.  I mean, StackOverflow is about "okay, people don't read anymore" and yet there's so many fantastic books, right, that you'd never have time to read them all. [laughs]

Spolsky: These are all good. You have to read all of these, I'm sorry. [Scanning the list] Yeah, you pretty much have to go back and read all of these.

Atwood: They're all that good.

Spolsky: Well, I mean they're all useful.  The only category I would say is that there's a handful of these that are just more-- there's a bunch of them, and I'll just list them-- that are just more stories of inside companies. 

There's the inside story of Ben & Jerry's [Ben & Jerry's: The Inside Scoop] which is a great bootstrapping example. 

Microserfs is a made-up story but it captures something about the life of a programmer. 

The Art of the Start, that's another Kawasaki book so maybe you don't need all of them.

The Business of Software [Joel makes no comment].

A Random Walk Down Wall Street [Joel makes no comment].

21 Dog Years, is sort of a story of inside Amazon from the trenches.

Inside Intuit, is the story of Intuit.

Direct from Dell, is the story of Dell.

Amazonia, is another inside story about Amazon.

The Paypal Wars is the inside story of PayPal.

The Search, is about Google.

High Stakes, No Prisoners, is about this company, Vermeer, which is bought by Microsoft and became Frontpage.

Atwood: [wearily] Oh yeah, Frontpage.

Spolsky: So those are all like-- you don't have to read every single one of those but it's kind of-- if you're doing a startup, it's nice to know what went on at other startups just to get a benchmark and to get a feel for what kind of mistakes you can make.  It can make you feel less lonely.  And so, the more of those you read the better, but you don't have to take them very seriously.  Everything else here is really like-- a lot of these books I have here are like the key introduction to a particularly important thing that you need to know about.

So for example, The Goal and Critical Chain are about a particular way of looking at-- it's the Theory of Constraints, which is a sort of important business concept.  The Goal talks about it in a manufacturing context, like "How would you make a manufacturing plant?" where Critical Chain talks about it in a way that is actually relevant to software schedules.  So those 2 books are pretty important business concepts.

A Random Walk Down Wall Street is probably the most important book you can ever read about personal investing.

Crossing the Chasm is a pretty important book about marketing.

Four Days with Dr. Deming is just a great look into the methods of management developed by somebody who is a guru to many.

Atwood: Yes.  Deming is very very famous in business circles.  Even I know that name.

Spolsky: Umm the uh... and then I would skip to, The E-Myth Revisited is sort of important, an important concept for entrepreneurs.  The e-myth is this idea that if you're a great programmer you should be able to make a software company, and its important to realize is that making a software company is not being a programmer, it's something else, and so The E-Myth Revisited starts with a little - I don't know if its a true or an apocryphal story - about a woman who's in a pie shop, and she's made a pie shop, and she feels like she's an entrepreneur, but she's sweeping the floors and making pies all day, and thats all she has time for, and the important thing to learn is you can't be making the pies, you have to be making the system so that the people can make the pies, so that you can scale, because if you can't scale you're just working in your business, you're not working on your business.

Atwood: Right. Like if you're the CEO and you're spending all your time programming thats kind of a failure mode in and of itself.  Which is a hard pill for people who love programming to swallow, but this is what I was getting at earlier as well.

Spolsky: And then the next four, of whats left on the page here, the four most important to read are The Psychology of Persuasion by Robert Cialdini which is universally known as just Cialdini -- thats what everybody calls that book, its called "influence," and its about five techniques that people use to influence other people and it is basically the heart of all marketing, and also the heart of all scams.  And its important to protect yourself and understand the methods that people use to get you to comply to their requests and their desires, and thats a very very important book for everybody to read.  So thats one: I said there were four.

Getting to Yes is probably the best book you could ever read about negotiating. 

The Little Red Book Of Selling is a great book about selling, about doing sales, and if you only read one book about doing sales, it should be that.

And How to Win Friends and Influence People is something I would just recommend to everybody, its a bizarre title, everybody's like "What?? How to win friends and influence people??? What is this, some kind of goofy..." and its a really really ancient book,  I mean its from the twenties or...

Atwood: Thirties, yeah, a really long time ago...

Spolsky: But its unbelievable, I give it to literally every sales person, every software management trainee on their first day, and they read it and say "You know, I thought this was going to be some kind of cheezy kind of thing", but there's a reason this has been a best seller for eighty years, I mean it really is incredible how there is a science of how to win friends and influence people.

Atwood: Yeah, its not gamey, its more just like "be good to the people around you" which, I don't think it hurts to remind people of that... so its really based on just, being a good person.

Spolsky: Yeah, its not at all manipulation, and its not stuff you would have thought of, and its stuff that geeks tend to be particularly bad at and they wonder why other people are so good at making friends, and... and influencing people, and then you read this and you say well, here's 17 concrete things you can do: specific steps you can take.

Atwood: a) remember peoples names -- thats always a good one.  It's simple stuff, its algorithmic, right?  And the polar opposite of this book would a be like, there's all these crazy books on dating, where it's like "the game", its like "how to manipulate women into liking you, or to manipulate the opposite sex into liking you" -- this is not at all like that.  Those books are really evil [laughs] and wrong.  This is not like that.  This is the good spectrum of those kind of books, and you should read it for no other reason than that, actually. 

Spolsky: So there we go, I guess we've gone through a lot of this... we're sort of out of time.  Everything else on here is, some of these things like Essentials of Accounting it's like, "eh", you gotta know how accounting works, you have to know what double entry bookkeeping is, this is one of the better books I've found that explains it in a clearer way, but if you have another one, or if you already know about that, that's ok too, its not the most superbly classic book.

Atwood: Right, just branch out into whatever you're interested in: I mean, follow your interests obviously, but I think my point is to cultivate interests that aren't all related around programming, I mean, you know, related things, things that take you in slightly different directions (but are still related to programming) so thats a lot of the message that I send out in my blog for sure.

Spolsky: So if I had to, you know what I'm going to do?  I'm going to go through this list one more time, and I'm just going to call out, like, the ones that are important things, you know, if you're an entrepreneur, if you're starting a high tech company, kind of the most important ones that you probably haven't encountered, you've probably already seen some of these, some of these are just filling you in, but:

Don't Make Me Think is really important for understanding UI;

The Non-Designer's Design Book is really important for understanding design;

Facts and Fallacies of Software Engineering is one of the great -- like covers some of the things you probably don't know about software engineering... lets see, I'm just skipping through to try to find the ones like... 

Peopleware is not missable.

The Secrets of Consulting, I didn't mention this earlier, thats a good one, but... you can miss it.  Unless you want to do consulting.  If you're a software consultant.

Atwood: Yeah, the [Gerald M] Weinberg books are great as well.

Spolsky: Uh, The 22 Immutable Laws of Marketing, that's pretty much-- if you have to read one book on marketing-- well no, if you have to read one book on marketing read [Influence:] The Psychology of Persuasion by Robert Cialdini, that's probably better.  And Getting to Yes, because you probably do have to do negotiation.  You're going to have to negotiate with people in zero-sum games.  And Dale Carnegie [How to Win Friends and Influence People].

Atwood: Right. No, that's a good list, I'll definitely summarize it in the notes.  So do we have any other things we want to say before we go?

Spolsky: Okay.  Is this going to be the most boring podcast we ever had? [transcriber's note: yes]

Atwood: Uh, no.  I find it interesting. I mean-- no, I don't think so.  I find the book list very interesting.  I like to read books, and I think a lot of people that read my blog like to read books, so I think it's fun.

Spolsky: Okay.

Atwood: So.

Spolsky: What would be-- you've read some of these-- which is-- and we both agree that Peopleware is sort of a big highlight, but what would be your second book to tell everybody that everybody must read?

Atwood: Well, I think Don't Make Me Think.  I mean, that's probably my #2 book of all time, so if you haven't read that, definitely read that.  But, to me, the interesting thing about this list is the more business-oriented stuff, like how to negotiate, how to do marketing.  You know, stuff that as a programmer, you're not necessarily having a burning desire to learn, but I think it's very complementary to what you ultimately do, so, it's about branching out.

Spolsky: It's kind of weird: what I've discovered is there's so many fields where there is one book that is so much better than all the other books in the field, and it's recognized that way.  And it sells better.  For example, in the field of investing: The Mythical Man Month. [Transcribers' note: I think Joel meant to say A Random Walk Down Wall Street here!].  There's always just one book that stands head and shoulders above all the other books in the field and it's the obvious one to read if you want to learn about that field.  And then there's about a million little other books that you can fill in your knowledge later.  But, the big classics-- and I've put a lot of them on here.

Atwood: Right.  So resist the urge to just code non-stop.  I mean, put down the compiler for a minute and learn about some other aspects of the world that are related to this universe that we code in.  So, I think that's the message of this particular podcast.  So Joel...

Spolsky: Alright. 

Atwood: How are we doing on transcriptions?

Spolsky: Transcriptions? We're good, I think

Atwood: Okay, excellent.  I want to extend my invitation: If you want to be in the private beta, I'm not really accepting people in anymore, but if you do a little bit of transcription work - and again, it's honour system, I'm not really going to check up on you, we're all adults here - email me and I'll be happy to invite you to the private beta.  The private beta is still scheduled for this month, it's looking like it's going to be more towards the end of this month. [nervous giggle]

Spolsky: Wait just one - why?

Atwood: It should still be this month-

Spolsky: Wait a minute, we've got to talk about schedules next week - but we're out of time [laughs]

Atwood: We can talk about schedules next week, that's no problem.  But then, as we always do, please submit questions, I think we're a little low on questions aren't we?  And we also want to urge people to...

Spolsky: Uh, you know what?  Not a quick question.  Think of something controversial for us to debate for next week.  If you've got a controversial thing that you think me and Jeff will disagree on, then that's what I'm going to play.  And what you do is record a little MP3 or Ogg Vorbis, and you email it to podcast@stackoverflow.com and we'll play it on the air. Try to keep it under 90 seconds.  There's a thing called BlogTalkRadio you can use if your computer is not setup to record, like you don't have a microphone or something. BlogTalkRadio has a phone number you can call, and it'll set you up with an MP3 you can mail us, it's quite simple.  Until then, we will see you next week!

Atwood: See you next week!

[1:09:07]

Outro, advertising

[1:10:01]

Last Modified: 8/31/2008 7:01 AM

You can subscribe to this wiki article using an RSS feed reader.