Hacker News new | ask | show | jobs
by tracker1 2719 days ago
I've seen both sides a number of times. Even when interviewing specifically those coming out of code-camp style organizations, there's probably 2/3 that never did anything in terms of discovery beyond what they were assigned. I'm not saying that anyone has to spend all their free time coding, but a bit of passion when starting out is the single best indicator of how a junior level developer will perform.

This other is title inflation where someone at junior-mid level has a senior title after 2-3 years of experience. It's all over the map. For every good developer, I've seen 2-3 bad developers. For every 10 good developers, you might get 1 great developer. For every 2 great developers, 1 has a personality that doesn't work well with others.

It's a challenge to build a team where you need to balance ability, room for growth with need. I also agree that the hiring practices outlined in "cracking the coding interview" are excessive for most environments. Most line of business applications will use tooling that abstracts some of the more difficult challenges. Cloud environments offer services that take care of many of the rest. In reality, there's more need for someone to have an understanding of when you might use a given SQL variant, Mongo or Cassandra (or any number of others), vs even thinking of creating your own systems.

In general, for "senior" javascript developers, I ask a single question. Something that's in every JS book from beginning to advanced that I've ever seen. And less than one in 10 give a complete answer, and less than half get it half right.

1 comments

What's the question?

I like to ask them to explain either the concept of closures in javascript, or how `this` works.

I don't even need them to know the word closure, knowing why you can't reference a variable written inside another function, the difference between var and let, or what does bind/apply do.

What are the values that equate to false in an if statement?

false, null, undefined, NaN, "" (empty string), 0

Bonus: An object with a toString() method that returns one of the above won't evaluate directly, but will roughly equal (foo == false).

sometimes I'll ask for a function that returns input as a whole number or null, if it's a string, attempt to parse base 10, return null if invalid, return null if the input isn't already a number or a string. 0 is usually what will trip people up.

Doesn't an empty array also equal false?
Isn't this basically atoi? Which has a lot of edge cases.
pretty much... the main one I tend to ask is the 6 falsy values, clarified as needed. The responses tend to be a good overall indicator of how well the person knows JS.
How does it indicate how well someone knows JS? That's the type of question you can easily Google.

Not to mention in general Javascript does some pretty not intuitive things with objects: https://archive.org/details/wat_destroyallsoftware

Well, if someone googles it in a live interview, they're pretty much out. It's not the ONLY question I ask, but will guide where the rest of questions come from.

It's (knowledge of falsy values) been a very representative indicator of how well they know the language itself. It's not an indicator of understanding software as a whole, or a given UI framework or library.