If you fundamentally have a problem presenting your ideas to others, then maybe you aren't fit to work in a team.
The ability to code is less than half the battle. The other half is actually making sure the idea you have is even a good idea. Any moron can write garbage in a room alone.
The premise of the test is whether or not a person can write code that solves a problem. Which is literally the lowest bar possible for a coding interview.
How about the thought process it takes to derive a optimal solution? Maybe interviewers want to test someone who can actually collaborate with them, explain their reasoning, and logically come up with a solution? Maybe that's more akin to real life than being in a cubicle coding all day alone with 0 human contact? Hmmm...
Holy shit, who even asked for this? A bunch of woke adult cry babies who are concerned about hurting people's feelings? Who want to dodge criticism at every turn? Hmmm... what political leaning could they have? I wonder what kind of ideology this favors.... perhaps a certain belief that preaches that one sex is equal to another whilst doing everything they can to harm one of the sides and prevent them from speaking out?
Also if YT really did care about their creators, how about they stop allowing hate raids to occur? People mass dislike and report a video when it hurts their feelings and this is more detrimental to creators since not only does the creator get hit with the same impact as the dislike button, their livelihoods also get threatened.
Sure, I'll engage with OP. All he needs to do is reveal his identity on the website. After all, a majority of his points are based on his own personal experience so I certainly hope that his own personal experience isn't made up.
Website and person look fake AF to me. Let me prove it:
"Requiring engineers to dress in any specific way."
"I've been writing software for over 20 years. "
Old habits die hard. In 1995 you would still be wearing a collar shirt to work. So either he's been amazingly stubborn about the habit or has never worked corporate for a significant amount of time in the old days.
"A huge part of software development is seeing how things are done, and then continuing the pattern. "
A good senior engineer would have added "and breaking that pattern too."
"Success criteria is hidden"
Bullshit. Companies standardize their loops and ask their interview group to grade along dimensions and make people justify their decisions to other engineers.
"Suppose you have a developer who has written code in 7 different languages spread over 20 years. ( me ) Average length of time coding any specific language then is 3 years. Now suppose you have a developer who has written code in only one language for 5 years. Which developer do you think will impress more at a coding interview? See the problem?"
No I really don't. Because if someone says they know Java, they better know the damn in and out of it. I would love to see them talk about how JVM garbage collects as well and other beneficial APIs. You can either know 7 things poorly or 1 thing very well. Any competent engineer would know that persistence and master of 1 thing would mean an insane depth of knowledge: a depth that can't be replicated easily and would make a engineer highly valuable.
"The skills required to create effective software that makes the company money are very different from those skills that are used to pass a coding interview. "
Again, bullshit. What are you and your 7 languages over 20 years going to do make the company money? How is that Lisp, Haskell, and PHP knowledge working out for you?
"Senior engineers who have been writing code for 10+ years may either hate coding interviews or simply be terrible at them because they have focused on delivering business value"
No, because there is something called the System Design interview that they would have a better affinity for. In fact, at the Senior Level, its 50/50 (or 30/70 depending where you go) weight between DS&A and SD. This guy is just plain uninformed.
"They are a form of random chance"
If its truly random, then you should see an equal mix of competent and incompetent engineers hired at all engineering levels. If this was the case, why aren't people being fired en mass all the time? If it was random, then its equally likely that shit engineers would get hired at the same rates as good engineers and you would be forced to believe that Google is full of incompetent morons that magically ship amazing products. I would be stunned to learn that a turd flinging monkey could keep Google Search Engine online.
I could keep going but bottom line: this guy is a fucking fake who would suck 2 dicks to get into FAANG in an instant and has no idea what coding interviews really entail.
The author posits that the best way to interview is to simulate an actual work environment for the candidate as if he was working in an actual code environment. In theory, this would be good. After all, the best way to understand a candidate is to see how he actually works.
The reality is that the Leetcode style coding interview, as we know it today, is best approached the same way you would approach the engineering process in general: prototype, refine the idea, test the idea, revise based on inefficiencies, code it. Any semi-competent moron can do this if he gives a damn about his career because this is actually what people should be doing day to day: thinking about how and why the approach to code would be effective. This is logical thinking that can take years to perfect and adjust, especially when your career progression means tackling increasingly difficult problem areas (from deterministic products to nondeterministic infrastructure issues).
Which is why most of the internet thinks the interview is BS: because they think like code monkies, not engineers. Most people believe software engineering is copy-pasting stuff from Github and then moving on when its using software and code to solve a problem.
In the author's eyes, he thinks that more weight should be given to the soft skills. Soft skills that can easily be learned on the job. I mean, how long does it take for someone to dive into the code? Just follow the history of changes of that line. A day or 2 of practice. How long does it take for someone to learn new tools like ripgrep? 2 days. These are things that can easily be picked up with less than a year of industrial programming.
Which is effectively what onboarding is: getting a person used to the tools, nuances, and implicit culture of a company.
And different companies have different needs. When you're a startup, you need to code fast and quick, ship the product, and itterate. In a larger corporate environment, you need to code intelligently, be careful of the leverage you are given, and truly understand what you're writing.
In each of the cases, the dimensions you're judged against are going to be different. You artificially restrict your own candidate pool to culture fits instead of people who can think like actual engineers. For big tech companies, it doesn't matter: they have so many people coming through the door that they couldn't care less. If anything, this hurts startups (ironically) because now they have a smaller group of people to work with. Or a larger one if you're dismissing all the people who can actually thinking like a proper engineer.
I mean, if a startup wants to hire someone who says "I don't know why the code works, I copied it from stack overflow and moved on with my day" then by all means, have him write the Robinhood options platform.
Ceter paribus, I would take the former candidate: someone who's clear in logical thinking, then ram him into reality and the company until he learns. At least he would learn quicker. On the other hand, it would take someone who's the opposite, it would take me at least 5 years for him to even begin to understand to not be a code monkey.
Secondly, the Leetcode style interview is actually scalable. Any engineer can give it and can evaluate the problem solving strategies that the candidate uses. That's what allows companies to be efficient with their hiring: people are interchangeable. On the other hand, doing something as nebulous as judging the soft skills of engineering is going to be way too subjective and give more noise-to-signal.
Example: if an infrastructure engineer is judging a product engineer, there's going to be a big disconnect considering that the problem space of infra engineers is more nebulous and the solution is more unknown. A product engineer would shit his pants if he was asked how to migrate a codebase at scale.
Of course, you could get around this by standardizing the test and pairing engineers with engineers of similar backgrounds. But along what dimensions would you standardize? What if the candidate can solve the issue without tracing the code history? How can you create a test where a candidate has to go through the code history without the answer being blatantly telegraphed (ie. when did this bug occur?)? And how could you do this effectively at scale without screwing over your own company's resources (again, think startups. Only so many engineers to go around.)
A more honest way to achieve the same thing (if the author truly wanted to see if the candidate was well suited for the company) without going into Leetcode would be the company to put a probationary period on new-hires. It may cost more but you might as well filter hard and fast instead of using a easy/wrong filter simply because a bunch of newgrad Reddit idiots who can't pass a coding interview are crying their collective heads off about it being unfair.
But if a bunch of smart and successful engineers can consistently land offers, then why can't other smart and successful engineers? Even Max Howell, creator of homebrew, who flamed the coding interview for being shit (his tweet about Homebrew and inverting a binary tree), still got an Senior Apple offer. So the fact of the matter is that it works. It might not be efficient, yes. But you cannot deny it works.
TL;DR: Author is full of shit about Leetcode interviews and his thesis would actually screw over smaller companies.
The ability to code is less than half the battle. The other half is actually making sure the idea you have is even a good idea. Any moron can write garbage in a room alone.
The premise of the test is whether or not a person can write code that solves a problem. Which is literally the lowest bar possible for a coding interview.
How about the thought process it takes to derive a optimal solution? Maybe interviewers want to test someone who can actually collaborate with them, explain their reasoning, and logically come up with a solution? Maybe that's more akin to real life than being in a cubicle coding all day alone with 0 human contact? Hmmm...