top | item 13356871

(no title)

prajjwal | 9 years ago

I'm tired of these "assessments". Solving contrived algorithm puzzles is not an indication of programming skills, which mostly require organizational skill. I don't know how this sort of thing became so pervasive, but as someone who has recently been burned at a few job interviews because of it, it really grinds my gears. My ability to recall and produce a correct implementation of an RB tree on a piece of paper with no compiler feedback is NOT an indication of my ability to code your ReactJS website. Just because I can't solve in five minutes some brilliant logic puzzle that the interviewer read online and made it their go-to thing to prove how smart they are does not negate years of experience writing in the Language / Framework they said they were originally looking for. I have PTSD.

I wish more companies would hire based on code that you've written, than a bunch of contrived puzzles you're supposed to know by heart so you can solve it on a whiteboard without blinking. But, since that's how the fucking system works, I'm forced to spend time committing these things to memory than writing actual code.

James Hague said it best, "Organizational Skills beat Algorithmic Wizardry". http://prog21.dadgum.com/177.html

discuss

order

choonway|9 years ago

That's because they're easy to test and makes the interviewer think that they're smart. i.e. boosts their ego.

xiphias|9 years ago

''there's always lots of state to keep track of, rearranging of values, handling special cases, and carefully working out how all the pieces of a system interact''

These are the skills actually that are needed to implement an RB tree (lot of special cases to handle, hard to organize the code well), although I have never been asked to implement any balanced tree on an interview.

babyrainbow|9 years ago

I think maybe another way to look at it is that it mostly tests one's ability to handle stuff they don't necessary like. For ex, you are preparing for an interview. Suck it up and learn some standard algorithms and practice coding under a little pressure. That is the homework that you are supposed to do.

If you haven't done that, it is a good indication of how you will handing boring but necessary and important stuff at work. In all fairness, I think you can't fault people wanting to judge you based on that..

prajjwal|9 years ago

I wouldn't mind doing homework that is related to what they need me to do on the job. Make me code. On a real computer. With a compiler. With an internet connection. On real problems, even if they're conventionally hard to solve. I wouldn't mind rejection if I can't produce something satisfactory in a real life setting. Sometimes, they ask things that are too far removed from what they need from you, and I just don't get it.

It's not about learning algorithms. If you do the Stanford MOOC on algorithms on Coursera, which is one of the best MOOCs I've ever come across, you'll find that the instructor emphasizes understanding over rote learning and implementation details. If you understand what data structures and algorithms fit where, you can look them up and apply them as and when you need to. Memorizing every nook and cranny of CLRS so you can reproduce it quickly in an interview is a terrible waste of time, imho.

hueving|9 years ago

That explanation is ridiculous. If that were the reason they would just have you dig 6 foot ditch. Implementing RB trees is not "boring and important work" either, if you're implementing them in your day job (for 99.99% of programmers), you are grossly incompetent because you don't understand how to use libraries.

rhcom2|9 years ago

But why would the homework for a React job include RB trees? It seems some interviews add unrelated technical questions.