I used to work with an engineer named Tim. Tim, for all i could tell, was a wizard. He employed advanced and arcane magics such a
awk to achieve bizarre but desirable outcomes. After years of admiration, i copied the
.bashrc file he had written. It was a tome of spells and secrets, their true meaning lost on all but the most promising understudy.
That wizardry Tim possessed was of course not magic. It was born of determination and studiousness; the child of a desire to understand instead of an urgency to do. His patience had been rewarded, though. His mastery of the command line unlocked productivity unachievable for others on the team.
In the past, understanding was tantamount to being able to code something. Today, understanding is not the blockade to short-term productivity that it once was. We have libraries and online resources only dreamed of by coders of yesterday. But those resources have given rise to an educational complacency. We have opted to improve today's productivity at the cost of tomorrow's understanding. We have chosen to lower our own ceilings.
Or maybe we haven't chosen these things at all. Maybe we were taught to do this, either formally or culturally.
When i think back, i cannot remember a single time i ever saw Tim copy or paste something. He would reference things often, but he always typed his commands, even if it were verbatim from a man page. If i had chosen the same rigorous rule, i would have asked so many more questions when i was using the command line. What does the
u mean in
ps aux? The
tar xvf? Why am i typing these letters?
Copy-paste abstracts all of these details into a single, larger question. We answer "how do i unpack a tarball" instead of "why does this command unpack a tarball?"
This masks the incremental learning required for our continued growth as engineers. The blacksmiths of old cared as much about the details of their furnace and fires as they did about the bronze they were working. By comparison, we are mere children with hammers. We need to strive towards mastery of our tools to continue our ascension. That mastery starts with understanding.
I can't say Tim's refusal to copy-paste was itself the difference in our abilities. I am confident that it was a contributor to the sheer chasm that separated us. In the years since, i have failed to climb to the same level he was at back then. But i still copy and paste. And i still don't understand.
tl;dr: Understanding leads to productivity. Refusing to copy-paste is a simple step to incremental learning.