Humans are notoriously bad at assessing their own understanding. There’s even a fancy name for it “the illusion of explanatory depth” is a mental failure humans experience where they think they understand something till they try to explain it, then they’re confused when confronted by the fact that their explanation makes no sense. The example often given is of a toilet.
I submitted code yesterday that I could explain but not replicate.
I could easily submit code I could replicate but not debug. (Frankly history shows that debugging code is often harder than writing it)
I could write tests for code I could neither replicate nor debug. I would argue that the testing part is of higher value than understanding, replicating or debugging. Because in a sense you’re proving that it does all the things the tests say it does.
I would argue that “Understand” is a word so broad as to be useless in this context. Perhaps you should not submit code (or in fact any work product) that has not been verified.
This is so true especially in this age of AI assisted development. I see a lot of junior developers, and even a bit of senior developers, care more about code output, rather than code comprehension. You ask them to explain a PR and they just fall apart.
There’s a spectrum of understanding.
Humans are notoriously bad at assessing their own understanding. There’s even a fancy name for it “the illusion of explanatory depth” is a mental failure humans experience where they think they understand something till they try to explain it, then they’re confused when confronted by the fact that their explanation makes no sense. The example often given is of a toilet.
I submitted code yesterday that I could explain but not replicate.
I could easily submit code I could replicate but not debug. (Frankly history shows that debugging code is often harder than writing it)
I could write tests for code I could neither replicate nor debug. I would argue that the testing part is of higher value than understanding, replicating or debugging. Because in a sense you’re proving that it does all the things the tests say it does.
I would argue that “Understand” is a word so broad as to be useless in this context. Perhaps you should not submit code (or in fact any work product) that has not been verified.
This is so true especially in this age of AI assisted development. I see a lot of junior developers, and even a bit of senior developers, care more about code output, rather than code comprehension. You ask them to explain a PR and they just fall apart.