Going to software meetups always inspire me with some new ideas.

On last PyWaw meeting (Warsaw python users meetup group) I've met a guy from software mill - company with a very nice blog.

Software Apprenticeship Patterns Book

Continuing my Depth First Traversal on their website I've read a review of Software Apprenticeship Patterns.


Book turned out to be free to read on O'Reilly chimera labs website here. If you haven't checked this website yet, do it now - it's like a treasure box - excellent books available for free to read and good looking website, making reading really pleasant.

Back to the Apprenticeship Patterns Book, like title suggest, it's full of patterns. There are mostly pragmatic and possible to implement in your life easily. I found the very valuable duo. First is called "Expose your ignorance" and the second is "Confront your ignorance". You can read about them here.

Confronting our ignorance

They sound pretty obvious, right? Why should you care? Every developer is confused from time to time (if you aren't maybe you aren't challenge enough?). There are some areas in which we definitely aren't experts. They can make us feel insecure, unqualified, challenged (positive one) impostor or just lead to bad decision when combined with overconfidence.

In these patterns there are two exercises:

  1. Create a list of five things you would like or have to learn about
    • grab evernote, vim or even paper and make a short list
    • be honest with yourself
    • it can be more than five, but shouldn't be less
  2. Choose one item from the list and learn it
    • the best would be to create another note with... notes from your learning adventure
    • get comfortable with it
      • create some proof of concept
      • build breakable toy or just play with the idea
      • try to explain it to somebody else
  3. Append more things to the list and continue learning

I call it a technique of Five areas of ignorance.

How it is better than the organic way?

  • writing a list help you with identifying problems and bottlenecks
  • you're focused, because you place items on the list due to actual need of learning them (not because they look cool in hacker news)
  • notes accumulate
    • lots of good materials for review or sharing
    • sign of real progress
  • learning what you lack, give you the biggest performance boost
  • five (or more) is enough to give you a choice and not bore or tire you to death

I highly recommend it to everyone. It's very simple and surprisingly effective.