Julia Evans

Hacker School's Secret Strategy for Being Super Productive (or: Help.)

(this was originally called “Help”, but instead we’re being UpWorthy today)

At Hacker School, people who are new to programming learn incredibly fast. Hacker Schoolers learn Clojure and Scala and Erlang and Python and Ruby and Haskell and web programming and sockets. They write compilers and BitTorrent clients and generate music and create new programming languages and make games. At Hacker School, people get dramatically better at programming. It’s almost a magical environment, and there are many reasons that it’s like this.

But I think one of the most important things is this:

You can always get help. Everyone takes responsibility for helping everyone else.

So, a few ways to think about help in your community, workplace, or project:

Helping saves everyone’s time.

If you have a question which will take you 2 hours to answer on your own, and 20 minutes for someone to help you with, then that person helping you saves 80 minutes of someone being frustrated.


Helping isn’t handholding.

There’s this aphorism “Give someone a fish, and they’ll eat for a day. Teach them to fish and they’ll eat for the rest of their life.”

Note that this says “teach them to fish”, not “give them a disassembled fishing rod and a manual and a map and tell them that it’s all there”. I see the latter pretty often in the world of open source, and people defend it by saying that they can’t hold everyone’s hand. There’s something in between.

Asking questions is efficient and responsible.

Asking questions at work can be scary. However! If you ask a question that saves 6 hours of your time and takes someone 30 minutes to answer, that’s an amazing use of time. I think of it as my responsibility to ask questions like this.

It needs to be okay to ask questions.

This is so important. If somebody asks you a basic question and you make fun of them or act super surprised that they don’t already, they’re going to ask less questions. And then they’re going to get less stuff done.

If someone asks you “hey, who’s Nelson Mandela?”, an inappropriate answer is “oh you don’t know?!! He’s so important!”. An appropriate answer would be “He was a South African anti-apartheid revolutionary…“.

At Hacker School there’s a huge emphasis on not acting surprised when people ask questions that might seem basic, and so people feel safer asking questions when they’re stuck.

Help turns self-directed and autonomous people into superheroes

There’s a notion sometimes that people who can learn on their own don’t need any help at all – they’ll figure it out!

And they kind of will! But it will be slow and painful and inefficient.

What I saw at Hacker School was that the amazing support that was available turned self-directed and autonomous people into superheroes. I got things done much more quickly, learned much faster, and did things I absolutely wouldn’t have been able to do otherwise.

Having 65 people in a room with you who are all willing to help you get unstuck is invaluable.

Helping people is doing work.

Sometimes I hear people in work environments say “I don’t have time, I have work to do!”

It’s important to think of supporting people and answering questions as a core part of your work, not something tangential. For everyone. It saves everyone’s time. It makes your team more efficient.

Answering questions is also an amazing way to learn. I often find that I don’t understand things as well as I think I did.

You have time to help people.

I’d also like to address the “I don’t have time” point with a concrete suggestion.

Everyone has things that they do when they’re stuck on something or need a short break (check Facebook, go read Twitter, whatever). At Hacker School when I was stuck, I’d often go on our internal chat system and answer questions!

As far as I could tell everyone else also did this. The result was that you could get answers to your questions super quickly.

A thought experiment

What if everybody asked questions when they needed help?

What if helping people was everyone’s default procrastination method?

Pair programming Debugging shared library problems with strace