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.
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
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?