I've noticed a shift in what I teach juniors first. Previously, it'd be coding stuff before anything else. That's now changed to environments, tools, high level design, and small, replaceable parts.
Sure, they make mistakes, but they learn the code patterns and stuff as they go along. Which even if they were to "study" design patterns first, would have had to do anyway. The code stuff has become a side effect of getting stuff done.
This shift has happened organically. I've come to realise that "local architecture" and "cleanliness" doesn't really stand up to the harsh reality of changes. It's been surprising as well, and had I done it intentionally, I'd have found it hard to do.
It turns out productive engineers delivering are more productive than artisan codesmiths. Sure, in a giant project, things can get awfully messy, and that's where patterns etc. come into their own, but it can be argued that we're moving away from the giants.
Localised mess is easier to replace than one big lump that starts out with clean bits and well... becomes a tangled mess over time. The drive away from that seems to be reflecting on teaching priorities.
• • •
Missing some Tweet in this thread? You can try to
force a refresh