“He who knows best knows how little he knows.” – Thomas Jefferson
I’m not trying to be rude with the title of this blog post; it was inspired by reading a post about the 5 Orders of Ignorance:
- You have 0 OI when you know something.
- You have 1 OI when you know you don’t know something.
- You have 2 OI when you are unaware of what you don’t know.
- You have 3 OI when you don’t even have a way to figure out what you don’t know.
- The final level of ignorance—meta ignorance (4OI)—is when you don’t know about the levels of ignorance
Now that you have read this post then you are no longer at level 4. You may thank me for this — or you may not, as life can be a lot easier living in ignorance.
Understanding My Ignorance
Since I started working at Atomic, the number of things that have made it into my Level 1 has increased.
This increase in awareness of what I don’t know has given me a sense that there are likely a lot more things lurking on my 2nd level — what don’t I know about.
Tackling My Ignorance
So what to do? I need something at level 3 so I have some process to find out what I don’t know and to work out whether I need to know about it — and if so how much? Here are a few things that have helped me:
- I make sure I attend the regular brown bag sessions held at Atomic — one of the core Atomic Values is “teach and learn,” so there are a lot of opportunities to hear and learn about topics I might not otherwise have known about.
- Atomic has an open office plan, so keeping my eyes and ears open to everything that is going on around me is another way I can pick up on areas unknown to me.
- Everyone at Atomic blogs, so reading Atomic Spin is a source of ideas. I also check out Hacker News on a regular basis.
Once I’ve found a subject I don’t know about, I find out how a beginner can learn about the subject. My preferred learning method is reading, so I try to find a book or website for newbies. For example Change by Design was recommended as a good introduction to design, and Learn You A Haskell was recommended as a start for learning about functional languages.
Then I have to try and filter what would be directly useful for me to know — as opposed to things I’d like to know just to satisfy my own curiosity. This is where it gets tough. How do you know whether something is going to be useful or not?
This isn’t easy. For example, see this recent blog post where an Atomic maker learned Haskell even though he wasn’t directly using the language at work and was able to use lessons from that learning.
As well as learning, I try to share knowledge. At a recent GR Testers Meetup, I introduced the concept of bug taxonomies and how they could be used. I shared some resources where they could find more information and left it to them to decide if it was worthwhile or not.
What strategies do you use for finding out new information and working out what you should be learning next?