| I think I've seen people I'd describe similar to the way you describe yourself. Disclaimer: I think you sound to be quite a bit better than the 2 people I'm about to describe. Just to be clear. Both people, lots of experience: 30+ years (while me and peers are not even 30 years old) and yet we look at their code (when asked to make changes, or we find a bug, etc) and it's like... We couldn't even write code like that if we tried for, e.g., an April Fool's joke. There's just way too much commitment to doing things dreadfully for it to be possible to be a joke. 1-3 character variable names, huge blocks of code copy/pasted, redundant hard-coded constants, bizarre abuse of scope, resistance to using functions and classes to split up code, god-classes and 5000-line functions when they do get used, etc etc. And I never felt like their main issue was that they're "bad engineers" or "too old" or anything. It was that they were: 1. completely unapologetic
2. showed absolutely no interest in changing
3. extremely resistant to any process changes that would hold them accountable for code quality (like doing code reviews or using a linter or CI build process) I think they'd mainly gotten away with just writing crap code for so long that they didn't want to have to change, or had internalized it as "I just write the code plainly, without using tons of layers of functions and classes and stuff". And don't mistake this as someone being woke in a herd of people building big towering oop abstraction factories. That job never got anywhere close to having too much abstraction in the code. People were always way over at the "low abstraction" side of the spectrum. There was no ORM use, no dependency injection frameworks, no unit testing and nothing was testable (because making code testable requires encapsulating and abstracting things into units, yknow), etc. So I'd say the fact that you understand, have the humility to admit it, and want to do something to change are the biggest issues out of the way. |