How Do You Know What You Don’t Know?

research

I joined Atomic Object last summer as an apprentice. I was eager to learn and work with people who give a shit about what they do. As an apprentice, I wasn’t expected to be an expert, but I was expected to soak in as much knowledge in three months as humanly possible. I quickly found that there was a lot I didn’t know and a lot that I didn’t have a deep understanding of.

But how could I ever know what I don’t know? I came up with three criteria to help me determine how well I understand a particular topic.

Do I know what it is?

This is the first question that I ask myself. If I can’t identify the topic, I know I have virtually no understanding of it. I could derive some initial assumptions based on the term or technology, but that is not enough for me.

When I come across a topic that I have never heard of, my first step is to find someone that does know about the topic. Sometimes it is my mentor or a teammate; other times it was an article written by an expert in the field. Once I have a better understanding of the topic, I ask myself a second question.

Can I talk to it?

If there are ever any holes in your understanding of a topic, discussion of that topic will put a spotlight on those holes. There are two ways that I can tell when I don’t have a good understanding of a topic:

I resort to generalities.

When I don’t understand the intricacies of a philosophy or a term, I find myself describing it too vaguely. For example, lets say I am just learning Objective-C, and I have limited exposure to Reactive Cocoa. I am asked to explain this gist.


@weakify(self);
[[[self.propertyA sendSomeInterestingMessage]
    flattenMap:^RACStream *(SomeOtherObject *param1) {
      @strongify(self);
      return [self.someProperty someMessage:param1.property];
    }]
    subscribeError:^(NSError *error) {
      @strongify(self);
      [self.someRacSubject sendNext:nil];
    }];

If I didn’t have a good understanding of the gist, I may respond with: “Well, the property on self receives a message that it returns, and if there is an error, it sends a message.”

After doing some research of Reactive Cocoa, I may respond with: “Well, propertyA on self receives a message and the flattenMap block is executed that will return a new signal which is a merging of all received signals. If an error occurs, we send a message on a someRacSubject.”

I clam up.

If I’m not confident in my ability to explain an idea, I don’t share the idea at all.

In order to better talk about ideas, I know I need a deeper understanding. These are the times I know I should pick up a book for some heavier reading.

Can I apply it?

This is the final question I ask myself. If I can apply the topic, I have a good understanding. If I cannot apply it, I know it is time to iterate back to the second question and maybe time to pick up a book on it.

It is amazing how well answering these three questions sheds light on gaps in my knowledge or creates a stronger foundation of my knowledge. When I can confidently answer these three questions, I know I have a great understanding of the topic and therefore I’m confident in my ability to discuss and use it.

What techniques do you use to teach or solidify your understanding of topics?
 

Conversation
  • Phil Kirkham Phil Kirkham says:

    Seems that working at Atomic makes us realise how much we dont know..

    https://spin.atomicobject.com/2013/03/19/how-ignorant-are-you/

    I like your 3 questions, I’ll make use of them

  • Comments are closed.