And you can know 100% of the technologies they use; open the repo and still say,
“what the hell were they thinking using X like Y!”
“Why didn’t they use Y here”
“Oh man, this looks like monkey patched code from 2 full versions ago, the right way to handle this now would be 1/3 the code, but oh they can’t update it because they’re mutating the data structure in order to Z… Fuck…”
Edit: Eventually, you'll come to an understanding of why it's that way, but it takes time and often experimentation.
That wasn't the point. You missed the context or something. Those were just examples of initial thoughts that come up when starting to understand a new codebase.
My point was exactly the opposite and parallel to what you said. But even with experience it takes time to decode those decisions.
The point is that it takes time to understand the whys of code that is counterintuitive at first.
If they know the technology that’s one less thing to worry about.