Live data from Hacker News

Dear Startups: stop asking me math puzzles to figure out if I can code

countaleph.wordpress.com

111–120 of 354 posts

Re: Dear Startups: stop asking me math puzzles to figure out if I can code

#111
On one hand I completely agree, on the other my experience of most CS graduates is that you can't code, at least not in the way that anyone codes in the real world so it's not a great thing to spend too much time on. That's not the fault of most graduates, it's what and how they're taught. Most people coming out of university know a little bit about a lot of languages and theories. That's good for giving them an overview but not great when it comes to having actual usable skills on day one.

Because of this I've pretty much given up on hiring graduates based on their technical skills so instead I'm looking for someone smart, who gets that they've got a lot to learn, who is interested in technology and can get on with the other people in the team.

I don't think asking people math questions per se is a great idea, but if you've studied a maths degree it's a good way of working out if you're smart and if you were paying any attention at all during university.

(Incidentally this may be different in other countries (I'm in the UK) or in a company where you're able to attract the very best who have picked up really solid skills, but for most organisations that's not the case as most graduates spent more of their own time in the bar than coding.)

Re: Dear Startups: stop asking me math puzzles to figure out if I can code

#112
I am willing to bet that tests give an advantage to applicants with no commercial experience, as well as those that have no life outside of technology. If that's what you want in employees then sure, it's a good way to find them, otherwise just look at their code samples and give them a trial.

Programming isn't difficult and you don't need to know complex maths or be able to solve mind bending puzzles to be a great developer.

Re: Dear Startups: stop asking me math puzzles to figure out if I can code

#113
The "Kevin Bacon" stuff was about degrees of separation (Does the expression "Six degrees of separation" ring a bell ?).

Not long ago, Facebook made that 4.74 degrees of separation on its networks. Meaning a maximum of only 4.74 persons are necessary to connect any two random persons on the network.

https://www.facebook.com/notes/facebook-data-team/anatomy-of...

You can also find an article on Wikipedia about the "Kevin Bacon" reference.

Re: Dear Startups: stop asking me math puzzles to figure out if I can code

#114
post #85

Earlier quoted context omitted.

I'm fine with only hiring people who have done some work outside their workplace. If they're really great at programming, they have the drive to try new things outside work. Indeed, a couple good personal projects is probably the best predictor of skill you could find. (Skill and interest tend to be highly correlated.)

I used to believe that as well. Now I'm not so sure, mainly through my own personal experience. For 5.5 years (2004-2009), I was a core developer and maintainer over at Xfce. Over that span of time I wrote tens of thousands of lines of code, perhaps more. I did this in addition to my job, which morphed from engineering project management to programming tasks that I didn't find very challenging. After I left that job,…

It's interesting, because all my Xfce contributions are on git.xfce.org, and not on GitHub

In this case, just mention it. It's not about github literally.

Re: Dear Startups: stop asking me math puzzles to figure out if I can code

#115

Earlier quoted context omitted.

Actually the primary correlate of SAT scores is not intelligence but wealth.

Aren't intelligence and wealth correlated with each other, and both are correlated with SAT and IQ tests? I thought the explanation for the mysterious "g-factor" in intelligence that IQ is supposed to measure isn't that it exists in and of itself, but that a number of measurable outcomes (income, wealth, test scores, GPA, job prestige, etc.) are all positively correlated, and then that correlation is called g.

We need to define some terms. Education != intelligence. The IQ tests are silly and heavily judged as nonsense. These tests are focused on math mostly, but math alone is hardly the only area that matters. However, in this context, math matters, because in many ways it is correlated to programming.

Re: Dear Startups: stop asking me math puzzles to figure out if I can code

#117
post #2

Two possible reasons: 1) I think a lot of start-ups want to hire "smart" people. Because they expect the new person to eventually wear many hats. Objective-C, Java, Android, CSS, server side concurrency, monitoring. An we've all seen Hunter and Schmidt reference that tokenadult usually posts when talk about interviewing comes around and it does seem that a general mental ability test (like an IQ test) combined with a…

1) I think a lot of start-ups want to hire "smart" people.

What does it really mean to be smart? Lately I cannot stop thinking about it. I have always been considered a 'smart person'. I am a self-taught freelance developer now - it used to be my hobby and somehow (mostly because I needed location-independent work quickly) it became my profession. I get by because everybody thinks I am smart but I feel like an impostor because the more I think about myself the more I realize that intelligence is not some general ability to solve problems - it's more just a set of very different skills that corelate to much lesser extent than people usually think and you can be really good at something that people use to judge your abilities and at the same time really bad at something else that is actually required to get the job done.

