Maybe. I think of a senior programmer as someone with a track record of adding value, capable of solving problems, leading a team, making sense of requirements.
Mastering every intricacy of a language and its ecosystem has value but that’s not what most employers or customers care about or pay for. My customers almost never care about the language or tools I use, or quality of the code, or anything programmers obsess over. They care about spending their money to get more value through reduced costs or increased efficiency.
You can optimize to impress your peers, or to always have a job (or customers if you freelance). Depends on your priorities.
Programming expertise is largely cumulative because the basic concepts apply in every language. Someone with 5+ years experience with real C++ projects shouldn’t struggle too much with Java or Python.
I think you are forgetting that when somebody solves a problem and adds value, it cannot be disassociated from how it got there. That is where mastery of the language/technical details come in. Of course you don't need to know all dark corners but fluency in commonly used idioms/techniques are a must.
Of course. I should have written that programming mastery, which includes a good understanding of how to use programming languages, is necessary but not sufficient to achieving "senior" status, or building a long-term career in the field. A programmer who focuses exclusively on mastering languages is like an architect who focuses exclusively on mastering drafting. I would have thought this would go without saying, but more and more I see programmers define themselves in terms of languages and related tools, and even demand that their work revolves around their preferences. That's a limiting choice, not a way to build a successful career.
Please point me to these employers who don't care about technical skill.
I was a tech lead for a year and senior developer for another on a FileNet application. I would love a $140k+ tech lead position that doesn't require experience in the tech.
I never wrote that employers don't care about technical skills. You either didn't read what I wrote or you reduced it to a binary choice so it doesn't make sense.
"My customers almost never care about the language or tools I use, or quality of the code, or anything programmers obsess over."
I would say technical/language expertise falls in that last category. You also allude to employers caring more about the qualities listed in your first paragraph and caring about output/value.
That's my experience. My customers never tell me "We need 2,000 more lines of Javascript code by next month." They do tell me "We need to reduce shipping costs" or "We need to put up a new marketing web site." They don't care how I solve those problems, though their existing infrastructure, code base, and staff will usually put some constraints around the possible solutions.
My customers almost never look at my code. Most of them couldn't tell you what languages and tools I used. They care about the result, in the same way I care that clean water comes out of my faucet a lot more than I care about what kind and brand of pipe was used in the construction of my house.
As I already wrote in other comments, mastery of multiple languages, tools, idioms, and purely technical skills are necessary but not sufficient to call yourself a "senior programmer" (in my opinion, anyway), and necessary but not sufficient to build a long-term career as a programmer.
I know in many jobs language skill and experience matters a lot, because the company has already committed to an ecosystem and can't afford to or won't invest in lengthy training (mainly because of the high cost and risk). Some shops absolutely do care that their new hires already know Python or C++ in depth, and I have worked in those environments. But that's because they can test and measure that ability, whereas they can't easily measure a candidate's ability to add value and solve problems in the business domain. I can say with confidence that I can learn a new language ecosystem very quickly because of my decades of experience, but I may not be able to persuade a room full of programmers quizzing me that I have that ability. As a freelancer I'm normally dealing with business people faced with business problems, not a a group of programmers forced to interview me. Either I can deliver or I can't, that's all that matters to my customers. I have a career history that shows that I can work in a programming team and contribute effectively, and I can learn new languages and tools pretty fast, but I would today not get far in a Google or Facebook interview because they tune their screening process for technical skills they can measure and evaluate. They can afford the false negatives. At my age they wouldn't consider me anyway but that's another problem. I used to work in Silicon Valley for a big tech company but that's not an environment I'd go back to. I now prefer working directly with the people who can make business decisions and pay for them, and not for people who think my inability to balance a binary tree on a whiteboard is relevant.
Mastering every intricacy of a language and its ecosystem has value but that’s not what most employers or customers care about or pay for. My customers almost never care about the language or tools I use, or quality of the code, or anything programmers obsess over. They care about spending their money to get more value through reduced costs or increased efficiency.
You can optimize to impress your peers, or to always have a job (or customers if you freelance). Depends on your priorities.
Programming expertise is largely cumulative because the basic concepts apply in every language. Someone with 5+ years experience with real C++ projects shouldn’t struggle too much with Java or Python.