smarts vs experience

Justin Kan (of Justin.tv) reflects back when he was young. This is a great post, read it here: http://justinkan.com/what-good-is-experience

The gist quoted here. It’s interesting because its not often we get to hear from someone who is successfu reflecting back upon when he was younger. That’s invaluable to us younger folks.

When I didn’t have any experience, I thought that experience was totally worthless. Emmett and I taught ourselves how to build web applications in a few months in college and built the first version of Kiko pretty quickly.

We thought we were pretty awesome…. Ironically, now that I have experience, I think experience is priceless…. It was a mess of spaghetti code, and even though we built it quickly, it took a lot longer than it should have.

i see two implications:

  1. there’s a huge difference between “oh, i can pick up rails in a week” and “7 years of rails experience”. being super smart is insufficient for certain employers. you want the guy making foundation technical choices to have already learned from his mistakes
  2. if you’re in your twenties, and you’re the best coder/entrepreneur/whatever you know, your hubris is blinding you to your potential, should you work with people more experienced than you. this is not to say you can’t win the startup lottery when you’re young, but your long term expectation is higher if you learn from others before you do.

There’s a guy Brian O’Sullivan, CTO of MailRank (acquired by facebook for undisclosed amount, apparently a talent aquisition). He did his startup in Haskell. He reflects about running a startup on haskell in a video my notes here. At one part, he talks about how haskell is immature as a ecosystem and doesn’t have a lot of libraries, so he had to write a lot of routine things like JSON parsers himself. My impression from my notes as i watched his talk:

they appear to have written a ridiculous amount of functionality in haskell for MailRank. lots of haskell wrappers for stuff – they have written a lot of libraries from scratch that are “batteries included” in java and python. its interesting how much raw output they appear to have done. … Someone asks, “awful lot of inventing of wheels”? – he says, amount of work invested was a couple of days. all this stuff combined was a week extra.

a week. he spent all of a week writing all the “batteries” that come with python. 60 hours.

if you wanna build a billion dollar software company, don’t you think you should enter into this quest being the best gosh-darn software engineer possible? each year you spend learning from people better than you, will make you better prepared for when you are entirely focused on creating value. you just don’t have time to mess around with learning when you’re doing a competitive startup. If you’re maximizing value for your employer, you’re probably not maximizing your growth. You can’t, because your time is spent meeting deadlines, and shipping things half done, and maintaining other people’s solutions. You’re never going to learn about monads, or functional programming, or Clojure or Haskell or all the mind-expanding techniques that you have no excuse not to know about and consider if you consider having the best technical leadership a competitive advantage.

face it, we’re all just not that good. BOS is orders of magnitude better than me, and I spend fully half of my after-work free time studying and getting better at software.

never be the smartest person in the room.