Knowledge is Relative

As a mentor, I spend a lot of time calming people down. This is I suppose my mother hen approach to mentorship, but it seems to work for the subset of people who I take on. I wrote a letter to someone who feels recently like she's failed because she doesn't have a firm grounding on the basics of what she's trying to learn. She doesn't see the progress she's made, or the ground she's gained- she only sees what she doesn't yet understand. I've written this letter to many people in the past, and I suspect I'll write it many times in the future. Here is what I usually say, more or less, with the identifying bits left out.

You are worrying a lot. I'm seeing a lot of concern over a perceived imposition you make on others by not knowing something. I also think your definition of a solid understanding will continue to be a moving target, which is a peril for very smart people.

When you begin to understand something, you'll notice that your estimation of your understanding of a topic will fall. This is natural - before, you didn't know the depth of what you didn't understand. Now that you understand enough of a topic to know just how far up the curve goes, you feel you're at the beginning of an endless journey. The hardest part at this point is admitting to yourself what you do know. What I do with students is have them TA a course, help other people with their mistakes. 

Knowledge is like movement in space. If you existed in a void, you might think you were going infinitely fast, or infinitely slow. It is only our position relative to others that shows us our own pace of advancement. Right now, you feel you're surrounded by people going much faster than you- you're fixed on distant points that grow imperceptibly and you fear you will never reach them. Understand that just because your goal may be light years from where you're at doesn't mean that you're not moving at an impressive clip, or passing others too fast for you to even notice. You may want to be a very accomplished developer one day - does that mean it's unacceptable to reach the level of jr. developer at some point? 

About a month and a half ago, including holidays, you had trouble with the concept of a variable. Now, you're working with asynchronous data protocols, managing two environments and the state therein, and managing to convince yourself that you've barely made progress, all at the same time. Rather impressive.

What I'm trying to say is: As you learn more, your definition of a firm grounding is going to change. You need to write down what your goal is, and acknowledge to yourself when you get there.

Hopefully she won't mind me making the generic-advice part of this letter public. The biggest takeaway from that speech is to acknowledge your waypoints, and to understand that they represent progress. Set a goal, meet that goal, acknowledge that you met that goal. Don't worry about all the goals you set for yourself along the way to meeting your original goal.