News for hackers. Stuff that matters.
Re:Ask YC: Why the degree? by gnaritas on Saturday May 24, 2008 @02:21PM (#198933)
In the programming industry, it's not really that hard to filter out bad candidates. You shouldn't waste time talking to any programmer not willing to submit to some simplistic programming test in lieu of a resume. Resumes are crap and have no place in hiring programmers. Code is all that matters, either they can do it or they can't and if they can, they'll accept your challenge.

Nothing makes for a better interview than doing a code review and critique of the candidates own code. Something simple but telling like write a little slot machine that lets you bet money, spin the wheel, and win or lose with the game ending when you run out of money.

Anyone who refuses such a test isn't a programmer you want anyway, and you can tell an enormous amount about a potential candidate by simply looking at the quality of the code submitted. Don't bother interviewing anyone who's code you can't stand. You can see everything you need to know about their skills in that code.

You wouldn't hire a graphic designer who refused to submit samples of his designs, nor should you hire a programmer who refuses to submit samples of his code. Merely by having such a test, you'll weed out all the fakers because they won't bother with it, they'll submit their fake resumes elsewhere.

Re:Ask YC: Why the degree? by pfedor on Saturday May 24, 2008 @08:45PM (#199220)
Many good candidates could be put off by such test. More importantly, even if they agree to your test and send you some code, you need an engineer's time to evaluate the code sample, and if you're going to invest engineer's time you might as well do a full phone screen. The recruiters are by and large non-technical people. They would love to be able to ask some technical questions which could help them predict whether a candidate would pass the interviews or not. I've been actually asked by a recruiter friend of mine how to do it. But, if you think about it, this is not so easy if you're not a programmer yourself.

You are absolutely right that it would be madness to hire a programmer without having seen him code. The companies are well aware of it and they will surely ask you to write a lot of code during the interviews. But that comes at a much later stage, as it costs them much more money than checking on your resume whether you have a degree or not.

I'm not saying that I like the way things are, but that's just life. If that's of any consolation, in most other industries the requirement of having a degree is much more strict than in case of Software Engineers.

Re:Ask YC: Why the degree? by gnaritas on Saturday May 24, 2008 @09:24PM (#199244)
I disagree, any candidate worth having would enjoy such a test. Any programmer who is put off by being asked to program needs to find another profession, period. You should not ask someone to program during an interview, you should review the code they've submitted and make them explain it, all if it, their design choices, their idioms, naming conventions, etc. If they can't discuss code they just wrote prior to the interview, you don't want them, but many good people don't perform well under the pressure of an interview so you won't get an accurate feel for them if they program at the interview.

No one but a programmer is qualified to evaluate another programmer, HR and recruiters have no place here and they'll just waste time and effort pretending to be useful, they aren't.

By doing the test you've already filtered out the wanna be's so you don't need phone interviews, the submitted samples should go strait to a qualified programmer, it'll take him only a few minutes to toss out any bad submissions and he'll quickly know who's worth actually interviewing and who's not.

Code is the only resume a good programmer needs.

Re:Ask YC: Why the degree? by LogicHoleFlaw on Sunday May 25, 2008 @04:56PM (#199715)
One issue to be aware of is that it's not just the corporation interviewing multiple candidates. It's also the candidate interviewing multiple companies. Putting a large burden on each candidate may not scale if every company does it. I agree that it's important to assess actual coding ability but I don't know if a programming test is the best way to go about it.
Re:Ask YC: Why the degree? by gnaritas on Sunday May 25, 2008 @06:29PM (#199773)
Any programmer who considers such a trivial test a large burden, you don't want. There's no other way to assess programming ability than programming, it's really that simple. If you hire an unknown programmer without making him submit a code sample, then you deserve what you get because you're gambling and likely to lose. The whole point is to find good programmers, and good programmers enjoy programming, they'll happily write a trivial program to prove it, happily. Anyone who balks at such a test is not someone you want to hire, period.
Re:Ask YC: Why the degree? by elai on Sunday May 25, 2008 @02:36AM (#199395)
Dont be the kind of employer that asks for a week long project as a resume. That's just irritating.
Re:Ask YC: Why the degree? by gnaritas on Sunday May 25, 2008 @12:11PM (#199576)
I didn't say that, I'm talking an hour or two long project here.
Re:Ask YC: Why the degree? by eru on Saturday May 24, 2008 @02:38PM (#198945)
That may work better than a resume.

Can you imagine a test for the ability to work on larger programs?

Re:Ask YC: Why the degree? by gnaritas on Saturday May 24, 2008 @02:45PM (#198953)
Good code is good code, I don't agree that it takes a vastly different skill set to work on different sized programs. During the interview you can simply ask questions such as "How would you provide the ability to configure various strategies for different users interfaces for this slot machine? Say a web UI, a command line UI, and a native app UI?". "How might you make the randomizer for spinning the slots configurable?". The discussions these open up will tell you a lot about their knowledge of making flexible software.

Again, the test is just to weed out the bad candidates and allow you to only interview worthy people, everything else you'll find out in the actual interview. Interviews will be rare, few people will submit code you'll find acceptable at all. The vast majority of people applying for programming jobs, can't program, it's sad, but true.

Re:Ask YC: Why the degree? by stcredzero on Saturday May 24, 2008 @05:05PM (#199052)
There is a set of skills and body of experience that applies to working on large bodies of code. In fact, there are different skill sets for working on bodies of bad code and good code.
Re:Ask YC: Why the degree? by gnaritas on Saturday May 24, 2008 @08:16PM (#199201)
You'll note I said vastly different, I didn't say there was no difference.
Re:Ask YC: Why the degree? by stcredzero on Sunday May 25, 2008 @02:39AM (#199398)
The language syntax may be the same, but programming approaches might be very different. I've seen parts of a Smalltalk program where it was coded like spaghetti copy-paste Fortran, and it's actually hopeless to try and fully understand the semantics and still meet your deadline. But I was able to use a few tricks to prove that certain modifications wouldn't alter other functionality so I could get my work done. In the same program, there was well factored code with a nice object model, where it would behoove you to understand the part you're working on in a more conventional way.

On reflection, I think you may be right that good code is good code. Size of the system matters most when the code is bad.