There’s a culture (and I think it’s a relatively new one — even as recently as fifteen years ago, these attributes were pretty rare) that devalues context in favor of shallow easy fixes, and I blame at least some of the forces that discourage craft in coding (like boot camps) on this cultural shift.
Once upon a time, programmers really embraced elitism, which made for an emotionally toxic environment but nevertheless was very effective in encouraging people to absorb the lore. As a result, most people either had a prety deep understanding of a wide variety of ideas (ranging from technical concepts to techniques to purely cultural things like legends & in-jokes) or were excluded. During this era, code was still bad: tools we use to improve the quality of code and make writing high-quality code easier didn’t exist or were barely usable; however, for the most part, people writing abnormally bad code knew that their code was bad & how it was bad, and just wrote it anyway out of laziness.
We lost some of that toxic elitism, and that’s probably a good thing. On the other hand, it’s not totally gone: it has mutated into a less useful form, where groups of people who are all almost uniformly incompetent form toxic hierarchies based on bogus values because they’re isolated from the greater development community. Additionally, we’ve sort of given up using shame in appropriate ways. Shame is a really excellent tool for encouraging good habits and discouraging bad ones on a community level, and where serious study and careful thinking is of great importance, not using a tool at least as powerful as shame to encourage study and care leads inevitably to a culture dominated by ignorance and carelessness.
We’ve made a mistake in the way that we’ve smoothed out the learning curves for our industry. We took the pressure off beginners to advance quickly, which is fine, but we allowed beginners to believe they are experts, and now they run bootcamps. We encouraged people to value coding, but we failed to distinguish the value of internalizing the lessons of programming from the value of memorizing how implement simple applications in a single language by rote, and we failed to distinguish the intellectual value of the programming mindset from the economic value of the programming vocation, so we’ve incentivized beginners to teach other beginners simple formulae and allowed them to believe that their limited understanding sets them up to be geniuses and millionaires. Now, we’re surrounded by overpaid beginner programmers writing reams of crap code, and it’s a crisis.
Writing good code is hard and takes time. Writing a single line of really good code takes years, because you need to study and practice for years before you are capable of distinguishing good code from bad code. Just being mindful in the moment of how much effort you’re putting in is wholly insufficient.