Stop Force-Feeding Your Brain

Media_httpimages20x20_qghzd

I used to read less than one book per year. According to Code Complete, this is the same as the average programmer.

That was while I was at uni though. I sort of expected to learn slowly at uni, and anticipated rapid, mind-blowing learning when I entered the industry. My first job had me working under some of the smartest people I have ever met - it was at a game company. Unfortunately they ran out of money and I had to find a job at a slower-paced place, where I didn't have the luxury of mentorship.

My mind was going stale, I had to do something. I looked up recommended reading lists online and the first programming book I picked up (that wasn't for a uni course) was The Pragmatic Programmer. Are you sick of me mentioning this book in every post yet? ;)

PragProg recommends that you treat your learning as investment, and your knowledge as a portfolio; you should invest regularly, diversify, balance it between high-risk and conservative, buy low and sell high (i.e. take interest in emerging technologies). It recommends several goals, such as reading a technical book each quarter, and when you've developed the habit, one per month. It also recommends reading non-technical books too. I totally fell in love with this idea, and have been reading like a mofo since.

There is a slight problem though...

The final point PragProg gives is to review and rebalance. The point it makes is that you need to stop learning things that aren't providing value, and revise things you have forgotten occasionally. I want to focus on the STOP part of this. For the love of God, take it easy! It takes years to learn all this stuff - you don't have to do it all at once.

I am guilty of bingeing on blogs and books. I picture learning like a tree-traversal, with each (sub)topic having a different branch. The problem is, I keep getting excited about new books or programming languages I find, and never reach the leaves. I really need to learn focus, because I'm swinging from branch to branch like a monkey.

Monkey

During my reading, I have realised that other smart people are with me on this. In The 4-Hour Workweek, Tim Ferris mentions that you should only ever read one factual book concurrently, along with one fictional book. You aren't productive if you are reading more than one factual book - context switches are expensive.

The current non-tech book that I'm reading is Zen and the Art of Motorcycle Maintenance - this may be a bit of a cheat, because it is recommended on some programmer reading lists. The narrator talks about his coming to enjoy the journey more than the actual arrival. The process of learning is itself something to be enjoyed, and isn't just yak shaving.

Rob Walling says in his startup book Start Small, Stay Small that entrepreneurs should stop reading so much. He says "Information Consumption is Only Good When it Produces Something", although it can be done for pure enjoyment too - as long as you pay attention to when you NEED TO DO IT and when you just want to (which is more often than you think).

How do we know what input will produce good output? We can use heuristics when choosing (which is what we all do anyway) - such as author name - but you can't know for sure unless you've read it. Swinging from branch to branch is a necessary evil, then. We need to work out a balance between input and output, or that which Monkey sees and that which Monkey Does.

Here are some of my own tips for curing this information-eating-disorder:

  • Allow yourself to quit. Sometimes projects just aren't worth your effort.

  • Only read two books - one technical, one non-technical - at a time. As above, you can quit a book at any time, but avoid constant interleaved reading.

  • Install RescueTime. It passively monitors and graphs your activity breakdown. This will awaken you to how much useless crap you do in a day.

What gets measured gets managed - Peter Drucker

  • Instapaper. Use it (on your computer and phone), love it. If you aren't reading this blog post during down-time (e.g. during a train commute) then I'm looking at you in particular. I won't read a blog post unless it goes through my instapaper account first.

  • Periodically cull your RSS feeds. Eddie Smith of Practically Efficient suggests eliminating feeds that produce more than ten posts per day. I recommend scheduling reminders to cull your feeds on a regular basis. Hacker News should come to mind - give one of these popularity-sensitive feeds a try instead, to make use of human filtering.

  • Write todo lists. You probably do this anyway, except this time I want you to write two of them side by side... let's call this the "twodolist" method. The first is for things that you absolutely have to finish - maybe you are obligated to do it for work, maybe it counts toward your primary objective, like writing a thesis or starting a startup. The second list is
    for the things you want to do that seems important enough to put on a list. This may include reading a certain book.

    The act of applying this mental scalpel really helps me. When I am "busy", it is often the case that I am working off the second list, which means I'm avoiding the first.

    Twodo
  • Turn off push notifications for your phone. This is just another unnecessary context switch - you don't really need to know the exact moment you get an email.

Now it's your turn! Please leave any advice (big or small) in the comments.