> With no experience, you're a tabula rasa, but once you've been carved, that's it, fixed in stone.
I mean, if you work in a company/team with bad practices, then that's likely to rub off onto you and affect your further employment prospects, because it will be hard to unlearn being okay with untestable code, no documentation and even the code itself not being self-documenting where possible, the code being not scalable, having N+1 problems and so on.
It can also happen that the person learns "this doesn't work well, this also doesn't, this too -- I wish we were doing everything differently!"
And later, when joining a better company, s/he more deeply understands the reasons behind their good practices -- because s/he has seen the mess, without.
Having seen and lived in mistakes, is life experience, can be useful. Depends on the person
> And later, when joining a better company, s/he more deeply understands the reasons behind their good practices -- because s/he has seen the mess, without.
There are two assumptions here:
1. that the person will be accepted into that better company, even with these pre-existing sub-optimal practices which may manifest in a coding interview or a take-home task
2. that the person will be open to learning these better practices, instead of being set in their ways, after having had their first experiences shape their views without the desire to challenge them
I agree that there is definitely potential for growth, but in some respects, for certain individuals such pre-existing views might be a liability. Though that also speaks of one's quality as an engineer, of course.
I mean, if you work in a company/team with bad practices, then that's likely to rub off onto you and affect your further employment prospects, because it will be hard to unlearn being okay with untestable code, no documentation and even the code itself not being self-documenting where possible, the code being not scalable, having N+1 problems and so on.