I think a big part of the reason we associate productivity with senior engineers is their ability to perform common coding tasks from memory in just a few minutes. To adopt a video game analogy: sometimes coding is a metroidvania and the right combination of button presses in the right order can finish up a task really quickly. Other times, coding is a puzzle game, where experience sometimes gives you an intuition for how to solve the problem, and other times sends you running in the wrong direction. Thus the importance of a wide variety of perspectives and experience levels.
Balance
Sometimes a junior engineer comes in fully loaded with Best Practices™, design patterns and other Platonic ideals and becomes disillusioned really fast when presented with the compromises and shortcomings of normal software. If they're unwise, they try to fix everything and make all the code perfect; this is a mistake. Senior engineers generally understand that code isn't perfect--there are things you can do to improve it, but only so much is practical. This lets them optimize for development speed and simplicity, which can be extraordinarily difficult to do without having a few hundred thousand lines of code under your belt.
Brilliant. Love that second point. Just yesterday I downloaded a tutorial R script for something I'm working on and didn't like the way it was styled, so I started changing it.
Now I'm thinking that might be a little over-zealous.
reminds me of my first few months as a dev when I was in a "fix all the static analysis warnings" mode on a project which ended up rewritten from scratch because new requirements didn't fit the old architecture a few months later
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
(Mental) Muscle Memory
I think a big part of the reason we associate productivity with senior engineers is their ability to perform common coding tasks from memory in just a few minutes. To adopt a video game analogy: sometimes coding is a metroidvania and the right combination of button presses in the right order can finish up a task really quickly. Other times, coding is a puzzle game, where experience sometimes gives you an intuition for how to solve the problem, and other times sends you running in the wrong direction. Thus the importance of a wide variety of perspectives and experience levels.
Balance
Sometimes a junior engineer comes in fully loaded with Best Practices™, design patterns and other Platonic ideals and becomes disillusioned really fast when presented with the compromises and shortcomings of normal software. If they're unwise, they try to fix everything and make all the code perfect; this is a mistake. Senior engineers generally understand that code isn't perfect--there are things you can do to improve it, but only so much is practical. This lets them optimize for development speed and simplicity, which can be extraordinarily difficult to do without having a few hundred thousand lines of code under your belt.
"Best Practices™" - I love it !
Brilliant. Love that second point. Just yesterday I downloaded a tutorial R script for something I'm working on and didn't like the way it was styled, so I started changing it.
Now I'm thinking that might be a little over-zealous.
reminds me of my first few months as a dev when I was in a "fix all the static analysis warnings" mode on a project which ended up rewritten from scratch because new requirements didn't fit the old architecture a few months later