>There's also plenty of Python developers two years in (that I've interviewed and rejected) who couldn't write me a decorator or explain MRO.
First off both MRO and decorators can be learned in 1 week max by anyone. And one week is REALLY forgiving. Literally. You have to be mentally deficient not to be able to learn it. They simply didn't encounter the python feature in their experience. You would just reject them for not knowing about those features?
Second off decorators are syntactical tricks. You can get around python without ever using them. If you encounter them in libraries you just need to know what they do at a high level, you don't need to know how to implement them. If you ever do need to implement one just look it up. I don't judge people for not knowing syntactic tricks.
Third, MRO is something that should be not heavily used at all. You should avoid inheritance as much as possible. Additionally you should avoid double inheritance all together. The MRO/inheritance concept is a left over thing from an outdated programming style. At most you should know inheritance, and at most have one level of it if you must and try to use interfaces instead. Nowadays I expect only to see inheritance in existing libraries/tech debt and not newly written code from senior programmers. If someone encounters MRO issues, again, I just expect them to look it up.
I'll actually judge someone who expects others to know MRO given how outdated it is. I won't think they're stupid, or I won't not hire them or anything like that. I just know they aren't up to date with the current methodology but they can easily learn it if needed.
Overall, you're just setting a high bar artificially. It's like hiring janitors who only have phds in chemistry to know what's in the cleaning chemicals.
> Yes but the same timeline can be done for C, C#, Java or anything else.
No Java and C# languages are complex enough that it can be done in a 2 year timeline but these languages are hard enough that they are in a different class then python. C with memory management is harder then both java and C#. Memory management simply isn't intuitive.