Live data from Hacker News

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

countaleph.wordpress.com

181–190 of 354 posts

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

#181

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 (…

> 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. This one wasn't smarter than Einstein. It's been a while since I've been near a live PHP installation, but IIRC running with an opcode cache like APC probably means the comments will be parsed…

This true - but without the opcode cache the slowdown would be minimal since all the comments are ignored.

Plus, the comments are there for future developers to use as a reference. Nothing worse than having something break, cracking open a file and have to spend hours having to untie someone else's code.

I'd rather have copious amounts of comments, then a minimal speed gain due to not having them at all.

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

#182
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,…

I have a bunch of personal projects, but few of them are on github, and the ones on github are not done under my real name, because I find the concept of me having to work on nights and weekends to impress future employers offensive.

My personal projects also include things like my very playing around with a new language (so it is freaking ugly and so I would never want it used as a job indicator) and old abandoned projects that I've salvaged and updated as a favor to friends, which means the entire architecture is alien and "I Don't Care If It's Ugly Just Make It Work Because Right Now It Does Not Work At All" is exactly what the 'client' wants.

I also reverse-engineer game protocols and find vulnerabilities in them. There is no social good to me releasing that stuff. (No, I really don't feel like being a soldier in your Full Disclosure army.)

I do lots of coding stuff in my spare time. I don't do it to get a job, I do it because it's fun.

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

#183
I'm dealing with this now, having been interviewing for different engineering roles over the past two months. It hasn't been as bad as straight-up conceptual math problems, but there have been plenty of questions that I have questioned for validity.

Interviewer: "How can we optimize the character replacement in a string such that we use no extra memory?" Me: "We do this and that and this. But, should we consider what situations we would need this optimization?" Interviewer: "What? Why?"

I can now use this as a filter as I interview organizations. Optimizing algorithms by creating your own core data structure classes (instead of using the built-in ones) is great in certain circumstances, but an absolute waste of time in many others. And if you're not going to ask me about those times when making those improvements is important, then you're not asking questions for a programmer -- you're asking them for a theoretician who can recall syntax.

It's poor practice, and I've seen it everywhere.

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

#184

Earlier quoted context omitted.

If you have a great job there is no reason for you to spend personal time participating in any kind of interviewing process. Also, who says "I am an excellent developer"?

You should always be looking for jobs. I got my present job at Google even when I was quite happy with my previous work. Also, please avoid ad hominem attacks.

The magic of open sores: what's your Github?

This should be easy to settle and show up the other guy. ;)

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

#185
post #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 impost…

You're conflating intelligence and knowledge. Intelligence is a matter of capacity and capability; knowledge is one of the things intelligent people have a great capacity for attaining and retaining. The main thing, in fact.

Knowledge, unlike intelligence, is in practice infinite. And now you can understand the inverse Dunning-Kruger effect: intelligent people have the capacity to recognize how little knowledge they have, and can ever have, about any given topic.

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

#186

Earlier quoted context omitted.

> "I don't believe in comments because they slow the PHP interpreter down." For some bizzare reason, a lot of PHP devs obsess over mini benchmarks and tiny speed issues while ignoring massive latency factors (like the DB). I find it amusing, though, as PHP hasn't been a direct interpreter for years. It compiles to an internal opcode array and interprets that. While its opcode compiler is silly (it doesn't build an AS…

> For some bizzare reason, a lot of P̶H̶P̶ devs obsess over mini benchmarks and tiny speed issues while ignoring massive latency factors (like the DB). This sort of behaviour isn't unique to PHP Devs, not even close.

True.

Reminds me of all the roadies (road cyclists) who would come into our bike shop and demand the lightest components to put on their bikes, then rave about how they cut 10 GRAMS off of their bike weight. Totally ignoring the fact they're pushing almost 220lbs themselves.

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

#187

Earlier quoted context omitted.

Your question about relevance is fair. The author of the blog post kindly submitted here complains that she [I wrote "he" before edit prompted by kind reply below] gets math quiz questions when applying for programming jobs. That's a mistake on the part of the hiring companies in two ways. 1) The main thing to look for when hiring programmers is programming work samples. In general, for any kind of work, a work-sampl…

Did you just say that education requirements are legally risky? That is brand new to me. I would love it to be true, but I've never encountered it in reality.

In the UK, it's illegal to block people from getting the job for anything which doesn't fall under the General Operating Requirements (GOR) of the job. This means that you can refuse to hire someone in a wheelchair for a bricklaying job (for the sake of pedantry, lets assume they cannot physically do the job) but you cannot just because someone has a certain religion.

It's a shockingly sensible piece of legislation.

Some interesting consequences that I know have been tested in court:

You can't be 'over-qualified' for a job, that's a form of age discrimination. An over-qualified person shouldn't be less able to do the job.

You can fire someone for wearing a niqab if it stops them from doing their job (e.g. teaching English to young students to whom English is a second language).

So, if you can show that not having the qualification doesn't disadvantage you then I would expect that'd be a legal issue.

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

#188
post #7

I actually like asking math questions on interviews. It shows how people approach a problem. Asking code questions in an arbitrary interview setting shows just about nothing - no access to a reference doc, somebody peering over your shoulder. Heck, I couldn't code my way out of a wet paperback in that setting. Certainly, asking only math questions is stupid as well, people should know at least a little about the stuf…

Did you read the OP? The point of the article was that one can be great at that sort of thing and yet quite terrible as a production programmer. You are not measuring the skill you want with math problems, you are measuring a proxy.

Furthermore, I've known plenty of smart math people that just never seemed to be able to program (well). I think they are different skill sets, certainly with plenty of overlap, but plenty of differences as well, and those differences matter. I laughed out loud at the "variables, variables everywhere!" answer in the OP - I've had to deal with so much code written that way. Some people, very smart people, just don't 'get' design in that way. I worked with a guy that used to run around the office, asking brain teasers, sharing tidbits of knowledge, but he couldn't execute a basic project - couldn't plan what to do, couldn't do things in a rational order, couldn't experiment and gather data, couldn't incrementally design, develop, refactor, nor do a big-bang waterfall kind of design, and so on. He was not sorely missed when let go. Smart as a whip, and useless (for programming).

I've worked at several companies with staff mathematicians. Sooner or later they got their hands on a compiler. Oh my. No, let me do that. You tell me what is wrong with my Kalman filter, but I'll take care of the implementation, thank you.

Its easy to kvetch at somebody else's answer without offering an alternative (I do agree whiteboard progamming is disastrous). So, instead of asking math, why not ask them to write a simple routine, but then start asking real world problems about the code they would face - how would you make this API interface robust? What kind of documentation would you write. How would you handle errors? Is this code exception safe? Thread safe? How would you make it either/both of those. Suppose your problem size was n=100MM, how might you need to change this (say they have a data structure that loaded everything into memory)? Ask them some problems they will see in production - what is the network delay, or whatever your problem case is. You still get to see how they approach problems, but in the context of the actual decisions they will be making while programming for you.

Anyway, that is what I try to do. I am revising my thoughts even on that, because I find people flopping on the 'code the simple problem (and, it is simple)' yet doing great on all the engineering questions, and doing fine if we hire them.

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

#189
post #66

Because they don't know you, you don't have a well known name, they don't know what you can and if it is true. E.g. if somebody hire John Carmack (ID Software), nobody will let him do some math test or ask him trivial programming questions. But you are not John Carmack ;-) It is like in every other job: if you are not a rockstar you are nobody.

Did you even read the article?

The author was not saying she was above simple coding tests but that she was an inexperienced programmer who was GOOD at the maths puzzles and got the job then struggled and the interviewer's assessment of her software development ability would have been better with some software related questions.

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

#190

Earlier quoted context omitted.

"...a smart person eager to learn is a breeze compared to teaching problem solving to someone who memorized the reference manual." I would guess that there is actually significant overlap between these two groups.

> I would guess that there is actually significant overlap between these two groups. I wouldn't. Smart people get bored sitting around memorizing things. They'd rather be thinking. Purely anecdotally, the smartest people I know rarely have encyclopedic knowledge of anything.

But thinking has the side effect of storing lots of stuff in your memory. So you can end up with encyclopedic knowledge of subjects that you've spent a lot of time thinking about. It just isn't knowledge that got stored by explicitly trying to "memorize" things (which means it's more reliable anyway, since it's knowledge that's connected to other things you know).
Post reply on HN