3 ms·
This. A thousand times this. After going through the rounds of interviews at various companies as someone who's not particularly strong in the algorithm departm
by floating-points 12y ago
This. A thousand times this. After going through the rounds of interviews at various companies as someone who's not particularly strong in the algorithm department, I've often felt frustrated. I think my strengths are in making good sensible design decisions for a given problem, and being able to manage the complexity of a system; but I've never been able to really show that in an interview. I've seen work from colleagues that solves a simple problem, but makes extensive use of obscure C++ template features. Maybe they were great at algorithms, maybe they weren't, but they certainly weren't capable of coming up with the simplest solution.
I've dedicated lots of time learning graph algorithms in order to get better at interviews: I've only had a graph problem come up once in the last 5 years of programming, and it wasn't particularly tricky (it came up at a time I knew nothing of graph problems, and kind of figured out a graph structure by myself).
When I'm at work, I find I have a knack for keeping things simple, and get a feeling for when certain solutions are a bad idea. For me, software engineering is really about the engineering (make things that meet requirements with the given resources), and from my experience is not so much about being able to implement and provide the time/space complexity of 10 different sorting algorithms (although knowing the basics is important).
It's genuinely a relief to see many other people relating to this kind of experience, sometimes it can feel like you're the only one!