I’ve recently noticed an issue that I face as a begintermediate developer. If I am working on a feature that I have implemented many times before, and solved over and over, it is easy for me to Get the Thing Done, and implement the feature with little time or effort required.
However, on the not-so-rare occasions when I encounter a new feature, where I need to learn how to implement it, either logically, as an algorithm, or how an api works, I can usually spend an almost unlimited amount of time reading the docs, or tutorials, playing with minimal examples to see how they work, and so forth, eventually learning how it works in some relative amount of detail.
Lewis Hine, Boy studying ca. 1924
Both of these are good scenarios. In the first case, we GTD, and in the second, we learn something. However, when external constraints come into play, I find myself running into problems. For example, if I am on a tight deadline, and need to implement a feature that I am unfamiliar with, I revert to GTD mode, look up a working code snippet, fiddle with it until it works, and then I’m done.
So far, so good.
But, there’s a problem. I haven’t learned anything. This means that the next time I run into the problem, I’ll probably hit the same quandary of GTD vs. time and learning. In the best case, I can take the time to learn it properly, in the median case, I repeat my copy-paste fiasco, and in the worst case, I may even believe that I understand it, when I don’t.
This is a very insidious problem. Because I recognize the problem as one that I have “solved” before, my brain assumes that that means that I also understand the problem, even when I may not have taken the time to learn how it really works.
I have a feeling that this kind of problem may extend into other domains. For example, in many classes, a wide variety of theories are taught superficially, possibly leading students to believing that they understand a topic, when in fact they were only given an overview. In conducting research, if we read enough articles that apply or refer to a given theory, we may believe we understand that theory, until, of course, we actually need to apply it.
Maybe I should be making a list of things I’ve read and not really learned in depth, so I can go back and study them in depth later on.