Hacker News new | ask | show | jobs
by Troll_Whisperer 5449 days ago
This is absolutely wonderful timing for this thread to come up. I've recently started at a start-up in Beijing and have been put in charge of making a filtering system for technical applicants.

One thing I was never prepared for was the sheer number of people who just lie on their CVs! After somewhat reluctantly starting to ask senior app developer and web developer applicants to write a fizzbuzz program, I was shocked to see that less than half could. This is from a group of people who claimed to be experts.

Since that discovery a couple of weeks ago, I've been building an automated grading system similar to the great FB's old puzzlemaster app. That way I can screen out those who can't do fizzbuzz and another trivial program or two before wasting our one iPhone dev's time interviewing them.

Those who do at least decently do get a chance to interview, but I'm hoping to add more puzzles to the auto-grader in the hopes of spotting applicants with stronger skills than is clear from their interviews. Any suggestions?

3 comments

Implement an iterator for a data structure (you can choose which structure).

Write a simulator for lottery number drawings.

Write a basic cash register API that keeps track of a total balance as well as denominations. Bonus points if it makes change appropriately (largest bills first).

These sound idiotic, but someone who can't do FizzBuzz probably can't do these either.

http://codility.com

And many, many more.

I'm sorry, maybe my comment was unclear. I'm writing the tests. I was looking for suggestions for programming questions (i.e. is giving them a problem that requires implementing a binary search or a graph useful?).

That link is useless to me since the site is in English and nearly all my applicants are Chinese who don't have the language skills to read it. Throwing 200 weak applicants at it would just be a waste of $600USD/month.

It's not that hard to come up with programming questions. It's harder to come up with relevant ones. What sort of algorithms do your devs actually use?

Do you need to know if they can write parameterized queries in SQL? Do you need to know if they can do simple web crawling or scraping? String manipulation? Or do they need to know how to do linked lists, hashes and binary searches?

I think you'd do better if, rather than making them redo old CS assignments, you focused on job-relevant tests.

Do better at what? The kind of test we're talking about here is just a bozo filter. It's designed to keep out the flagrantly awful candidates who can't even write a simple program, not to test for actual job suitability.
The original test is like that, but I don't think that's the question GGP was asking.
I'd be interested to see the results (email in profile). But I suspect the answer to this question will depend a lot on what your startup is doing and what skill level you are looking for. We have different programming tests for different roles, but they're all tailored to what each candidate will be doing if they get the job, and give them an idea of the kind of work they might do if they are successful in their applications.
Apparently they have a Chinese translation:

http://codility.com/faq/#80

Scroll up and read the FAQ entry right above that one.

They're only partially translated, and unfortunately the quality of those translations has been spotty from what I've heard others here in Beijing say.

What is your approach for asking (supposedly) senior developers to write such a rudimentary program? Having interviewed "senior" developers with "10 years of experience" that could not tell me the difference between an int and a char pointer, I know this type of interview question is, unfortunately, very important.