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.
My examples would be activities like building complex systems, maintaining and extending them, making them modular and flexible enough, doing performance analysis, identifying risks, and addressing technical depts, considering and implementing different architecture patterns, creating efficient CI/CD pipelines, automating routine.
As for career, I really enjoy building products. At work I've been the lead on a few end to end full stack projects that I'm very proud of. I like to set up projects and then get a lot of pride feeling knowing that in the future other developers will be extending this base project as it grows.
I am trying really hard to find a job where it involves understanding the customer and business needs (I really like to get on calls with our product manager/designer, and then work together to develop and test the solution), and building the best product. My favorite feeling is shipping something that people find useful, so idk which companies or what roles would really let me shine best there. One of my goals is to get better at networking, to see if I can get some job like a technical co-founder of a startup I think that would be a dream for me.
If you know anything let me know, I'll check it out. Sorry for blurting out a lot of details I guess I'm just feeling defensive still after that mock interview lol. I feel like how can I be a co founder when I cannot even pass a Leetcode?
Working through Skiena's Algorithm Design Manual [0] would be a good start and/or watching his lecture series on Youtube [1].
Other great books include Elements of Programming Interviews [2] which comes in Java, C++, and Python flavors.
It can help to focus on a smaller subset of Leetcode problems to learn the tricks that underlie most of them. Neetcode [3] is a good collection of those problems on which you could focus your time and efforts.
I don't think it's realistic to expect to do well on Leetcode without practicing the above skills to some degree, so I wouldn't be hard on yourself if it's been years since you even looked at the material.
[0] https://www.amazon.com/Algorithm-Design-Manual-Computer-Scie...
[1] https://www.youtube.com/watch?v=dphSwq5jP1A&list=PLOtl7M3yp-...