It's much closer to expect your world famous violin player to sing on the stage than it is to expect them to play scales on the violin.
But then, maybe not. Some people call all kinds of random exercises by "leetcode". The author may be one of those, I don't know if anybody can know this.
Yet, on the real world the answer is always one of "either" or "neither".
Anyway, most leetcode aren't of the type of "a widely applicable algorithm solves this". People only know the algorithms that apply to them because they studied those problems specifically.
And notice that one of the algorithms on your post is named after a researcher from the 80s. That's some 40 years after computer science became a thing. That's how long it took the entire humanity for learning it without anybody specifically telling it to them.
If you can’t trust the people sitting next to you implement a simple graph traversal without bugs, then your organization has a professional standards problem.
The only legit excuse for grinding here is if you did not do any prep.
Doing your job even with a 4/4 load is not grinding.
Research proposals and research projects might require grinding. Prepping lectures no way.
“Teaching a course where you are professor of record is certainly not grinding unless you dont know the topic at all.”
Originating a class can be a slog and originating two to lecture next term would be a grind. If you are not professor of record and thus likely did not originate the class then your assignments and reading, hell the entire course is likely layed out for you. Teaching a section of a course you originated or that someone else originated is likely 80% of the teaching load. Familiarizing yourself with this material so you can effectively teach it is doing your job, not grinding.
I'm not sure why you feel the need to suggest I am a crappy teacher or that I lecture from notes more than a decade old. Knowing how accreditation works, how courses are originated, and how sections of thoses courses are taught at r1 institutions, I can only conclude you are ignorant as to how these things actually work.
As a real world example, there are many great online courses from places like MIT and Stanford. Hell you can sometimes even get these online lectures for free, the same material covered by those institutions as part of their degree programs.
How much grinding does it take for a lecturer to to proctor such a class, particularly given that they also likely get FAs to do labs and grading?
If you attended or work at a college where professors grind out new classes every term then that institution is going to have an accreditation and/or tenure issue as "special topics" dont make a degree program.
Now what may happen is forgetting what it's like to be a naive, 18 year old freshman in college, and not somebody embroiled in academia for the past few decades.
But the audacity to suggest that it's even remotely within the norm for professors to not know their own material... wow.
Compared to many other things, software engineering requires astonishingly low prep. Your average high school baseball player has spent more time in the batting cage to earn a varsity letter than the median SF SWE has spent on leetcode
Is there some overlap of Leetcode problems and real world problem solving? Yeah, a little but most of my time is not solving yet another algorithmic problem but thinking about the problem from a business/product perspective, decomposing it, uncovering and understanding requirements, designing code that will be easily read and modifiable by people in the future, etc. 95+% of my time on the job is not trying to figure out what's the best way to find the number of inversions of a red-black tree.
There are jobs that hard and deep knowledge of algorithms is important, for those please go ahead and keep testing people on it. The vast majority of the jobs requiring people to jump through Leetcode hoops is not that, and a lot of those interviews are not testing for what is actually needed to perform the job well.
I don't know about the author, but some places are asking for a coding exam that takes hours or days. The process of application itself can be a long and complex ordeal where they suddenly stop responding, only to find out weeks later only after you chase them that they already had somebody for the part but wasted your time to make it seem like they went through a proper process. Then if you get the job, you move to the area and sign up to a 6-12 month rent agreement when the probation period is 3 months or less where they can dismiss for any reason.
I think more can be done to even up the relationship. The more the employer demands as part of their process for hiring, the more they should provide the person going through these hoops. The risk is really quite unbalanced.
I know excellent engineers essentially stuck where they work because they cannot afford to miss the mortgage payments. Yes they can get interviews all day long, but the risk of jumping to a different ship is immense.
However, I'm also sympathetic to the "leetcode is useless because you don't do it in your day to day" camp.
I used to lean more towards my mental loop side. But nowadays there has been a big question due to a recent job interview I did.
I recently applied to become a data analyst at a F500 company. It seemed fun and the pay was marginally better than what my software engineering career has been (as I'm not from the US).
I remember that when I applied, I didn't even know what a data analyst was. However, they gave me a technical assessment and I aced it.
Zero prep
Completely aced it
They told me that their work sample round was indicative of the job, so if I could do that, then according to them: I could do the job. It took me 4 hours in total.
Of course, there are tech companies that do this. However, I was a bit stunned that this was so easy. To be fair, getting in wasn't easy as I applied to some data analyst positions for fun to other companies and they all mentioned "you have 0 years of experience in this role". So I was lucky in that sense, and I was also lucky that they were willing to look at the person as opposed to treating me as a number.
There have been 2 tech interviews so far that went the same way. With that I mean: 0 prep, just using your skills and you got in based on those skills.
Look, I like leetcode, but after my recent experience I'm just not sure if it's the best way to assess talent. One could make the argument that it's an easier role? But I don't think it is, I find CRUD relatively easy too which has been most of my job. Though, there was this one week where my leetcode skills really helped as the company had a genuine novel leetcode hard style type of question.
I am thankful most companies are gatekept by people who think like you as I feel it gives me and my company an advantage. In the UK over the course of nearly 20 years I was asked by random interviews to do "fizzbuzz" which I always refused to do out of principle.
The problem being anyone who doesn't know how to code could just memorize it.
My problem was it wasn't a "starter" question it was the equivalent of asking me if I wear shoes on a daily basis and if so, to demonstrate it in an extremely concise way.
I felt it was offensive regarding my ability, indicative of narrow minded testing protocols for candidates, and a lack of respect for why they had chosen to interview me as it meant they probably were unaware of my portfolio, which many companies were.
I am not saying this to convince anyone on HN they are a bad idea as most of them rely on codemonkey exercises like these to prove their worth straight out of college, I am just saying I think they are idiotic.
Similarly, if I ask you "write a program in your language of choice that prints all even numbers from 1 to 100", you can either cry about it or take the 3 minutes and actually do it. If you can't, it's a pretty clear signal that you don't actually write code in your day job and aren't suited for this one.
This is why we have leetcode and Fizzbuzz. There are simply too many phonies applying and counting on their charm and charisma to get them the job, which sometimes works when you don't make candidates actually demonstrate their skills.
It’s completely ridiculous to think you’re being humiliated by being asked to solve some algorithm question or other on a whiteboard and if you think that, I implore you to change your perspective. You want a job - you should be prepared to demonstrate that you’re prepared to do things that people ask you to do.
[1] Fields medal winner James Maynard doing first year linear algebra problems on a whiteboard https://youtu.be/100Im_72xl4?si=id2Y1SwvM2ZRBCW4