3 ms·
This times 1000! The really sad thing is that 9.9 out of 10 technical interviews are all about how many Algo's you know. Even if your job will never require a
by rsuelzer 11y ago
This times 1000! The really sad thing is that 9.9 out of 10 technical interviews are all about how many Algo's you know. Even if your job will never require actually implementing a single one.
These interviewers do not seem to care at all about the actual process of writing and refactoring code, or what your finished products actually look like.
I know plenty of programmers who can write highly optimized code, but do so in a way where it is completely impossible to maintain.
It's especially heightened when you are given a problem such as "validate if this uses valid brackets, and you have 10 minutes." When under time constraints to solve what is basically an algorithm 99% of programmers are not going write their best code or write code in the way they would normally write code.
If you are using lots of algo's on your programming interviews, I suggest you take a step back and determine if those skills are actually what you want to be testing for in this job. Odds are that it is NOT algo's. Give your interviewer some really sloppy code to refactor into something beautiful. Give them a few hours to work on it, watch how they put the pieces together.
If your position isn't going to require someone to write advanced algorithms on daily basis, testing for them only cuts out a huge swath of potential talent. I also think it probably leads to less diversity in your work place, which is a bad thing.
A Web Developer will never need to solve the towers of Hanoi problem, but they will need to write clean code that can be maintained by others.
</rant>
- TrophyWipes 11y agoInterviewee* And as someone who is about to graduate computer science, your rant makes me hopeful :) I am much better at refactoring and finding patterns than memorizing algorithms and other things (mainly because they are relatively easy to look up). Do you suggest that I try to strike a specific balance between practicing dealing with complexity, optimizing and making code readable, versus actually trying to memorize and implement certain algorithms for learning's sake?
- rsuelzer 11y agoI'm not a computer science grad, and it puts me at a huge disadvantage simply because I never had any formal training about algorithms. And my day job is to write testable, well-designed production quality code. I don't get to spend a lot of time rewriting algorithms, which as you note, can be easily looked up. The fact is that as a full-stack developer I can count with zero fingers the amount of times I've had to use an self-made algorithm in a production system. That being said, I do force myself to practice algorithms thru various coding challenges only because I know that this is the specific skill that will land you a job. Which is a shame. That is not to say that there are not positions that really do require this specific skill, but the vast majority of development positions don't and yet nearly every employer tests their candidates as if their success depends upon their ability to solve an algo in under 5 minutes, instead of their ability to write a good library. It's a disservice to those of us who do not have CS degrees and have learned to code by spending a great deal of our time writing code.