I'm sure what you're talking about happens too, but I've seen the other thing first hand a couple times so I know it can be less malicious than that.
Has it gotten worse in the last 5 years?
The practice is just a veiled hazing ritual meant to strip you of dignity and agency.
If it isn't meant to do that...well, guess what? That's what it is doing.
And if I study real hard and maybe take a boot camp, I can join one of the illustrious paragons of internet virtue such as Facebook (sorry, meta block chain addicts inc.) or Google to spread ad-tech throughout the known universe.
Most development jobs require very little CS theory or hobby projects to do the actual work. Most of what software engineers build are glorified CRUD apps. What those things tell a prospective employer is that you’re willing and able to grind yourself to the bone.
Case in point: I’ve been hiring people from local minority jobs programs for entry level dev roles. Yes they’re green as heck (usually just a coding bootcamp) and we have to handhold them for a few months, but it gives mentorship opportunities to our mid-level devs and after 6 months of project work you’d be hard pressed to tell the difference.
Not everyone can take a couple years off work to go get an advanced degree. These jobs are not so hard they require one. Credential inflation is out of control, and trying to hyper-optimize individual achievement often ends up building poor teams. Give me someone with good work-life balance and priorities outside work any day.
Word. I left the industry to sit around my farm and raise my kids for about ten years. When I came back and started working with people I was shocked at how long it takes to learn anything about tech on the job. I was working on my own trying everything while I was away.
I noticed that my "senior" co-workers who had been working the previous whole ten years knew far less about the inner workings of the various tech they used daily than I did. I would rattle off something and expect a comment or answer and would repeatedly see architects and lead devs freeze up. I watched as they completely botched implementations simply because they didn't read the manual. The surprises were many because they used the same mental model to understand everything.
One implementation with a vendor required socket programming. They snapped and threw up their hands immediately in a big huff. I pointed out that C# had libraries to support that and that it was fairly trivial and probably way more fun than consuming a HTTP API. It took a few of us to calm them down and get it working but the dev who was assigned to it continued bitching. They were incensed at having to program against a TCP stream. It was so easy and trivial (imagine a binary string the size of an encoded JWT). He fucked it up bad and blamed the network for weeks.
In another instance, they were having trouble selecting a protocol for an external message passing framework. After selecting one at random I started asking about the protocol, mentioning that it sounded like it was based on "remoting (RMI binary non-routable transport). They had no idea. That concept of not having any idea about the underlying libraries and tech they selected was spread across an entire project, causing many real life disasters.
This all worked out great for me because I got use my deep knowledge a lot to identify root causes and fix thier messes which led to mahoosive salary increases and bonuses.
These bros were trying to leetcode everyone they hired. I couldn't do fizzbuzz to save my life. Just not interested in it. Is leetcode a filter to make sure you can work on the same old boring shit without losing it?
I don't understand. You clearly could take a spec "output numbers ..." and turn it into code, as you can take more complicated specs and code against them no problem.
If asked in an interview "Why should we use jitter when doing exponential backoff when packets fail", is that a more interesting question?
Is it the blank editor with no compiler/docs which makes it hard to write code, or the interview stress of someone watching?
How would you try and separate out the best of your co-workers from the rest in a day or two?
And yeah, I feel you can adequately gauge someone’s skill level across a technical subject area in 4 or 5 simple “how would you” questions. The way they explain it will tell you a lot about their understanding of the subject matter. In the old days (when we were in-person and I was still a technical SME) I would have them use a whiteboard to explain a technical concept to me.
This job is not that hard. I think a lot of companies have an overly fond view of themselves and most of these complex interview processes are for their own ego.
The argument is that leetcode is a means to dress up the latter as the former. Prima facie, this seems plausible. I dont think it's racially/etc. motivated -- I just think interviewers like people "like them", and leetcode selects for "like them".
Hiring is not about absolutes; it is about relatives (local maxima). When you work at an "elite" company, you quickly realise that you don't need to be a genius. For each open role, there must be 100 qualified candidates. As a candidate, you need to be a more-than-a-little-bit lucky to get the role! How does the hiring manager choose? Start with a baseline. Then pick the best.
Be curious to see numbers on burn-out rates between people who do practice leetcode to get hired and people who don't bother with it.