News for hackers. Stuff that matters.
Re:a16z Programming Test by abalone on Friday April 11, 2014 @01:34AM (#7571376)
I wonder if this could act as a negative filter for good programmers. Who worth their salt is going to invest 3 hours of their time just to submit a resume? Wouldn't you want to talk to the employer first to see if they're a good fit?

In a tight labor market, people willing to do this are more desperate than others. So it's going to filter for desperate developers who passed a 3 hour basic skills test.

Old fashioned prior experience and education is probably still a better first filter. This would probably make more sense specifically for junior hires right out of school or with no experience.

Re:a16z Programming Test by balajis on Friday April 11, 2014 @01:42AM (#7571389)
Well, empirically we're getting quite a lot of people attempting it! :) Three hours is pretty lenient (you could blaze through it in less time), though the last question is challenging. We think the questions are kind of fun as well.

Without something like this we'd just have 100s-1000s of unstructured resumes in different formats to rank against each other. This process is more fair and (IMO) allows someone without a college degree, or from outside the US, to compete on a level playing field.

Re:a16z Programming Test by 7Figures2Commas on Friday April 11, 2014 @02:02AM (#7571429)
> Well, empirically we're getting quite a lot of people attempting it!

> Without something like this we'd just have 100s-1000s of unstructured resumes in different formats to rank against each other.

So instead of hundreds or thousands of unstructured resumes in different formats, you have hundreds or thousands of completed programming tests. Even assuming that you automatically filter out submissions that fail testing, given that there are a lot of ways to solve a problem, you'd still be stuck evaluating potentially hundreds of correct submissions.

More importantly, a test doesn't seem to be aligned with your top priority:

> ...but the most important requirement is significant independent programming experience as demonstrated by your GitHub account, personal projects, academic publications, or startup success.

Are you assuming that all of the folks most accomplished in the real world are going to complete your programming test successfully?

Since you ultimately seem to be interested in folks who can build dashboards, I would think you'd be far better off asking candidates to build a dashboard prototype using sample data you provide. There are lot of really smart developers out there with advanced degrees who could solve programming quizzes all day long but couldn't design and implement a useful dashboard application.

Re:a16z Programming Test by dlss on Friday April 11, 2014 @04:18AM (#7571746)
> You'd still be stuck evaluating potentially hundreds of correct submissions.

I'm guessing the MVP of hackerrank was the web code editor + lint/findbugs/whatever for filtering. A lot of people have spent a lot of time writing open source projects that convert code to metrics, so making a reasonably prioritized list is probably fairly easy.

> There are lot of really smart developers out there with advanced degrees who could solve programming quizzes all day long but couldn't design and implement a useful dashboard application.

Agree!

I think this is a great critique of HackerRank as a business idea -- while they are new, it's just a hurdle that weeds the busier coders out of your hiring pool... if they become established there will be books on cramming for it, and will no longer separate the wheat from the chaff.

(ie https://web.archive.org/web/20130114163457/https://raganwald... meets http://en.wikipedia.org/wiki/Goodhart's_law)

Re:a16z Programming Test by lifeisstillgood on Friday April 11, 2014 @04:32AM (#7571786)
To be honest I think it's the other way round - if you can do programming tests all day long you will succeed at most coding jobs. However there are a lot of developers who can't tackle an interview that with a nights sleep and no pressure can easily code a intuitive and effective architecture.

Sorry - programming tests raise far more false negatives than false positives (and this from a person who considers himself a false negative in most tests)

Re:a16z Programming Test by dlss on Friday April 11, 2014 @07:31AM (#7572265)
I'm not sure what kind of coding work you do, but I assure you the vast majority of web development work has little resemblance to coding questions. You are almost never designing an algorithm: that was already done for you by whoever designed the library you are using.

Majority of the tasks IME:

- code reading & refactoring

- figuring out why two libraries aren't playing nice

- bug triangulation

- optimization (not the algorithmic type, but rather the fix-the-auto-generated-SQL-query / frontend asset packing kind)

- repetitive/simple/obvious bits of jQuery

Maybe there's some kind of online test that could exercise those skills, but if you ask me the main performance changers for modern web development are, they're: really knowing the stack (problem anticipation, what to use, how to use the various tools to quickly get search keywords), google fu, and most importantly having done it a couple hundred times (muscle memory).

Re:a16z Programming Test by lifeisstillgood on Friday April 11, 2014 @06:54PM (#7576076)
That's terribly negative. If you are doing agency work maybe (same website, same functionality, just different skin) but that vast vast open plains of http-based development are around and going to be around joining parts of the business, public world together in ways they do not know or imagine.

Yes, binary trees are pretty much coded for you, and you would be a fool to roll your own hashing algorithm for production, but thats still not a reason to keep your head down.

The next decade is going to be fun. Trust me

Re:a16z Programming Test by dlss on Friday April 11, 2014 @10:08PM (#7576664)
I don't understand this response. To be clear, I think web development is fun. I very much enjoy it and don't resonate with "keeping my head down".

I guess to reiterate my point: once you've done web development for a couple years, coding most websites is less about solving new problems and more about applying known solutions.

To reiterate how this point relates to the question of coding interviews: in as much as they don't test for lots of known solutions, and the ability to apply known solutions quickly, they aren't filtering for productive coders.

How does your response relate to the points at hand?

Re:a16z Programming Test by lifeisstillgood on Saturday April 12, 2014 @04:53AM (#7577355)
but web development is not about "making new websites"

Think micro-services supplying REST APIs over HTTP - that's going to be same-y after a few years yes, but behind that is a world of business apps, integration challenges, complex algorithms and calculations - sorry I just see "web development" as "anything that has of will have an http access point" which I mentally count as "pretty much everything from here on in"

Programming tests do generally test for ability to apply known solutions quickly - it's about all they do do. You just have to know the known solutions (oh look calculate primes).

As for finding productive coders - well the amount of false negatives is large, and the false positive rate is probably higher (plenty of people who can waltz through these tests i find fairly poisonous to morale) so I am not a big fan - but if you need to make a first cut this is a good start

Re:a16z Programming Test by joncooper on Friday April 11, 2014 @04:39PM (#7575479)
Another key:

- Communicating clearly and calmly with other people

Re:a16z Programming Test by dlss on Friday April 11, 2014 @10:25PM (#7576715)
You're right, we need to add social skills and domain knowledge to the list.
Re:a16z Programming Test by abalone on Friday April 11, 2014 @05:05AM (#7571887)
> Well, empirically we're getting quite a lot of people attempting it!

I think you missed my point. It's that the people submitting to a multi-hour exam just to submit a resume are more desperate / value their time less than those that can stand on their experience.

The fact that there a "quite a lot" of submissions only worsens the probability that the multi-hour effort will be wasted.

Re:a16z Programming Test by emsy on Friday April 11, 2014 @03:29PM (#7574999)
The questions were pretty good, because they were close to the real world and you couldn't google them so easily. The programming tasks were rather unbalanced. The first two were super easy, while you can easily get stuck on the last one, even as a good programmer. I knew that I wouldn't be able to answer it today, so I skipped it after a short while. If I'd plan such a test, I'd try to get an example of the structure and comprehensibility of my future employees work.
Re:a16z Programming Test by jay_kyburz on Friday April 11, 2014 @01:46AM (#7571396)
Do you mind if people do the test with no interest in the job?
Re:a16z Programming Test by balajis on Friday April 11, 2014 @01:47AM (#7571402)
Sure, go ahead! We just ask that you not share the questions with others after completing it.
Re:a16z Programming Test by zodiac on Friday April 11, 2014 @08:10AM (#7572391)
>> allows someone ... from outside the US, to compete on a level playing field.

Just curious, why do you say that the normal process doesn't allow people outside the US to compete on a level playing field? Higher barrier to on-site interviews?

Re:a16z Programming Test by jheriko on Friday April 11, 2014 @07:58AM (#7572344)
one of the best programmers i know refuses to continue with a job application if there is a programming test... its a bit eccentric but valid given that his experience and past achievements say more than a programming test ever could.
Re:a16z Programming Test by danielbarla on Friday April 11, 2014 @08:21AM (#7572429)
I have come across this opinion as well from some excellent developers, but I can't say that I agree with it. All in all, a well-executed* technical test can be an excellent filter and basis for further interviews.

* By well-executed, I mean - relatively language agnostic, lacking in trick questions and meaningless trivia, and being open to multiple good answers. The intention is to not only check basic ability to solve simple problems, but the general approach and programming style of the individual interviewed.

Past experience is often vaguely stated in CVs and looks great on paper, but can be disingenous. It takes a thorough two-way discussion which is customised to each individual to reveal this, however. Some people have excellent and highly visible past achievements, but not everyone does. I wouldn't throw out a CV simply because the individual doesn't have any open source code to show me, nor do they have any awards from companies they have worked for (which is often more about self-marketing than actual ability).

I guess your mileage may vary based on the position that's in question and the companies involved, but I've seen some shocking discrepancies between CVs and actual programming ability. Even worse than the usual "fizz-buzz" statistics that get thrown around.

Re:a16z Programming Test by jheriko on Friday April 11, 2014 @11:32AM (#7573467)
this is something i wonder. are tests to see the approach to problem solving? of the few tests i've had one was simply testing my knowledge of the C++ and STL specifications - there was no programming skill involved at all - I could have cheated if I had a physical copy of the spec handy even.

this kind of test is not valuable. the other tests i've done though - even though incredibly easy i think would be more useful for seeing how i approach problem solving in general...

Re:a16z Programming Test by ukd1 on Friday April 11, 2014 @10:23AM (#7572989)
Agreed re discrepancies: I've had CS Majors / Masters fail, yet my self-taught CEO passes. This amazes me. [edit; the cs majors amaze me]
Re:a16z Programming Test by danielbarla on Monday April 14, 2014 @06:09AM (#7585346)
My own surprise was mostly to do with highly paid individuals with a great track record on paper, but who seemed to be barely able to solve basic problems (to the level of making me wonder whether they had actually written a single line of code in the past few years).

Regarding CS majors, there's always the possibility of an individual being great at the theory part, but not having much programming experience. This should be rare though; during my own CS degree, we coded so much that I was frequently dreaming about code. If it's provided in the CV, I like to scan through the subjects list of the candidate - the ones who don't actually like programming seem to have an aversion to taking CS courses for elective subjects. As always though, YMMV, and it's a good idea to keep an open mind.

Re:a16z Programming Test by jheriko on Friday April 11, 2014 @11:39AM (#7573518)
why does it amaze you? my experience of 'self taught' individuals in the general case is that they have a rich understanding of the subject by necessity.

conversely my experience of education is that it trains you to solve education style problems - which are essentially absent from the real world - where being able to invent and implement a slightly broken solution in an hour with 30 seconds notice is much more valuable than being able to solve a problem you know about far in advance and are given loads of information and guidance to help in preparation for it.

on the other hand if i wanted someone to do research then a CS major might be a better choice. :)

Re:a16z Programming Test by ukd1 on Friday April 11, 2014 @12:01PM (#7573685)
I should have been clearer; it doesn't amaze me someone self taught could do it, but it does that CS major couldn't.
Re:a16z Programming Test by ukd1 on Friday April 11, 2014 @10:21AM (#7572975)
Why? I've had that in interviews before when asking people to code. I find it strange (not just because we pre-warn about the agenda) that someone applying to program won't...program? I reasoning I've had has been mainly : "it's too trivial" "I've written gems" "I'm famous"
Re:a16z Programming Test by jheriko on Friday April 11, 2014 @11:35AM (#7573489)
i don't do the same. i'll take the test because its just another opportunity to prove myself.
Re:a16z Programming Test by tpae on Saturday April 12, 2014 @03:57AM (#7577274)
I am 26, been out of school for 5 years. I've been programming since 14 years old, and currently know 5 different stacks by heart. I would never do a programming test, because I know I would feel pressured to do well (due to my experience), but also I would fail horribly at it. It sucks. :(
Re:a16z Programming Test by lordmax on Friday April 11, 2014 @01:58AM (#7571420)
3 hours is upper bound and extremely friendly one to allow for all but hopelessly incompetent candidates. I did the test in less than 90 min. First 27 questions should take a competent hacker less than 20 min; rest of the time is for last 3 coding assignments.
Re:a16z Programming Test by gcb0 on Friday April 11, 2014 @04:23AM (#7571764)
I'm saving it for the weekend. Will read about all the virtualization techniques for those spoj like sites and then have a go in 3hours trying to break that one :-)