5 ms·
"Instead we reward people for being smart -- for learning more and more details about trivial libraries that will be deprecated in ten years' time." I get what
by keyist 16y ago
"Instead we reward people for being smart -- for learning more and more details about trivial libraries that will be deprecated in ten years' time."
I get what the author is trying to convey in this post, but I feel he is unintentionally attacking a strawman.
I don't think many developers set out to memorize small details of libraries -- it's just something they pick up naturally over time with more usage.
My take is: on the surface, knowledge based on experience often seems like memorization. That's because when say Alice brings up a better way/library/tool, she's acting as a layer of abstraction.
You don't immediately get to see the internal processing Alice is doing to decide which library to use and why it is the best choice for your specific task. All you see is her output: "here's what you use in this situation". This isn't about knowing trivial details of libraries. It isn't about rote learning. It is the practical application of knowledge borne out of experience.
That experience is what is being rewarded, not the memorization. How to tell the difference? The best developers come with introspection tools: they are able and very willing to explain the reasoning behind their recommendations in detail.
- anonymous245 16y agoWell said. I've read that memory is an integral strength of high performers in fields such as chess and music. And btw, you can extend this casual dismissal of expertise to knowledge of algorithms and data structures too. Would this author be equally dismissive if somebody pointed out that, what he was solving was an application of so-and-so algorithm.
- alextgordon 16y agoWriting code is such a small part of our jobs anyway. If it were everything, our jobs would be easy. Most of my time is actually spent answering these questions: * Why isn't this working? * How could the user fuck this up? * How could another programmer fuck this up? * What do I want this thing to do? * What's the best/fastest/safest way to do it? No amount of abstraction will ever fully eradicate these questions while leaving a sufficiently general framework to work in - they characterise programming. And they are by no means "stupid".