Hacker News new | ask | show | jobs
by PragmaticPulp 2137 days ago
The popular sentiment on computer science knowledge has done a complete 180 in the past several years.

Not that long ago, it was popular to complain that junior SWEs didn't really understand the algorithms, the data structures, and what was going on behind the scenes. The complaint was that they were just copy and pasting from internet searches until things sort of worked on their machine, but they couldn't recognize when an O(n^2) solution was going to work on their local n=10 test set but bring down the main website.

Now that knowledge of CS fundamentals has become valued in interviews, the pendulum has swung the opposite way. We have more free resources than ever before to practice and study CS fundamentals, algorithmic challenges, and even practice your interview skills. It's never been easier for a junior SWE to sit down, put in the effort, and work their way into a $200-300K job with sufficient dedication. Yet people never tire of complaining about Leetcode or having to understand CS fundamentals online.

Personally, I've never met anyone who was good at Leetcode yet produced bad code in production. I'm sure there's someone out there who knows a guy who knows a guy who can somehow ace Leetcode but can't write an efficient website backend, but it's not the norm.

5 comments

> Personally, I've never met anyone who was good at Leetcode yet produced bad code in production. I'm sure there's someone out there who knows a guy who knows a guy who can somehow ace Leetcode but can't write an efficient website backend, but it's not the norm.

Weird. Ability to leetcode doesn't mean you know what is happening in e.g. an RDBMS. We've had people good at leetcode write a single query to delete hundreds of millions of records in a table with billions of records that was being constantly updated by the live website. Needless to say it didn't go over well. Ability to leetcode doesn't give you any knowledge that doing so might be a bad idea.

You can learn how to use some function to call into a database and study its behaviour, if you can grind leetcode and solve problems.

It's a good enough filter, the alternative is either way more costly or way worse(if you have seen "interviewing" which are just thinly veiled nepotism).

> We've had people good at leetcode write a single query to delete hundreds of millions of records in a table with billions of records that was being constantly updated by the live website.

You didn't have anyone reviewing their code and mentoring them? No one reviewed their design before it went into production? If no, why not? If yes, why wasn't the problem caught then?

> We've had people good at leetcode write a single query to delete hundreds of millions of records in a table with billions of records that was being constantly updated by the live website.

This says more about the ability of the other employees at the company than it does about the new junior employee.

Doesn't leetcode also have sql questions?
> Personally, I've never met anyone who was good at Leetcode yet produced bad code in production.

It's all anecdotal evidence. I've worked with some brilliant people at most places I've been and I can't think of 1 person who even had LeetCode account. Producing great production code is more about experience and knowledge of the domain than knowing how to bang out algorithms.

> I've worked with some brilliant people at most places I've been and I can't think of 1 person who even had LeetCode account.

That's not the point, though. No one said that Leetcode is mandatory for being a good programmer.

The point is that Leetcode, however imperfect, is still a usable signal for programming ability.

Those excellent programmers you know would likely not have much difficulty with Leetcode style problems if they were to try them. That's the point.

> I'm sure there's someone out there who knows a guy who knows a guy who can somehow ace Leetcode but can't write an efficient website backend

I don't see what makes you think a person who can ace Leetcode should be able to write an "efficient website backend". These are different sets of skills. You can ace Leetcode and not even know what a backend is.

> knowledge of CS fundamentals

Leetcode is not CS fundamentals. It's a small part of CS fundamentals. Besides, candidates aren't asked to show they know the CS fundamentals. They are asked to show that they spent more time practicing leetcode than the other guys.

> Personally, I've never met anyone who was good at Leetcode yet produced bad code in production.

I competed with this guy in competitive programming competitions and while he was fantastic at it, he wrote the worst code I've ever seen.

I've also worked with many people who've never even heard of Leetcode or similar and they were fantastic developers.

In my opinion there's no correlation here and it's purely a distraction.

Leetcode is not a good indicator of quality code by any means. It's basically a filter. If one can't solve these programming questions, there is a higher chance that they are not good at programming compared to one who can.