> And, I would say that the number of jobs that require the mastery of the craft is not large.
This mindset is how we end up with layers upon layers of badly designed and buggy software that underpins almost every aspect of modern life.
Just apply the same reasoning to other areas: Would you want to drive in a bus with a bus driver who just barely got his driver's license? Would you want to use a bridge designed by an architect who knows just enough to complete the job and does not care a bit for more?
It does not take mastery to write one-off scripts that "get the job done". However, they will probably not be a general purpose solution of the problem at hand, ignore corner cases, contain bugs… and the real test comes when requirements inevitably change.
If you want to write dependable, high-quality, maintainable, reusable software you better know more than the bare minimum.
This mindset is how we end up with layers upon layers of badly designed and buggy software that underpins almost every aspect of modern life.
Just apply the same reasoning to other areas: Would you want to drive in a bus with a bus driver who just barely got his driver's license? Would you want to use a bridge designed by an architect who knows just enough to complete the job and does not care a bit for more?
It does not take mastery to write one-off scripts that "get the job done". However, they will probably not be a general purpose solution of the problem at hand, ignore corner cases, contain bugs… and the real test comes when requirements inevitably change.
If you want to write dependable, high-quality, maintainable, reusable software you better know more than the bare minimum.