Arguably python is so easy that junior devs aren't that far off from senior devs.
Start asking questions about Linux, or networking, or security, you won’t find many that can answer.
The difference between a junior and senior developer has nothing to do with the language. Regardless of the language the engineering fundamentals are the same.
Also, there's a billion mile difference between a junior's code and a senior's in any language and this is true of Python as much as anything else.
A languages syntactic or design simplicity is irrelevant. Even if it were not, Python's semantics make it particularly easy to write poor code and trigger footguns.
I've written C, JavaScript, Rust, Go, Python, Java and a bit of Erlang ... Python is easily one of the easiest languages to make a mess in if you've not got a solid engineering mindset.
I could go on, your comment was trash in so many ways, which experience would tell you.
As someone who's done 20 years of professional C++ development along with 15 years of professional python development, as well as 10 years of professional javascript/react development on a systems that go across the stack from the lowest level of sensors and embedded systems to the browser front end I know what I'm talking about.
I've also done rust, go, erlang, java, and I've also done a ton of haskell as well as lisp. I've been all over the place likely more than you.
>The difference between a junior and senior developer has nothing to do with the language. Regardless of the language the engineering fundamentals are the same.
This is beyond wrong. You've done C, you've done rust, then you must know that the fundamentals of systems programming is much more wider ranging then python. What's a pointer? What's a unique pointer or shared pointer? What's move semantics? What's the difference between stack allocation and heap allocation? What's an R value vs. L value? What's a borrowed value? What's virtual memory? What's an interface (arguably with the advent of annotations types are not more relevant in python but there is huge class of senior python programmers who don't use types)
The above are programming fundamentals that a python programmer never needs to know. A python programmer can go from junior to principal and not need to KNOW any of the above simply because python abstracts these concepts away from the user. The fact that a python programmer doesn't need to know any of these things makes it significantly easier. For web apps a company is most efficient if they hire a mid level python developer over some principle python developer with 10 years of experience.
I think your getting off on a different topic. Those guys aren't engineers anymore right? They're more technical managers; or architects.
>So yea, deep language knowledge, while an excellent skill, is not something that defines a senior eng (at least in Meta and I presume in similar FAANG companies).
I agree with this, but this is not what the others are talking about. The topic right now is about python developers. The more wider range role you're talking about here isn't a person with the title "Senior python software developer." Meta likely doesn't have that title.
Additionally, if a company works purely within the python ecosystem of web development, the "architecture" actually doesn't get too complex. Most of this stuff is trivial too, I give it an additional year to learn it.
If you're doing stuff with shared memory and utlra low latency applications then it's a completely different scenario, but you wouldn't be working in python if you had that requirement.
It might have heap allocation, Python has numpy.
Rust might ...
Even so, while there _may_ be more technical scope in some languages, or more immediate surface area, this should be true:
A senior developer primarily in language Y should be technically capable enough to be senior in language Z with some degree of work.
The language isn't relevant. Data structures, engineering mindset, pragmatism, intuition, maths reasoning, abstract thinking, ...
These are things that make a senior developer.
If I find a Python dev without this skillset at a high level they're not being put in a senior position because they'll add technical debt, cost and risk without even knowing it. They're a liability.
Your "senior" Python developers don't sound senior to me.
If you think you can promote anyone to senior or principal without the above, you're a liability too. Good job.
You must be from a hacker school. C has pointers.
>It might have heap allocation, Python has numpy.
Python has heap allocation. Every freaking programming language has heap allocation.
It's just in python you don't have to know when it happens and when it doesn't happen. It's hidden from you. You can guess when it happens but you have to be senior enough to know what it means.
When you need to worry about heap allocation, python is the language to NOT use. If you're a python developer, you'll never hit this problem.
>The language isn't relevant.
It is relevant. It's clear to me you don't even know what a heap allocation is and when it occurs. This concept is complex enough that you need a bit of intuition to know it. Glancing at the wikipedia won't provide you with the needed insight. If you did C++ you'd know it and you would also know how to perform this optimization in python.
In fact in fintech and gaming, they don't hire python programmers to do C++ work for a specific reason. It's 10x harder to program C++. Language MATTERS.
>Data structures, engineering mindset, pragmatism, intuition, maths reasoning, abstract thinking, ...
pfft. you think this type of thinking exists only for a select few? Let me put it to you this way. Most people in the world of normal intelligence can learn calculus. If you can learn calculus then you have the capacity to learn all of the above. Which is basically most people on earth.
>If I find a Python dev without this skillset at a high level they're not being put in a senior position because they'll add technical debt, cost and risk without even knowing it. They're a liability.
Yeah give them 1-2 years. They will get those abilities if they want it.
>If you think you can promote anyone to senior or principal without the above, you're a liability too. Good job.
You can't promote anyone. At that level it's largely political. How well can you lead, how well can you direct, how much other people respect you. It's also how a company defines the word principal. The people in these roles are not always the best in terms of technical ability.
The promotion is at the purview of the manager and he doesn't choose such a promotion based off of technical ability. If he did then a standardized test would be the most efficient way to measure technical ability.
For C++ it takes probably 4 or 5 years.
This is not nonsense. This is real.
As much as people like to think that developers are just cogs on wheels, companies still want experienced devs (senior and above), and they are still difficult to hire.