Archive for March, 2009
Lars Bak interview, all-nighters, and school
Before tonight I hadn’t heard of Lars Bak. Jeff Atwood posted a link from his twitter to an interview that the Financial Times did with Lars about his work on V8, the virtual machine that helps drive Chrome. Several things really struck me about this interview.
“Perhaps because of being a late-blooming nerd, Bak has never gone in for the caffeine-fuelled all-night coding sessions of programming legend.” …
“There’s a constant workload,” he adds, “so I always stop for dinner. You can have a normal life.” …
“Everyone seems to cycle, too, and to leave work around 5pm. “We start early, and when you get tired, there’s no point doing any more so we go home,” says Lund.”"
I’ve never understood the obsession with pulling all-nighters. People need to sleep. Why stay up all night when around 3am productivity and sharpness will take an inevitable dip? Not only are you working worse through the night, but the next day your mental capabilities are going to be even worse. The only time all-nighters seem reasonable are when you have a project due the next morning and you can then sleep and recover. Especially for extended periods, schedules including all-nighters are just infeasible and completely illogical. People always seem strangely proud after staying up all night to study for an exam the next day. To me it’s like being proud of shooting yourself in the foot. It’s nice to see someone be prominent, and successful in the software world while managing to keep a good balance between work and the rest of life.
Their relationship has changed from teacher-student to something closer to peers, but not quite; a friend describes it as wizard and apprentice.
This excerpt is from the discussion of Lars’ relationship to Kasper Lund, a former student of his who he brought to work on V8. This reminded me of something Bob Martin said on a Hanselminutes podcast where he talked about how the software industry operates. He argued that master-apprentice relationships should become more common in the software world as fresh college graduates are dropped into the industry. These kind of relationships can ease young coders into teams, projects, and foster a healthy competitive atmosphere that encourages good work and learning. Of course, these are just personal guesses, and are based off my own feelings as a computer science major. As I get closer to graduation, I’m starting to realize there’s a lot that I won’t learn by the time I graduate. It seems that there’s a mix between difficulty of teaching these materials, and unwillingness to do so.
Sure there are lots of projects that you have to do for computer science classes, but none on a often realistically large scale (at least here at UW-Madison). You almost always start your code from scratch with very specific specifications on how you should accomplish your goal. Use these class names, create these methods that do these certain tasks, use this ADT to accomplish your goal, output this. I’ve almost never had to dig through a large set of code that I’m supposed to modify or build upon. I’ve never had to deal with more than about five classes at once. I’ve never had to deal with more than one other person while writing my code. I’ve never had to deal with people who aren’t enrolled in the course while building the program, like a company has to deal with customers for whom they build the software. In several job interviews over the last months, one of the first questions I was asked was “So what large projects have you worked on?” and I didn’t have a good response. There’s a seemingly large disparity between the education for being a “computer scientist”, and being a craftsman of great software.
149 Surprising Ways to Turbocharge Your Blog With Credibility!
Merlin Mann and John Gruber recently gave a talk at SXSW about how to blog. They start off with several assumptions/requirements about someone who wants to make a blog at the start of their talk:
- I make things
- I care very much about certain issues or topics, to a point where it’s verging on obsession
- I want to get better at these things
- I want the credibility and respect of people I admire
- I want to find an opportunity that goes beyond the self-improvement aspects of blogging
Gruber then quotes Walt Disney: “We don’t make movies to make money. We make money to make more movies.”

I’d say I’m off to a pretty good start so far.
1. I do make things, but not as many as I’d like. This page will hopefully serve as a place where I can share my work with others, and receive feedback.
2. This is probably my weakest point since there isn’t only one specific thing I’d like to write about. I’d like this blog to be about the things I love and want to write about. My posts will most likely be split into one of three categories: coding, gaming, and thoughts. Coding will be where I’ll post about projects I’m working on, classes I’m taking, and things I’m learning. Gaming will be the place for writing about game design, the gaming industry, games I’m working on, etc. Anything that doesn’t fit into these categories will be put under “thoughts.” I will try using categories to make all these entries very separable. This will not be a place where I write about my personal life unless they relate directly to one of these topics. I will also have a projects page that I’ll update with things I’m working on, and things I’ve finished.
3. I am not good at most things. I’m really new to programming since I’ve been doing it for less than three years, and really don’t know much. At all. Games have been something I’ve loved since I can remember, and would like to move into making them. Right now is a very exciting time where indy games are having a huge impact on the gaming industry and it’s future, and it’s something I want to be a part of. Overall, this is a place where I’d also like to improve my writing. As a computer science major I don’t have to take many courses where I have to write, and I feel I’m losing my touch as the most intensive writing I’m doing right now is writing work e-mails.
4. I admire people who make things. I admire Merlin Mann for his millions of projects, most of which are informative or hilarious. To earn the respect of someone like Merlin Mann would be mindblowing, and hopefully I can cultivate my voice to the point where people care. When people start caring what I think, and what I’m working on is when I’ve succeeded with this blog.
5. When Merlinn said this, he was referring to making money. I don’t want to make money off a blog. I want to get better at writing, share my opinions, get better at things I care about, and have people care. Right now I don’t expect anyone to care about this blog. Hopefully I will look back at this first post in a couple years and shudder at how much I’ve improved.
Over spring break I was watching a video of the talk that Jeff Atwood gave at CUSEC this year. The title of the talk is “Is Writing More Important Than Programming?” One of his slides says “Starting a blog in 2004 is, by far, the most important thing I’ve ever done in my professional life as a software developer. My only mistake? Not starting sooner.” So I’m starting now. As a later slide says: “It doesn’t maker what you’ve done if nobody knows about it.”