I studied sociology and I shortly worked as a data analyst. It seems to me that this kind of work requires... ehm... a different intelligence than programming. You need to be good at connecting the dots, noticing things, seeing patterns. This is my kind of thinking and I have always been good at this - doubting everything, seeing pure assumptions where other people saw 'truths', permanently creating hypotheses and alternative theories, trying to spot logical fallacies in prevailing theories... basically trying to spot things.

Programing is very different (at least it seems to me - so different tat it's even difficult do describe it). I guess it's about creating stuff, not just observing stuff. You need to build very complex and abstract mental models, keep them in your head and be able to operate with them - and this is the part of intelligence that I seem to be lacking. It just does not feel natural. I try to solve some problem and I am thinking... if this condition and that condition but at the same time not that condition... and bang!, suddenly I am lost and I don't even remember what I am doing. I cannot keep it in my head. I totally get what OP was saying about passing anonymous functions in JavaScript - I had the same experience. The first time I encountered something so simple as JavaScript closures it took me two hours to get it. And the day after that I had to repeat the whole mental process to get there again because I somehow lost it over night. This is simply not how my brain works and I think I am really bad at this. Yet people pay me for this... which is just depressing (and you understand why I write this under throwaway).

I remember our 'statistical analysis 101' professor always telling us 'remember, you are not really testing hypotheses, you are only testing indicators!' - if HR department picks wrong indicators for the skills that they actually need both company and employee are going to be unhappy - and I think this is very common because our understanding of the indicators for different kinds of 'being smart' is still poor.

Re: Dear Startups: stop asking me math puzzles to figure out if I can code

#118
post #71

Earlier quoted context omitted.

Asking math questions might exclude some good candidates. I know more than a couple very productive programmers that did not go through a formal CS education. Asking math questions to those candidates could even scare them for no reason. I hired people who had no idea about Lagrange Multipliers but were able to ship code in various languages and even learn new paradigms when necessary. There are not only smart people…

Everything might exclude some good candidates, right? With the possible exception of a lengthy internship or "trial period."

Hell, even those can exclude a good candidate, especially at larger companies. Candidate not a good fit for the team? Probably won't do as well as one who is.

Re: Dear Startups: stop asking me math puzzles to figure out if I can code

#119

After much experimentation giving interviews for server side positions, I've come to favor questions that involve routine real world problems that can be handled in increasingly sophisticated ways. One example I use is getting the candidate to write crud, list, and search controller actions for a simple category data structure. Given a basic category data model (e.g. Name, Parent), the candidate starts with the crud…

OP would still blow you away by using the Nested set model: https://en.wikipedia.org/wiki/Nested_set_model

Although if you've been doing this interview for a while, you're bound to have come across someone who mentioned it, so I'm sure you're familiar.

Re: Dear Startups: stop asking me math puzzles to figure out if I can code

#120
Here's the test I've used in the past:

Before the interview, I ask them to write some code to access an HTTP endpoint that contains exchange rate data (USD, EUR, GBP, JPY etc.) in XML and to parse and load said data into a relational database. Then to build a very simple HTML form based front-end that lets you input a currency and convert it into another currency.

I ask them to send me either a link to a repository (Git, SVN etc.) or a zipball/tarball. If the job specifies a particular language, then I obviously expect it to be in that language. If not, so long as it isn't in something crazy like Brainfuck, they have free range.

If the code works and is basically sane, that goes a long way to get them shortlisted.

During the interview, I'll pull the code they sent up on a projector and ask them to self-review it. If they can figure out things that need improving in their code, that weighs heavily in their favour. Usually this is things like comments/documentation, tests, improving the structure or reusability. If it's really good, I'll throw a hypothetical idea for refactoring at them and see how they think.

The reason this works is that, despite Hacker News/Paul Graham dogma to the contrary, "smartness" isn't the only thing that matters in programmers. It's actually fairly low down the list. When hiring programmers, I want people who are actually able to do the daily practical job of writing code, modest and self-critical enough to spot their own mistakes, and socially capable to actually communicate their decisions and mistakes to the people they work with.

I interviewed a guy who was intellectually very smart and understood a lot about CS theory. I asked him why the PHP code he sent me didn't have any comments. "I don't believe in comments because they slow the PHP interpreter down." Sorry, he can be smarter than Einstein but I ain't letting him near production code.

Post reply on HN