4 ms·
I understand what you're saying and I generally agree that algorithmic/coding interviews are broken. But you know what? Sometimes you need the fancy stuff. I o
by somethingsimple 9y ago
I understand what you're saying and I generally agree that algorithmic/coding interviews are broken. But you know what? Sometimes you need the fancy stuff.
I once stumbled upon a problem at work that, after some thinking, I realized could be modeled as a graph problem and solved by performing a topological sort. It was a good and elegant solution to the problem. But what if it hadn't landed on my plate, and instead on someone who didn't know a thing about graphs? The problem might not have been solved (which would mean great pain for our customers, since it was on a feature that customers directly interfaced with), or worse, someone else might have turned up with a horribly messy, spaghetti-like solution.
So I think companies should actually hire people who know their CS fundamentals, even if 80% of the time they'll be doing trivial work that someone less qualified could do. What matters though is having people that are ready for the hairy stuff when it comes up.
- tabeth 9y agoWhat was the problem?
- deleted 9y ago[deleted]
- fho 9y agoI bet on jobs with dependencies. That comes up alot.
- kiliantics 9y agoMost real world problems don't have elegant solutions though. There might be an elegant concept behind the solution but usually the end implementation gets pretty dirty. The dirty stuff ends up being most of the work and is what counts for the most in the end product. Companies should be hiring on the ability to take care of the dirty tweaking and tuning. But this experience is something that can only be seen in past projects and that's too much work for a hiring manger to be bothered with.
- zgljosh 9y agoI actually had the same experience as you. Finding a solution using topological sort. I agree that familiarity with basic data structure and algorithm is a must for engineer. But for interviews that solely depending on fancy coding algorithms that must be done within 15 minutes is insane. Combining grasping of algorithm with problem solving with real project experiences and willingness to learn new tech would be more effective in interview.
- somethingsimple 9y agoAgreed. I think the data structures part of an interview doesn’t require a whiteboard coding puzzle. If someone knows what a graph is and can describe a well-known graph algorithm like Dijkstra’s or topological sort, that’s more than enough to know what the person knows. Mere coding ability is easily tested with fizzbuzz-like problems.
- bocklund 9y agoI too recently had a problem where creating a graph with a topological sort was the answer. I am comfortable with graph theory ideas, but I had never heard of a topological sort, but easily found it with Google. I have an education in engineering and I am entirely self-taught on the software side. I think the most valuable thing is learning and exposing yourself to as many ideas as possible. Once you know what "boxes to look in" constructing search terms and finding answers isn't that difficult.