Hacker News new | ask | show | jobs
by greenlander 4758 days ago
I interviewed thousands of new college grads. The guys who I made offers to were almost always guys who did stuff on their own. Right before I retired, the last guy I made a job offer to showed me an app he had written for his iphone that simulated how particles diffuse in a solvent, and his resume showed a link to the code that he wrote.

His GPA was only a 3.5. But I totally got him: he was great because he had a passion for digging into stuff, and not just for jumping through professors' hoops.

In general, the correlation I found between GPA and competence was this:

Below 3.0, something is wrong. This person doesn't get fundamentals: he will write convoluted code and won't get a lot of basic concepts. He either isn't very bright or highly undisciplined or both.

3.0 - 3.5, this guy isn't good at jumping through hoops, but he might be great if he has a passion for programming and has done lots of side work. It's a mixed lot but there are a fair number of diamonds in the rough.

3.5 - 3.9, this is the sweet spot. Lots of great people in this category who did both great and school and also did stuff in their spare time.

3.9 - 4.0, oddly, the quality seemed to go down here a little bit. These are the people who spent all their Friday and Saturday nights studying instead of developing social skills, and didn't really do much besides jump through the professors' hoops and get an A in everything.

A great engineer doesn't just blindly jump through every hoop. In the real world, the amount of work is highly unbounded, and a great engineer will be able to sort through it and figure out what's REALLY important and what's not. And they'll be able to articulate why they think that and negotiate with others. Sometimes, the 4.0 candidates were obsessive-compulsive people weren't grounded in the real world and couldn't think in practical terms.

Obviously, I'm generalize and there are always exceptions. But if you interview thousands of candidates you see the trend.

2 comments

This is an irrational model for evaluating a candidate's talent. The best way to evaluate a candidate's talent is to make them code for you, plain and simple. Many people's motivations in university diverge from their motives in the professional world. Some people will work much harder when the result is a paycheck every two weeks, or when they have to feed a family, or because they see their work career as distinct from their academic career. But for the sake of argument, let's play along with this naive model.

The university they attended matters almost as much as their GPA, as we all know that professors will tend to curve the difficulty of their course to conform to the quality of the students they are teaching.

And you have an illogical attitude towards 3.9-4.0 students. Almost every student who attends an Ivy-caliber school had a 3.9-4.0 in high school. Surely, you aren't implying that the quality of a CalTech CS graduate is lower than the quality of a UCLA CS graduate, because the CalTech students' one-time GPA was likely a 4.0. And you certainly can't be saying that Ivy-caliber students are sheep who blindly jump through hoops.

> The best way to evaluate a candidate's talent is to make them code for you, plain and simple.

For evaluating talent, sure, but the job interview process isn't about finding the most talented candidates, it's about finding the candidates who would do the job the best. The point of the parent and grandparent comments was that GPA was an important indicator for the non-talent portions of the jobs they were hiring for.

From personal experience, I've worked with several people who were absolutely brilliant when presented with a new and interesting problem, but as the novelty wore off (usually on the scale of weeks) and their excitement waned, their ability to actually complete their work dropped off, too. That's not something you can tell by just making them code for you.

All the candidates I gave serious consideration to write lots of code (as did my staff who also interviewed them). But I can't interview everyone whose resume I receive: I can only pick the best resumes. When a candidate failed the interview process, I tried to figure out the error I made (if any) in order select better resumes in the future.

And I agree that schools are different. I occasionally considered candidates from schools that people snicker about, like San Jose State. But they had better have aced everything and really stand out from the pack to overcome that handicap. Sometimes, great people have life circumstances that corral them into lame schools. On the other hand, I'd give pretty serious consideration to a candidate from Harvey Mudd or CalTech with a 3.1. (But even at those great schools, the < 3.0 rule seemed to apply: candidates with a really low GPA couldn't pass the technical parts of interviewing. You'd be surprised how many CS graduates from top schools can't implement the C library strrev() function or return a pointer to the nth element of a linked list.)

My experience agrees with yours, the college hires who made me the most excited were those who had side projects and summer start ups.

You're breakdown of GPA is interesting and reasonable. It would be interesting to see if it correlates with first reviews and time at level.