I'm 40 and a developer for 15 years and didn't make it past Amazon's initial code assessment. One of the problems was a floodfill algorithm, which I've never used before. Couldn't quite figure it out on my own, but found the answer in Google in about 5 minutes, which is what I would do in real life faced with this problem. I don't understand the purpose of asking people to memorize a bunch of algorithms they will probably never use in the job and could research if needed. I don't see it as any reasonable evaluation of my engineering skill.
Those tests aren't really about engineering skill. The interviewer is checking to see how much you want the position, how hard of a worker you are, and how smart you are.
If you really want the position, you will put a lot of effort into researching what the interview will entail.
If you're a hard worker, you will intensively study for the interview.
If you're smart, you'll be able to apply the material you studied to the problem, and you'll probably realize the game you're playing.
None of these things is about 'engineering skill', which is much more difficult to discover, and only really valuable if the person is a smart, hard worker, who sticks around.
*edit: I am not saying that I like this style of interview, and when I interview job candidates, I never engage in this type of 'test'
If Trivial Pursuit: Code Monkey and Engineering Edition is the interview game, that's not a place a sensible person would want to work.
A sensible knowledge and performance evaluation would involve pair coding on limited scope, immediate, real problems, not BS trivia.
Interviewing is a two-way street.. the signals given-off in the interview process should be taken in as a totality by the interviewee as well. If they see bad signs, they should run in the opposite direction rather than get sucked into a bad environment.
Well, I think it depends on what the rewards are for getting the job. If the pay, benefits, and accreditation (resume boost) from holding a position at a given company are sufficiently valuable, it is definitely rational to play the game.
Full disclosure; I have never done an interview like this, or tried to land a job at a major 'tech' company, though I do have a degree in engineering.
I think I might have found a hack - a way to work for $large_tech, not to have to move to the west coast, work remotely and not be required to do leetCode - work in the cloud consulting division of either Microsoft or Amazon. I’ll know by the end of May if it works.
This is one of the reasons I haven't applied to work at Amazon, even though I'm sure I could do the work. The signal they're sending by interviewing this way says "We want people who are willing to put up with bullshit".
I had the same attitude pre-Covid. My local market (Atlanta) has completely tanked. There are still jobs out there, but salaries have imploded and I don’t think they are coming back for a couple of years.
If I didn’t have any other option besides the standard r/cscareerquestions “Learn leetCode and work for a FAANG” , I would.
Yep. When I interviewed at Google the recruiter suggested I study up on algorithms, data structures, sorting, graphs, recursion. They even offered a Candidate Coaching Session where you could do practice interviews. It felt like they were optimizing for people that were willing to put a lot of time into preparation .
But if you're capable and smart, you wouldn't normally waste lots of your time memorising details you could easily look up and use in moments if you ever needed them.
Are those interview processes really optimising for candidates who are willing and able to spend silly amounts of time creating an illusion of being super-keen?
While I will say that flood fill is probably too hard for a screener question, I have used it multiple times at work. Sometimes incorrectly, but knowing it helped me realize it was incorrect.
It is true that I use a hard algorithm maybe 8 times a year. But I need my coworkers to be able to understand them when we do. So that's one part of it.
Another major part is having you go into detail about complexity and tradeoffs. Believe it or not most of my co-workers can derrive these things on the fly, not memorized. Others require a little think.
The third is algorithms boil down to simple interviews where only a few things can go meta wrong. There are other types of question but they have a lot more failure modes and are even harder to train people to give.
If the questions are relevant to the job then I think that's fine. In this case, the code assessment is provided even prior to being able to apply to a specific position. From what I gathered, this assessment applies to everything from a team lead/management position to a front-end developer to a firmware engineer.
I understand that for a big company they need something standardized to process a large number of candidates.
I got cut from an Amazon phone screen by not being able to cough up various Minesweeper algorithms off the top of my head. (Also something I've never used before or since.)
Thankfully, at the same time (this was in 2011), I was also in the process of interviewing for a startup that treated me like a real person with individual skills and experiences of value. That interview process went a lot better, and did result in me getting hired.
(And Amazon recruiters still pester me to this day, despite me having little interest in working for them.)