Companies use Leetcode because they don’t want to pay for experience.
A solid experienced engineer is worth their weight in gold. A lot of folks consider themselves solid experienced engineers who couldn't program a hello world in any modern computing environment. This is quite unfortunate, and more chaff to sort through.
Not defending leetcode. At least it shows someone is trying?
If you aren’t able to do the job (defined by your peers and the market), you either don’t get paid, or you have to force the market to pay you or change the job, despite not doing the original job (often through legal threats/strikes). It’s a market protectionism vs market need thing.
We seem to be advocating here that the best solution (software, market) should win, and that’s what I’ve seen in the global marketplace where legal threats like strikes generally have low impact.
What I’ve seen in other areas where the legal situation allows more leverage from labor is happier but fewer and lower paid labor, in often a much smaller market. Essentially a ‘I got mine’ type setup where incumbents get good slots and it’s super hard to get into once established because the pie overall is smaller and guarded. It screws over the newcomers and unestablished in favor of the incumbents.
China has started to export some really amazing home grown tech (including software) in some verticals, and if you think they give a rats ass about EU, US, etc. programmers - well, they don’t. Just like French don’t really care about Japanese labor conditions.
So we either wall off that software (often to everyone else’s detriment - those would be good products for less cost otherwise for people to use) to protect the local labor/market conditions and cause distortions elsewhere, or.... keep up? Japan is notorious for the protections it has, and is terrible software wise almost everywhere. Pretty solidly stuck in the late 80’s when they were the newcomers and were actually innovating.
And if we aren’t even trying to keep up, well - that just means the people who are will win/define the end state won’t it?
It’s the harsh reality of the real world. EU has been going the way of protectionism for a long time, which is great from a ‘retirement community’ type sense, but there is a reason there aren’t many cutting edge tech firms originating there. It’s pretty clear from the constant handwringing from the EU on anything regarding tech or competitiveness that they know it too, but can’t make the trade offs to fix it. Great if you’re already established and looking to keep things cushy, pretty terrible if you’re trying to get established though.
Like the thread with the folks who broke into tech by problem solving a case as a kid - imagine if they wouldn’t have been allowed to shell script until they’d gotten certified or joined the appropriate union?
It’s also why salaries are generally so much lower there for engineers. The real world doesn’t much care about what we (as producers or market participants) want in an abstract ‘it’s not fair’ sense, it’s about the economics of the markets and the needs and who can meet them best. If someone can get me firewood for $5 at the same or better quality as the person selling it for $10, it would require a lot to not take the $5 person up on their offer for the vast majority of people. It’s what has led to a massive expansion in wealth for all humans, as we constantly look to optimize and create more value for less cost.
If someone has 20 years of experience in tech x, but I use tech y - and they have shown zero interest in, and can’t demonstrate how to apply that experience in tech x to tech y - why should I or anyone be paying them for something that is not applicable or helpful to me at all? So they can feel like it wasn’t wasted? Good for them, bad for me.
Many companies pay for raw skills, ability to learn quickly, ability to hone their skills, attention to details.
If you can ace leetcode, topcoder, codejam, and alike in a short period of time, you probably have a very high capability of learning.
Coding is the core skill of software engineering.
For other skills, say, communication, you will need to have an adequate amount of it, but you don't need to be godlike (e.g. think Bill Clinton's level).
If you have the Bill Clinton's level of communication, you will likely be in other positions.
Now if you have the Bill Clinton's level of coding, you will be software engineer.