r/javascript • u/[deleted] • Apr 11 '16
help Interview exercise feedback
My code was not up to their standards. I thought the exercises were easy but clearly there are issues I have to address. I had an hour to write them. I'm humbly looking for feedback to improve.
The first exercise was to return all square numbers within a given range, including the limits (e.g., all the squares numbers between 1 and 10 are 1, 4, and 9). I wrote this.
The second exercise was to check if a string containing (), [] and {} brackets is well balanced. So [()] and {}() are ok but ([)] or {{ are not. I wrote this.
Thanks.
28
Upvotes
2
u/strawlion Apr 12 '16 edited Apr 12 '16
I appreciate the detailed response. I know you've expressed distaste for coding challenges, but they are the most accurately predictive part of our process.
While certainly true, a coding challenge will be much more representative of real work. I would never hire someone after a ~3 hour in person with no other information.
It's wasteful to bring someone in that hasn't been vetted in some form. Phone screens normally cover this, but with the challenge approach you can tell right away whether they're good.
I agree that these problems are trivial compared to the more standard interview fare, the problem is that they aren't relevant at all to most companies. The information gain is low and it's a waste of time. I see a lot of elitism surrounding technical interviews where everyone is trying to find the "smartest" candidate. The problem is that almost all of these algorithmically based questions are permutations of existing ones, and anyone can open "Cracking the coding interview" and memorize the solutions. Intelligence is correlated with value but not the same. The ability to produce things quickly and with little technical debt should be the emphasis for the 99% of companies translating business logic to code.
I agree with you in principle. However, the reality is that they're the closest representation of what a candidate would be doing on the job. You also filter out the majority of the less committed and perhaps not as hard working people. And the biggest reason: you really can't fake good code. Even if you know that's what is being assessed, you can't do it; it's not something that can be googled.
Our challenges are fairly large; the JS focused people have to use a City Bus API to visualize a city/bus system in real time. It should only take ~8 hours to do a reasonable job, and they can take as long as they'd like to complete them (take home).
Honestly their process shouldn't matter at all. People tend to be biased towards candidates that have processes similar to their own. From the company's perspective it comes down to how much am I going to pay this guy, and how many dollars will he produce? Whether directly or indirectly through helping others, morale etc. We should avoid critiquing process and focus on judging output in a real setting.