| Leetcode is programming. It's not sprint planning, 1 on 1s, backlog grooming, jira tickets, slack support, gathering requirements, making estimates, negotiating features with management, responding to alerts, or the million other things you get sucked into as a nominal "software engineer". But it's definitely programming. It's a specific style of working, not entirely unlike TDD, with a specific theme of problems which aligns well with the content of undergraduate algorithms and data structures courses. Is there a degree of pattern matching and rote memorization? Most certainly! And does pattern matching and rote memorization play a significant part in real world programming? Definitely! If there's not as much memorization happening it's because the art of copy and pasting from stackoverflow supplants the need. And presented with wishing to learn the content of a university course, what's one rather effective technique to achieve it? To do exercises, a lot of them, and when you're stuck look at how other people solved them. That's all leetcode is. Perhaps others think that undergrad course in algorithms and data structures is useless material but I do not. I think it makes you a better programmer. |
Now, do I think algorithms and data structures make people better programmers? Absolutely. But I feel like most people work on in an area like web development where the usefulness of it is severely reduced when you are working at such a high level of abstraction.