Does that make me a bad candidate?
That would be up for the company to decide, but I can tell you why it would make you a bad candidate when I hire:
There is no fixed definition of what Junior/Intermediate/Senior means. Any company can define their own titles and meanings. But there are two definitions by which I go and which make sense in most contexts, not just software development:
- A junior needs help doing their job.
- An intermediate can do their own job.
- A senior can do their own job and help the others.
Or alternatively:
- A junior asks "how".
- An intermediate knows "how" and asks "why".
- A senior can explain "how" and "why".
By that definition (and they are not universal) you got stuck at intermediate. You never bothered to ask "why", never read a book about it or followed the links to the explanations. You settled for making it work. Which is not bad, producing working software is hard enough. But it's not senior level.
That is why I would not hire you as a senior software developer. With your experience, you might be a good team lead or project manager though. You do have extensive experience on the job and I don't want to deny that. But right now, you do not demonstrate you have what it takes to be a senior software developer. By my standards, and those are arbitrary and not relevant to your situation; but I guess by those company's standards as well.
So how to get to that level? Ask "why". The first thing I do when I learn a new language is crank up the compiler, linter, analyzer or whatever the toolkit offers to maximum. I want all the warnings. I want to know what I'm doing wrong in detail. I'm not content with the fact that my if
and for
s do work in that language, too. That is a given. That is the boring easy part. I do not only want to know how it works. All those tools, if they are good, will give you loads of information, why you should be doing this or not doing that. Because when you learn the "why"s, you will understand the problems and how to handle them best in that language.
Another really good test whether you know "why" or just "how" it works, try teaching it. A junior or apprentice maybe. Because they will ask you "why". And if all you can say is "because that's how it works", then you are not there yet. You are not senior level.
So if you want to get those jobs, learn it. The three languages I program in nowadays were not even existing when I graduated. Still, I can explain "why" in all three. (Although one is a web development framework and the explanation too often is "because it's a buggy piece of..., see this github issue"). With the years, new ideas and hardware will come along. I will adapt, I will learn and I will ask "how" and then "why" every time. You can do that, too. Go give it a try, don't stop at just being good enough to make it work, strive to get better than that.