7 ms·
Unpopular opinion: Interview problem is a solved problem for software engineer candidates for majority of use cases, it is called Data Structures and Algorithm.
by christiansakai 7y ago
Unpopular opinion: Interview problem is a solved problem for software engineer candidates for majority of use cases, it is called Data Structures and Algorithm.
Yes I've tried the other two: take home tests, work one day at company X. They all suck. They all optimized for the suffering of the software engineer candidates. You can't do multiple companies take home tests, it is a waste of time. You can't do multiple work one day at company X, Y, Z. Waste of time. And after all of those time wasters they still reject you for non obvious reasons such as cultural fit, pay, seniority level, etc.
Just cut to the chase, give me DS & A questions and be done with it.
Data Structures and Algorithms are the best mean to interview. Study once, apply multiple times to multiple companies and kill those and get multiple offers, with bonus it makes you a better engineer (at least in my case), though later it gives diminishing returns. You can jump companies every year easily with this skill.
But then people will ask, "how does that gauge software engineering skills?" or "what if you aren't good at data structures and algorithms but you are good at something else like design, product, css, etc" or "there are more to working than just data structures and algorithms" or "you will get similar people in your talent pipeline".
I don't know, that's not the problem of the software engineer candidates, that's the problem of the companies. Let them deal with it. We software engineer candidates just play the game, get the job or rejected from the job, and do the job, go home, collect paycheck, sleep, play, exercise, use our mind, talent and energy doing something else.
- diehunde 7y agoI agree with some of your points. The problem is that a lot of engineers are just not good at DS puzzles under that kind of pressure in that amount of time. Also that's totally unrealistic and is not how Software Engineering works in real life. In real life you have group discussion, design sessions, time to think without the pressure of having to talk the whole time spitting thoughts, etc. I think some companies are starting to do pair programming and design sessions during the interviews. That sounds more appropriate to me. But it's also more expensive and time consuming.
- christiansakai 7y agoIf I can give you some encouragements, I don't consider myself good in DS&A puzzles. My definition of good in DS&A puzzles is basically you can solve common/most Hard Leetcode problems in under 45 mins. I think if you can do this you'll have no problem jumping ship of FAANG-league companies every year. I am still not in FAANG. My skill now is pretty much in Medium Leetcode problems, which I can solve common/most of them in under 45 mins. I used to be worse at this and couldn't even solve Easy problems for 2 hours. I just practiced and practiced and studied, until it becomes easier. Now, what this skill gives me is, I can easily knock off majority of non FAANG interviews out there, in under 30 mins. In my last interviewing with companies I actually did most of their questions each in under 15 mins. This leaves them to talk about something else such as projects, past responsibilities, cultural fit, or even just dismiss the interview altogether to save everyone time. DS&A interview is in a sense, sort of a pair programming/discussion thing because you need to voice your reasoning out loud to check with the interviewer that you are going in the right direction. Also once you practiced these kinds of questions, then it is no longer "I need to find a new solution to this problem", but more "ah I see this question before and I know how to solve this". It is pretty much almost brain-dead at this moment. Like, dynamic programming, recursion, and BFS/DFS are pretty much very mechanical. Once you've seen a few patterns, then you can tackle most of it. Yes this skill doesn't come easily, but once you get it, you get it. So the difficulty of attaining this skill is overrated. It is like swimming and driving. Once you get it, it takes a few weeks to ramp up again. Weighing the pros and cons of DS&A compared to other style of interviews, it is clear to me which is the winner to optimize my happiness and lessen my sufferings. It is cheap to execute, it works majority of the time. If a software engineer realize this reality and start playing the game, he/she is already ahead in the curve by a few miles from other candidates. Ironically, I actually don't want most software engineers to realize this, because this skill currently gives me an advantage. If everyone start doing this, then the interview bar will be raised higher and we as an industry will see other practices which are optimized for software engineering candidates suffering.
- _throwawayyyyyy 7y agoit's a stupid game but you're smart to play it. but if DS&A puzzles are a de-facto standard, why not have an actual standard? the whole thing is pretty haphazard. it's like hiring someone to be your defense attorney because they're decent at the NYT Crossword Puzzle, or to be your doctor because they're good at Sudoku.