Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Tough Tests Flunk Good Programming Job Candidates

samzenpus posted more than 2 years ago | from the lowering-the-bar dept.

Businesses 743

snydeq writes "Fatal Exception's Neil McAllister discusses the use of quizzes and brain-teasers in evaluating potential software development hires, a practice that seems to be on the rise. 'The company best known for this is Google. Past applicants tell tales of a head-spinning battery of coding problems, riddles, and brain teasers, many of which seem only tangential to the task of software development. Other large companies have similar practices — Facebook and Microsoft being two examples,' McAllister writes. 'You'll need to assess an applicant's skill in one way or another, but it's also possible to take the whole interview-testing concept too far. Here are a few thoughts to keep in mind when crafting your test questions, to avoid slamming the door on candidates unnecessarily.'"

Sorry! There are no comments related to the filter you selected.

the way to go (5, Interesting)

lecoupdejarnac (1742408) | more than 2 years ago | (#37941304)

Radical idea: have them write code for a few hours to solve a given problem - then see how their solution looks. This goes a long way towards judging their fit for the job. You can even give them a couple of data structures and algorithms references - on the job we use references all the time, and being able to implement something from a reference and apply it to a problem is a real skill.

Re:the way to go (0)

Anonymous Coward | more than 2 years ago | (#37941336)

Thats exactly what my current employer does and it works well, and not just for developers.

Re:the way to go (1)

stanlyb (1839382) | more than 2 years ago | (#37941384)

So, with such a tests, i wonder how would you manage to find quarks......oh, they don't exist you say, silly me.

Re:the way to go (3, Interesting)

Amouth (879122) | more than 2 years ago | (#37941516)

When i do it i make sure to use an environment that has the same capabilities but they are not familiar with.

Example for a graphic artist when they list Photoshop i give them gimp (unless they have both then i give them painter). or give them OpenOffice instead of MS.. as for programming normally i will have them debug something that is a language they didn't put on their application, making sure the bug is an obvious one (not a syntax problem).

i look for how they solve the problem - some give up at the start, others try and figure it out, others will ask questions. when they are working and/or asking questions you can tell if they know what they need to do and are just confused by the environment or if they are completely lost. it is also a good way of testing their critical thinking skills.

i'd rather hire and train someone who will work out side of their comfort zone, has critical thinking skills, and has the ability to learn. then to hire and spin someone up who might be an good at something but that is all they can or will be able to do.

On a side note i'm not that great with people skills so while i write the tests i no longer do the interviews - last too applicants ended up crying during the tests.

Re:the way to go (0)

Anonymous Coward | more than 2 years ago | (#37941410)

That's probably a better way depending on the position you are hiring for. However, even these tests are fairly meaningless. A real test would take months or even a year or more and the candidate's skills would have to be evaluated on a longer term project. Solving little puzzles doesn't have much to do with experience in maintaining, debugging or designing a large application over a long period of time. I've seen PhDs who can solve those puzzles who crank out absolutely non-maintainable code. They are great at algorithms, and specialize in them, but long term development and maintenance of a software system is out of sight and out of mind for them.

Re:the way to go (1)

ackthpt (218170) | more than 2 years ago | (#37941726)

That's probably a better way depending on the position you are hiring for. However, even these tests are fairly meaningless. A real test would take months or even a year or more and the candidate's skills would have to be evaluated on a longer term project. Solving little puzzles doesn't have much to do with experience in maintaining, debugging or designing a large application over a long period of time. I've seen PhDs who can solve those puzzles who crank out absolutely non-maintainable code. They are great at algorithms, and specialize in them, but long term development and maintenance of a software system is out of sight and out of mind for them.

Might be better to just hire candiddates, assign them to a work group on some Google Labs type of thing, see how they do. Keep the good ones and wash out the ones who prove not up to the task, unable to work with others or have other issues.

Re:the way to go (1)

Anonymous Coward | more than 2 years ago | (#37941796)

Might be better to just hire candiddates, assign them to a work group on some Google Labs type of thing, see how they do. Keep the good ones and wash out the ones who prove not up to the task, unable to work with others or have other issues.

Or - a radical concept - hire candidates with minimal screening to verify qualifications, assign them to perform the actual work and get rid of them as soon as they fail.

The more thoughtful person might realize that there is not a single recruitment method that fits all situations. Not everything in life is a simple equation.

Re:the way to go (2)

agm (467017) | more than 2 years ago | (#37941810)

Might be better to just hire candiddates, assign them to a work group on some Google Labs type of thing, see how they do. Keep the good ones and wash out the ones who prove not up to the task, unable to work with others or have other issues.

Depends on your local laws. Here in NZ you cannot fire someone without three written warnings, and even then it's difficult to do. We've only just passed a law which allows for a 90 day probationary period where no reason needs to be given for firing someone.

Re:the way to go (1)

bonch (38532) | more than 2 years ago | (#37941426)

Asking candidates to write code on a blackboard or sheet of paper is common practice.

Re:the way to go (1)

Anonymous Coward | more than 2 years ago | (#37941470)

Asking candidates to write code on a blackboard or sheet of paper is common practice.

Yea because programmers often write code in a blackboard or a sheep of paper in front of other people judring them over their shoulders on unknown metrics.

Re:the way to go (1)

jo42 (227475) | more than 2 years ago | (#37941526)

Except whiteboards or pieces of paper don't do code completion or have function/method/library/framework documentation.

Sod you with a stiff wire brush if this is how you hire coders.

Re:the way to go (2)

Shinobi (19308) | more than 2 years ago | (#37941650)

Well, they want to see your raw abilities, not your development environments abilities.

Re:the way to go (4, Insightful)

beelsebob (529313) | more than 2 years ago | (#37941742)

Do they? Why? You're going to be working in a development environment. What good is a guy who can solve trivial problems on a white board when you need a guy who can solve complex problems in a dev environment with a bunch of reference material.

Re:the way to go (0)

Anonymous Coward | more than 2 years ago | (#37941760)

is there some job that codes only on pencil and paper?

This is like asking a craftsman to build a cabinet without using a square.

Is it measuring "raw" ability? sure. Does that really matter? no.

Re:the way to go (1)

superwiz (655733) | more than 2 years ago | (#37941832)

Remembering finer points of an API is not an "ability". In fact, if a person does remember finer points of API, they more than likely have difficulty understanding the difference between what's important and what isn't. As a result, they probably write extremely unreadable code. So, in fact, people that you are judging as able are most likely to do more damage than good to your code base. Remembering API base is about as much a skill as spelling is a skill. If a machine can perform a task, then testing people in performing the same task will only get you people who are replaceable with machines.

Re:the way to go (1)

amicusNYCL (1538833) | more than 2 years ago | (#37941668)

I'm pretty sure that something like code completion would be one of the things you specifically don't want them to rely on. Documentation is also available outside of any IDE, as long as they have internet access. Writing on a blackboard would be the rough equivalent of writing code in Notepad on a projector. A competent programmer should be able to do that.

Re:the way to go (2)

superwiz (655733) | more than 2 years ago | (#37941862)

A competent programmer should be able to do that.

No more than a competent mathematician should be able to do arithmetic. A good programmer should be able to manipulate concepts. Anyone who commits API to memory is most likely writing terrible code.

Re:the way to go (1)

bonch (38532) | more than 2 years ago | (#37941838)

If you can't write common algorithms without code completion or framework documentation, you may not be the hire they're looking for.

Well... (1)

MrEricSir (398214) | more than 2 years ago | (#37941440)

While a programming test can be a valuable part of the interview process, it would be a mistake not to do some in person "tests" as well.

Why? Because the entire point of those tests isn't to see if they get the right answer, it's to see if the candidate can work with the people in your office.

Re:the way to go (5, Insightful)

anomaly256 (1243020) | more than 2 years ago | (#37941448)

This would be preferable to what one company I applied for a job with did recently. Gave me a fairly straight forward maths problem involving modulus, gave me about *5* seconds to solve it using real code and not just pseudocode. Sure, that was fine. Then they added the caveat 'What if % is an expensive operation? how would you work around it?'. Turns out it was a trick question. They were expecting you to statically store the result explicitly instead of finding different maths that achieved the same result dynamically but more efficiently. less than 2 seconds later the interviewer interjected with the answer before I had a chance to even say or do anything right *or* wrong.

I don't see how *this* particular kind of quizzing *can* weed good candidates from bad, it's stacked against everyone equally. It's hostile. I'm pretty sure they didn't ever find the 'right' candidate.

I'm all for puzzles and quizzes to test someone's experience and ability and problem solving skills during job applications, but they MUST a) be unambiguous otherwise you're just being a jerk, and b) must be given a reasonable amount of time to actually perform them otherwise, again, you're just being a jerk.

Re:the way to go (4, Insightful)

anomaly256 (1243020) | more than 2 years ago | (#37941484)

In hindsight though, I'm really glad I didn't get that position. I'd hate to work for someone so near-sighted and irrational. :)

Re:the way to go (0)

Anonymous Coward | more than 2 years ago | (#37941702)

They would be irrational if they asked you to use i in the calculation. ;)

My irritation is with questions that the interviewer has thought about for a long time and is expecting you to answer in a few seconds/minutes. Plus, "call the existing "foo" utility that does this "foo" calculation" is always frowned upon as an answer.

Re:the way to go (4, Insightful)

acak (2362174) | more than 2 years ago | (#37941534)

Too often the interviewer's questions are loaded in two different ways - there is no one right answer and not understanding this or dismissing anything outside the narrow set of answers he/she is looking for shows a lack of maturity on the interviewers side of the table.

Re:the way to go (1)

sapgau (413511) | more than 2 years ago | (#37941718)

Agreed +1

Re:the way to go (0)

Anonymous Coward | more than 2 years ago | (#37941804)

Too often the interviewer's questions are loaded in two different ways - there is no one right answer and not understanding this or dismissing anything outside the narrow set of answers he/she is looking for shows a lack of maturity on the interviewers side of the table.

Agreed, but that lack of maturity can be on the other side of the table too. I had an interviewee, throw a temper tantrum that there was no perfectly right answer to a question I asked. He was right and I knew it. He failed entirely. If he was going to act like that when my boss passed him an impossible spec to meet, I didn't want to have him around.

Re:the way to go (4, Insightful)

mhotchin (791085) | more than 2 years ago | (#37941824)

The saddest thing is - the 'no right answer" questions are (in my mind) one of the *best* ways of evaluating a prospective hire if the interviewer then follows up with "Why did you do it that way?".

Rather than finding out if the hire can find the answer, I would want some insight into *how* the answer was achieved. Was it something they memorized? Did they evaluate trade-offs? Did the even *see* the trade-offs? Can they evaluate their own answer if (as happens in the real world!) new constraints are placed on the problem?

An 'inefficient' answer is *just fine* if the code wouldn't be used much, and better if it's more maintainable, for example.

Re:the way to go (0)

Anonymous Coward | more than 2 years ago | (#37941708)

Man, I feel for you:
"All right hot shot. Now what if modulus is an expensive operation? How do you work around it?"

"Well, if just the modulus operation were expensive for some reason, you could go back to the definition of modulus, and do an integer divide--"

"WRONG. You store the result so you don't need to do the operation again. Get the fuck out of here."

"But an integer divide is faste"

"What are you still doing here. Get out! OUT!"

Re:the way to go (1)

ackthpt (218170) | more than 2 years ago | (#37941780)

This would be preferable to what one company I applied for a job with did recently. Gave me a fairly straight forward maths problem involving modulus, gave me about *5* seconds to solve it using real code and not just pseudocode. Sure, that was fine. Then they added the caveat 'What if % is an expensive operation? how would you work around it?'. Turns out it was a trick question. They were expecting you to statically store the result explicitly instead of finding different maths that achieved the same result dynamically but more efficiently. less than 2 seconds later the interviewer interjected with the answer before I had a chance to even say or do anything right *or* wrong.

I don't see how *this* particular kind of quizzing *can* weed good candidates from bad, it's stacked against everyone equally. It's hostile. I'm pretty sure they didn't ever find the 'right' candidate.

I'm all for puzzles and quizzes to test someone's experience and ability and problem solving skills during job applications, but they MUST a) be unambiguous otherwise you're just being a jerk, and b) must be given a reasonable amount of time to actually perform them otherwise, again, you're just being a jerk.

Interview panels I've been on, we generally throw out a few simple problems - we're not so concerned with whether the candidate arrive at a correct answer as we want to observe their thinking - "Explain how you would do X, in general terms" More telling than someone who has the IQ to pass the test, but then proves to be a problem in how they go about work.

That aside:

'The company best known for this is Google. Past applicants tell tales of a head-spinning battery of coding problems, riddles, and brain teasers, many of which seem only tangential to the task of software development.

This seems to explain some of the idiotic updates Google has been rolling out to Chrome and other products. Brilliant, but lacking wisdom.

Re:the way to go (0)

Anonymous Coward | more than 2 years ago | (#37941854)

My experience has been that this is usually the result of allowing people who don't know the subject matter for the position they are hiring. They come up with tests having trick questions and ambiguous answers. Like, "in binary, 1 + 1 = a) 2 b) 10"

The industry has been trashed by offshoring. (4, Insightful)

Anonymous Coward | more than 2 years ago | (#37941476)

The offshoring of software development over the past 15 years hasn't just trashed the quality of the software that many American businesses use, it has also trashed the ability of software developers to become managers.

The best software development managers were formerly software developers themselves. They know that experience is what counts. They know that bullshit HR tests don't work. But these kind of managers are now retiring or getting promoted to executive positions outside of software development. There's nothing but a huge void following them, since there have been very, very few software developers in America over the past 15 years.

The people we have following them often have no software development experience. Many of them are MBAs who don't even know of any programming languages beyond JavaScript, and they only know of JavaScript because they read about it once in some article that was hyping it. The worst are the "professional project managers" who don't even have any relevant college-level training in any useful field (yes, that's right, sociology majors don't know how to be software development managers).

We don't find good managers in the places where the software development was offshored to, either. Skilled management was never a factor there to begin with, and thus the void has always been present over there.

Offshoring software development has been one of the biggest economic mistakes that any civilized nation has ever made.

Re:the way to go (5, Interesting)

CannonballHead (842625) | more than 2 years ago | (#37941584)

I interviewed at a company, some sort of advertising thing. Relatively small - I was fresh out of college and talked to some heads of something-or-other. Anyways, there were two of us that happened to interview at the same time; they had two test stations setup. There were a few multiple choice sorts of questions, and then an actual programming test dealing with extracting ads out of an XML page, as I recall, in PHP. Well, I'd never dealt with XML in PHP at all, so it was totally new to me. I found various things online (XML parser, etc). After a couple hours and making some progress, but not completing it - and having the other guy already finish roughly an hour or so earlier and whatever - I said I wasn't going to be able to complete it very quickly and asked if I should leave or not.

The head hiring people asked if they could talk to me, so I said sure. Asked if I thought I could complete it, given time - I said sure, it wasn't that difficult, it's just that I had never worked with XML parsing before and was having to learn it as I went. Then they pretty much startled me. They said, basically, the following: the other guy interviewing had all the skills, he was able to churn out the problem, and his test scores were good (as were mine, incidentally). But they didn't like his attitude (somewhat arrogant, loudly proclaiming "oh yeah, it was easy!" and that sort of thing). They said that even though I couldn't complete it within an hour or two, they liked my attitude, they liked that I stayed at it for about two hours (without being asked really), they liked that I was honest to say I would not be able to complete it by the end of the business day (my interview was at like 2:30 and it was now 4:30). They basically said they'd offer me a Jr. Dev position based on the work ethic, honesty, and generally good attitude/personality (along with knowledge of general programming stuff based on test scores, resume, etc).

I didn't end up accepting as I got a much better offer elsewhere - also, primarily, based on work ethic, personality, general knowledge, etc.... it was a "we'll train you to do what we want you to do, because we can see you're versatile enough and willing to learn" - but the experience was pretty eye-opening.

Re:the way to go (0)

Anonymous Coward | more than 2 years ago | (#37941788)

I, too, developed a slightly ridiculous seeming quiz for applicants, but the purpose was to check basic problem-solving skills for a field engineering position, and it did separate out the 3 applicants. One, very highly self-touted, appeared unable to follow instructions, and a liar [I started it by asking him to get a pencil and paper, and he said he had. But he never wrote anything down, and said he couldn't remember everything].

One, had some trouble with the problem solving, but managed to do it.

One did the job easily, in a way that was different than what I had thought of.

Either of those two would have been acceptable, but in the end all three were asking more than our company would have been willing to pay. Oh, well. We did end up getting applicants that were qualified, though, who would work for what we were paying.

Re:the way to go (1)

RyuuzakiTetsuya (195424) | more than 2 years ago | (#37941618)

Actually that'll be a good test of their individual programming and development style. Have them work with another employee who has no idea what the problem is and see how your candidates work in a group.

Re:the way to go (2)

wideBlueSkies (618979) | more than 2 years ago | (#37941786)

Yup. The programming assignments work.

I even go so far as to give them a couple of days to think it through, and send me code that compiles, along with written test cases / data.

 

They forgot what tests are for (4, Insightful)

eparker05 (1738842) | more than 2 years ago | (#37941316)

Tests can be a good measurement of quality when the test is material that can be studied for. In school you have a test at the end of a class. For certifications, tests are meant to measure knowledge gained during training. In graduate school, qualifying exams are done to second year students who have time to prepare and hone their skills.

Testing somebody from a cold start, on subjects they have no practical way to prepare for seems like a good way to hire a trivia expert, but the productivity of an employee should be evaluated by his resume and portfolio.

Re:They forgot what tests are for (5, Insightful)

frosty_tsm (933163) | more than 2 years ago | (#37941548)

Or their objective isn't specifically verifying the individual in front of them.

Picture this: a hiring manager at some medium company reads an article about the brain teasers asked by Microsoft and Google interviewers. He wants his application process to seem more like theirs so they can say they are doing MS / Google style interviews (which sounds good to other managers and executives and theoretically impresses applicants).

Re:They forgot what tests are for (4, Insightful)

Tawnos (1030370) | more than 2 years ago | (#37941678)

Which is bogus, because at least here at Microsoft, those brain teaser questions haven't been used in many years, after it was determined they were ineffective and dumb.

Re:They forgot what tests are for (0)

Macman408 (1308925) | more than 2 years ago | (#37941696)

Testing somebody on something they should have learned is a better way to hire a trivia expert, if you ask me. When employers give this sort of a test, they don't really care if you already know why manhole covers are round, or how many dump trucks it would take to move a mountain - they want to see how you tackle a problem you've never seen before. The whole point is that there's no way to prepare for this sort of thing - either you can handle a new problem, know when to ask questions, and break it down into solvable pieces; or you look at the problem as an unsolvable whole, and give up without even really trying. After hiring somebody, I'm not going to be asking them to write down a data structure they learned from a book in college; I'm going to give them a problem to solve, and as a part of it, they need to recognize a need for a data structure, and make an intelligent decision about which one is the best fit for the job.

Does this approach flunk good coders? Absolutely. Does it pass bad coders? Certainly. But, used as one tool among several in the interview process, it has a place. Those who do well with puzzles like this are more likely to be good at coding than those who fail these puzzles, so it's a good way to filter out candidates. If your company doesn't have enough applicants, then maybe you can't afford to lose a single good coder - but these high-profile employers often attract hundreds or thousands of resumes for each open position. They can afford to be picky, and to filter out some good candidates as a cost of filtering out many bad candidates.

In a similar vein, my employer has a strict 3.5 minimum GPA for new college hires (I assume this doesn't apply to experienced professionals, but I don't know). Are there good candidates that got a 3.4? Definitely. There are probably a couple that just don't do well in school, and get a 2-point-something, but would be fantastic coders. But filtering by GPA is a good way to eliminate most of the bottom 50% of candidates when you have 100 resumes per position, even if it takes out a few of the top 50% along the way.

Never had a problem with these... (0)

mandelbr0t (1015855) | more than 2 years ago | (#37941340)

...and I'm a darned good programmer. Sounds like they work to me.

Re:Never had a problem with these... (3, Insightful)

Asic Eng (193332) | more than 2 years ago | (#37941560)

Looks like you just flunked the "sample size" test. Don't worry about it, brain teasers aren't for everyone.

Re:Never had a problem with these... (1)

mandelbr0t (1015855) | more than 2 years ago | (#37941644)

Wow! What an amazing comeback. I'm going to cry for days now.

Re:Never had a problem with these... (1)

narcc (412956) | more than 2 years ago | (#37941722)

Judging from your response, you seem to be the type to cry for days over a snarky forum post.

Re:Never had a problem with these... (1)

Anonymous Coward | more than 2 years ago | (#37941572)

No, your probably only a good programmer in your own magical dreams.

Any half decent programmer never goes around saying how good he is making himself look like an idiot.

Re:Never had a problem with these... (1)

mandelbr0t (1015855) | more than 2 years ago | (#37941634)

Too bad you're an AC and probably won't read this, but anyway... Egoless programming is a stupid idea. Do you want the job done, or do you want to have group hugs when shit breaks constantly? I've carried countless groups through school and work, without complaining, because I live to code. Binary is a second language to me and everything else just builds on that. I've put out a ton of fires, because I am as good as I think I am. In the words of Sir Arthur Conan Doyle (Sherlock Holmes) "it is just as much a fallacy to underestimate your intelligence as overestimate it." As you'll note, I don't claim to be the best. But I am a hell of a lot better than pretty much any "developer" I've had the misfortune to work with.

Re:Never had a problem with these... (1)

sapgau (413511) | more than 2 years ago | (#37941822)

Do you have a preference on a particular programming language?
Sometimes issues are not just a programming error but misconfiguration of the environment.

Just wondering...

The only winning move (0)

Anonymous Coward | more than 2 years ago | (#37941354)

Is not to play.

Whatever happened (3, Informative)

ignavus (213578) | more than 2 years ago | (#37941360)

Whatever happened to tests like drinking the interview panel under the table?

Now that is a skill needed on the job.

Re:Whatever happened (1)

frosty_tsm (933163) | more than 2 years ago | (#37941564)

Whatever happened to tests like drinking the interview panel under the table?

Now that is a skill needed on the job.

Recreate late-night thinking by preceding the test with 3-4 shots?

Re:Whatever happened (1)

Anonymous Coward | more than 2 years ago | (#37941604)

Job interviews made my butthole hurt.

Mix it up (4, Insightful)

Tablizer (95088) | more than 2 years ago | (#37941362)

Teams with diverse thinkers are often the most effective. The one who is not good at math puzzles may instead be good at understanding the customer's needs or the intuitiveness of user interface designs in the eyes of non-techies, and vice verse. They each can focus on their specialty, or at least help each other out in their weak spots.

No surprises there. (0)

Anonymous Coward | more than 2 years ago | (#37941366)

If you get hundreds or thousands of applications for a single position, how else do you narrow them all down to one candidate?

Re:No surprises there. (1)

stanlyb (1839382) | more than 2 years ago | (#37941404)

Short answer: Lottary. Long answer: trow a dice.

Re:No surprises there. (3, Funny)

NoNonAlphaCharsHere (2201864) | more than 2 years ago | (#37941444)

Lucky thing it's not a spelling test.

Re:No surprises there. (1)

stanlyb (1839382) | more than 2 years ago | (#37941492)

This h is always trying to become silent. Not my fault.

Re:No surprises there. (0)

Anonymous Coward | more than 2 years ago | (#37941406)

Obviously you listen to outsiders tell you how you ought to shape hiring policy.

who wants to work for google? (1, Insightful)

stanlyb (1839382) | more than 2 years ago | (#37941368)

Tell me wrong, but if google is full with EXCEPTIONAL developers, why there is not even a single product made entirely by them? Please, even one is enough (and don't say: Google) Anyway, my point is that these mehods are good enough for finding anything, but good developers, which is maybe their aim in the first place.

Re:who wants to work for google? (1)

mandelbr0t (1015855) | more than 2 years ago | (#37941390)

And why not say Google? It is their primary product, after all, and it's been around for a long time. And frankly, I don't hold a candle to the guys who originally wrote the search engine.

Re:who wants to work for google? (2)

stanlyb (1839382) | more than 2 years ago | (#37941436)

They did not invent the search engine, but the way how to best evaluate the site's hit count,interest,etc... Everything else is one big farm, very very big farm.

Re:who wants to work for google? (1)

mandelbr0t (1015855) | more than 2 years ago | (#37941456)

No, they didn't write the search engine. But they outlasted Altavista, Hotbot and Lycos, probably because it indexed more sites and had more accurate search results.

Re:who wants to work for google? (3, Insightful)

JonySuede (1908576) | more than 2 years ago | (#37941428)

google is not full with EXCEPTIONAL developers, it is filled with EXCEPTIONALLY clever people; you get what you select for. As D&D should have taught you, INT is not equals to WIS !

Re:who wants to work for google? (1)

stanlyb (1839382) | more than 2 years ago | (#37941460)

Actually, they got a exceptionally good at passing funny tests "developers". Literally.

Re:who wants to work for google? (0)

Anonymous Coward | more than 2 years ago | (#37941554)

Not likely, given their slow and disorganized interviewing process.

If you're exceptionally clever and apply to several jobs simultaneously, by the time Google contacts you for an interview, you'll most likely have accepted an offer elsewhere.

Re:who wants to work for google? (1)

jo42 (227475) | more than 2 years ago | (#37941552)

filled with EXCEPTIONALLY clever people

AKA highly educated idiots...

Re:who wants to work for google? (0)

Anonymous Coward | more than 2 years ago | (#37941578)

why there is not even a single product made entirely by them? Please, even one is enough (and don't say: Google)

Gmail.

Re:who wants to work for google? (0)

Anonymous Coward | more than 2 years ago | (#37941814)

I started asking that question not too long after their IPO lockup period. The whole point of banging your head at a startup is to have a low employee number and a boatload of options. You hope to do that before the IPO. So there was Google, putting people through one of the most grueling interview mills, in exchange for much less upside. I bet FaceBook wasn't torturing their applicants anywhere near that much, and they're real close to the payout now. If you had offers from Google and FaceBook in 2007, and took the Google offer you're probably kicking yourself now.

Re:who wants to work for google? (1)

icebraining (1313345) | more than 2 years ago | (#37941846)

Google Reader? Google+? App Engine? Google Goggles? Go? Google Talk?

FizzBuzz test (0)

Anonymous Coward | more than 2 years ago | (#37941434)

Jeff Atwood recommends the FizzBuzz test.

I agree.

Amateur night (0)

Anonymous Coward | more than 2 years ago | (#37941464)

The interviewers, et al may be professional programmers, but they know less than jack about testing, evaluating skills, etc.
When confronted with this I ask "Who publishes and standardizes this test?"
The answer so far has always been "Well, it's just a bunch of questions we cooked up/"
Which, considering my views on hazing and one-upmanship, prompt me to rise and not so politely depart.
It sets a tone for the relationship like asking someone on a date and having them cover the check

Too many candidates to choose from (5, Insightful)

acidradio (659704) | more than 2 years ago | (#37941494)

It seems like every job posting now has around 50-100 people who apply. To weed out this many people en masse they will make you do just about anything - tests that have little application to the job that you are applying for, bark like a dog, sing the interviewer's favorite Barbra Streisand song, paint a painting of a nice wilderness scene, tune the carburetor on the interviewer's old Triumph motorcycle... Many of the people are well-qualified and even over-qualified! To weed them out on that alone would go nowhere.

If I had to tell you how many times I've been asked something stupid and cliche like "Tell me about a time when you experienced change" or "Tell me about a time when you faced challenge" I might go postal. It's almost like HR people invent these questions to pad their interviews because they don't really understand what or who they are interviewing for. I long for the days when a hiring manager or, god forbid, the company owner/proprietor calls and asks you "So, tell me what you are about and tell me why you think I should hire you."

They can treat applicants like total bastards and get away with it. With this kind of market what is really to stop them?

Re:Too many candidates to choose from (2)

Phoobarnvaz (1030274) | more than 2 years ago | (#37941662)

It seems like every job posting now has around 50-100 people who apply. To weed out this many people en masse they will make you do just about anything - tests that have little application to the job that you are applying for, bark like a dog, sing the interviewer's favorite Barbra Streisand song, paint a painting of a nice wilderness scene, tune the carburetor on the interviewer's old Triumph motorcycle... Many of the people are well-qualified and even over-qualified! To weed them out on that alone would go nowhere.

Another trend we never used to see are the online tests for minimum wage/low paying jobs. Had a buddy of mine who can pass these with no problem tell me you have to lie and don't list your education/training anywhere on the application/resume. Never thought in my life I would see a test battery being used to be able to clean bathrooms or flip burgers. WTF has this country become when slavery to a corporate master is becoming the way of life in the US.

We want a job to be able to have a place to stay and have some semblance of a life without sponging off friends and families. Because we won't blindly follow directions to clean the bathroom with our tongues or a toothbrush...die at the counter or my desk in 35 years or can make suggestions on doing something better from previous experience doesn't mean we will not make a bad employee. With the economy the way it is...it's not like there's another job waiting out there which will give better benefits/pay.

Re:Too many candidates to choose from (0)

Anonymous Coward | more than 2 years ago | (#37941758)

Re:Too many candidates to choose from (2)

owlstead (636356) | more than 2 years ago | (#37941834)

Go to NL, we've got a (rising) shortage of IT personel. Of course, your pay level and housing cost may be affected. We are a friendly people that like to drink real beer, talk English and use US keyboards :)

Amen (3, Insightful)

bradgoodman (964302) | more than 2 years ago | (#37941512)

I've sat through interviews before where I got hit with some of these "puzzle" questions. The thing that really struck me was that the questions were the kind you'd need to be a Nobel Laureate to solve (not really), but were completely obvious if you *knew* the answer. So, as these were "novel" or "neat" "brain-teasers" - they really assessed only if you were some mathematical savant - and had nothing to do with your coding, or even problem-solving abilities. I'm 100% sure that the interviewer wouldn't have been able to figure out the answers, if he hadn't already known them.

(In the end I admittedly had absolutely no idea how how to solve the problems, and didn't even attempt to. I got the job anyway.)

When I interview people - I feel it is my job to "extract" the best out of the candidates, and to find out what "their best" actually is. If I come away from an interview and don't have a strong feeling for a candidates abilities - good and bad - I feel as though I didn't do my job as an interviewer. I've seen too many people "freeze up", or just be shy in interviews. These people maybe were VERY qualified - I feel it is always my job to understand that. My creedo is this: Get the people talking. Get them talking about what they do, and what they love. If you can do this - they'll go into the depths and bowels of their technical knowledge, working style, experience, etc.

proxy IQ tests (1)

turing_m (1030530) | more than 2 years ago | (#37941660)

I've sat through interviews before where I got hit with some of these "puzzle" questions. The thing that really struck me was that the questions were the kind you'd need to be a Nobel Laureate to solve (not really), but were completely obvious if you *knew* the answer. So, as these were "novel" or "neat" "brain-teasers" - they really assessed only if you were some mathematical savant - and had nothing to do with your coding, or even problem-solving abilities. I'm 100% sure that the interviewer wouldn't have been able to figure out the answers, if he hadn't already known them.

These are really just a proxy IQ test with questions that only someone on the far right end of the bell curve can answer. The reason they do this is because requiring an actual IQ test to be taken is illegal, so they've found a loophole. If the company that was hiring you was not actually requiring that the questions be solved, then my guess is that they had a lower IQ bar than Google but didn't understand the reason behind what Google/Microsoft et al does enough to find some questions that were hard but still easier than Google's questions. Basically a cargo cult approach to hiring.

Re:proxy IQ tests (1)

SpazmodeusG (1334705) | more than 2 years ago | (#37941806)

I don't even consider them to be IQ tests. Some of the questions I've seen rely on algorithms that have taken decades of computer science research to create. If you're able to write down an implementation it's not going to be because you worked it out. It's going to be because you rote learnt it.

Which is crazy really, because you don't want programmers who rote learn implementations of algorithms. That goes against the principles of not recreating the wheel (and all the bugs). You'd be much better off with programmers who can Google and research various libraries and solutions for the task at hand than one who memorizes implementations of algorithms.

Re:Amen (1)

zegota (1105649) | more than 2 years ago | (#37941700)

Commonly referred to as Jewish math problems. Problems that have trivial, or exceedingly simple, solutions, that are impossible to find on their own. The Soviets used them to weed out Jews from the universities while pretending they weren't. They gave the normal problems to most of the kids, and the Jewish problems to the Jews. If anyone questioned them, they could say "Hey, look. It's an easy solution. It's not my fault they didn't get it." http://io9.com/5848752/how-to-solve-jewish-math-problems [io9.com]

Re:Amen (1)

cpm99352 (939350) | more than 2 years ago | (#37941706)

Agreed. Back in the day, that was how I interviewed as well. My preference is to ask very open-ended questions (so, tell me about your latest (or most fun) project), and then drill down on their answers, getting more technical as we go.

So many people freeze during the interviews (I certainly used to) that, much of the time, the BS artists are the ones who pass through traditional interviews.

Re:Amen (1)

bradgoodman (964302) | more than 2 years ago | (#37941784)

Yes. The BS artists, or the people who are outgoing, or egotistical enough to thrive in that kind of an environment. Not that that's a BAD thing, it's just that when someone is nervous, they are MUCH more susceptible to messing up even very SIMPLE tasks - even ones that they know well, or have done a million times.

Personally, when peoples "eyes are on me" - I even hate answering specific "white board coding" questions. If you put me at a computer and have me CODE - no problem. If you ask me about a project and get me talking - I'll go all day, and into specific detail.

Put me in front of a white board and tell me to write a linked-list insertion function (something I've written a billion times, have been asked a million times in interviews, and KNOW I'll be asked in future interviews) - It's a complete mental choke!!

Trades like / apprenticeships / schools are TECH (0)

Joe_Dragon (2206452) | more than 2 years ago | (#37941514)

Trades like / apprenticeships / schools are needed for the TECH field.

To many tests / certs are based on cramming for the test. Certs also have questions based stuff that you just about never see in the real work place or have software setups that seem to be a world where software is free.

The beast way to assess an applicant's skill is to have some kind of a apprenticeship or temp to hire.

Other good ways are hands on tests, go over past cases / stuff that happen in the office and asking what would you do?

Some bad ways are off base questions, basing on GPA, degrees and what school you went to.

GPA are bad due to filler class being part of them as well classes that are all about the test (good people at doing a job may be bad at tests and there are people who are good at taking tests but are bad at applying stuff that the covered aka the paper mcse)

Definitely true for MS (1)

spiffmastercow (1001386) | more than 2 years ago | (#37941522)

I interviewed over the phone a couple times there.. They try to "ease" the difficulty by providing hints and asking you to "talk through" your process, etc. The problem is that these questions are often poorly defined (and I suspect made up on the fly), and one interviewer's "hints" were very distracting. In both cases I figured out the answers 5 minutes after hanging up, when I could finally be alone with my thoughts.

Re:Definitely true for MS (1)

JonySuede (1908576) | more than 2 years ago | (#37941792)

I had a similar experience in the interview process for my current job I but was very blunt about it. I told the interviewer:

I can give you a good answer to your problem but I have to stay silent about 5 minutes while I solve it and only after that I can explain my solution. However, if you really wish so, I can do a bad job while talking about it but be warned that you will eventually hear me talk about how I think when I think about "talking through" my process while I crapply solve you trick problem. I value quality and correctness, but as I said, if you really wish so, I can botch it for you. The choice is up to you.

The interviewer evidently selected quality (who would choose crap?) and about 3 minutes later, I had an elegant solution based on graphs theory.

Google Example (2)

dupup (784652) | more than 2 years ago | (#37941544)

Google invited me to interview for a Java programming job. They started the interview by informing me that I would be "the oldest person in the group" (I was 39 at the time). Then, I was invited to code a linked list in C on the white board while they watched. I can do this, I suppose, having done it 20 years ago while getting my computer science degree. And never done it since. I questioned the relevance of the problem pointing out that this was surely not required for programming in Java. It kinda went downhill from there...

Re:Google Example (1, Troll)

mandelbr0t (1015855) | more than 2 years ago | (#37941582)

I haven't coded a linked list in C in 10 years either, but I could still do it in my sleep. Sounds like you know less than you think you do.

Re:Google Example (1)

joggle (594025) | more than 2 years ago | (#37941800)

At least they didn't ask to code a linked list in Java. In C it's trivial with pointers. In Java, I would be stuck at "Why?" since there's already a LinkedList container. I'm only partially kidding.

It's not really that unfair of a question because the answer is so simple and fundamental. It basically shows that you understand the concept of pointers and memory allocation, which even in Java is relevant due to the similarity to references.

Less False Positives (4, Interesting)

Tsarnon (4195) | more than 2 years ago | (#37941556)

Sure this technique has tons of false negatives, but I think it has fewer false positives than many other interview techniques. False positives are a much bigger problem then false negatives when hiring.

Problem solving ablilty tops his entire list. (1)

bongey (974911) | more than 2 years ago | (#37941562)

Problem solving ability is what they are really trying to test. If you cannot figure out what to do, and lack basic problem solving ablilties you are one of these guys http://professionalsuperhero.com/ [profession...erhero.com] .
"Talk is cheap. Show me the code."

Here we go again... (1)

SlashdotIsRetarded (2499984) | more than 2 years ago | (#37941590)

You don't have to get the answers to all of Google's interview questions right. You have to show them that you know how to approach a problem and work towards a solution. They give you plenty of time and will often nudge you in the right direction if you're struggling. Most of the questions aren't particularly hard either if you have a decent understanding of data structures and algorithms.

a head-spinning battery of coding problems, riddles, and brain teasers, many of which seem only tangential to the task of software development.

Bullshit. The vast majority of the questions are about using an appropriate data structure and applying it to a relatively trivial algorithm. If you don't want to learn these things, and for some reason are determined to be a developer, I suggest picking up Ruby on Rails. After a week or two you might even be able to make significant improvements to MRI.

Changing the Rules (2)

Nom du Keyboard (633989) | more than 2 years ago | (#37941594)

Considering that these questions can be asked once, maximum 3 times, before someone posts it to the Internet, now that I've memorized all of the right answers there they go changing the rules. I'll never get that job now.

Liberal Arts vs problem solving (0)

Anonymous Coward | more than 2 years ago | (#37941620)

The two biggest issues in programming are proper usage of programming language grammar and effective problem solving.

Great problem solvers with poor grammar skills write buggy software fairly quickly. Great "grammarists" with poor problem solving skills write good code but the code takes a long time to get done because the problem solving is difficult.

I remember working with a psychologist on an IQ interview (IQ tests are crap, proper IQ evaluation is done through interviewing with a trained clinical psychologist) and I pointed out that the solution given to a problem would not actually work and how my solution would. I had to work with her on beam deflection, but, she understood the issues. The point is that really creative problem solvers might come up with answers that don't fit within the test parameters which is exactly what you want with a programmer, innovative problem solving.

Pit of Death? (1)

kermyt (99494) | more than 2 years ago | (#37941636)

Has anyone considered pitting them against each other in mortal human combat? That would surely make the cream rise to the top!

I had this in my last interview (1)

bartron (772079) | more than 2 years ago | (#37941638)

There were two parts to it. One was a set of about 20 questions that I maybe had an inkling of the answer. It was a warm day, I was wearing a suit and stuffed into a room by myself to see how many I could answer. Are they testing my abilities or my tolerance to being in an uncomfortable environment? Most of the questions were ones that only someone with OCD would be able to answer off the top of their head. Information like what protocol goes with what port is stuff that I don't use on a daily basis, but I know perfectly well where to look for it when I do need to find out. That's what reference material is for.

the second part was "here's a problem, how would you code the solution". In this case the language could be anything, so I wrote in pseudo code and even went back over one of them because I though of a more efficient solution.

Things that can be looked up in a reference manual or on the internet should be left out of interviews (unless the question is along the lines of "How would you determine XYZ?"). Keep it to methods used to solve a problem and you'll get a good understanding of how a particular person works and how they will work for you.

Re:I had this in my last interview (1)

gnasher719 (869701) | more than 2 years ago | (#37941798)

Things that can be looked up in a reference manual or on the internet should be left out of interviews (unless the question is along the lines of "How would you determine XYZ?"). Keep it to methods used to solve a problem and you'll get a good understanding of how a particular person works and how they will work for you.

I think you should pose at least one question where the answer can found on the internet, give them a browser, and see what happens.

Apply for fun (1)

Culture20 (968837) | more than 2 years ago | (#37941720)

I almost want to apply for a job just to play the puzzles.

This is so true (1)

HangingChad (677530) | more than 2 years ago | (#37941762)

...but it's also possible to take the whole interview-testing concept too far.

No kidding. I was a software engineer for almost a decade and got some bizarre interview questions with no connection to any relevant problem I had to solve in nearly 10 years of writing apps. What was bizarre is, most of the time, the problems had no connection to anything the company did, either. Nothing about logistics, data import, connecting to a web service, or setting up batch jobs, none of the skills you need every day.

The worst offenders are the third party testing companies which seem to specialize in obscurity.

I switched to freelance writing. It pays better, it's age proof, there's no commuting, no dipshit third party testing companies to slog through, and I don't work for idiots.

I'm about to leave the software (corp) field (2)

TheGratefulNet (143330) | more than 2 years ago | (#37941790)

partly - perhaps even mostly - due to this new strict 'screening' bullshit that everyone in the silicon valley seems to be doing, now. I've been out of work for more than a year now and the interviews I have been on have been markedly different than they were 20 years ago when I first came to the bay area. lately, the interviews are confrontational. they are assuming you are a liar, incompetant and many other bad things - and its up to you to disprove that. they do not seem to want you, they are there because their bosses told them to interview some new people.

this is quite different from the case where they really are looking to hire and are excited to have found a match (at least on paper) and just want to verify that you are who you say you are. even as little as 5 years ago, the interviews were not so negative. it was more of a verification that you met your paperwork. now, they don't bother to read your resume; or they assume its all lies and you have to start from ground-0 and prove an entire background to them. *over and over*, too; with each new guy that steps in for his 45min slot. show me linked lists; show me trees. show me O(n) stuff.

the problem for me is that I am starting to not care anymore about this level of detail. I'm 50 and have been doing C since I was mid 20's. I have done my time, to be sure; but I just don't really get into having to prove it over and over again, like my resume is all a pack of lies. it gets tiring and its making me question whether I really want to re-enter this field with these kinds of people 'running things'.

I do think that people like me are worth retaining in the software development field. true that I'm getting tired of the lower level details and things that are reference (like precise steps in deleting a linked list node) are of no interest to me when I can quickly get the correct sequence in a few minutes of search. there is too much to keep track of and older things do age out, its true. but older folks do have a lot of other things to offer. its a shame that we get passed over due to how the 'tests' are structured these days. I once was able to jump thru some hoops, but now, I'm just not so motivated to play their bullshit 'test me' games anymore. its a shame since I'm not alone in this and losing experienced guys like me is a real loss to the industry.

At least get the language right (1)

John Bresnahan (638668) | more than 2 years ago | (#37941840)

My last interview was for a "C" programming position (Point-of-Sale system for a large retailer) which was a very good fit for my experience and skills (30 years C programming, almost a decade on another large P.O.S. system).

Unfortunately, the only technical interviewer who talked to me was a Java programmer. He thought he was also a C/C++ programmer, but he was wrong. After 45 minutes of questions about details of Java class usage, it was clear that he couldn't tell a good C programmer from a bad one.

I didn't get the job, and I suspect that whichever Java programmer they ended up with is thoroughly miserable programming in C.

Interviews (1)

Prien715 (251944) | more than 2 years ago | (#37941842)

I recently got a new job and have definitely seen a lot of this. It ranges from the esoterically retarded ("Can you call a destructor in C++ directly?" (The answer is yes, but it's a terrible idea -- so is there any difference in practice between never doing something and thinking you can't? Why not quiz me on goto syntax -- that's at least useful sometimes)) to one company I really liked that sat me down for 3 hours with a Linux box and said "Solve these 3 problems as efficiently as you can" -- all of which were fair and managed to solve all of them quickly, correctly, and I thought the resulting code was beautiful in its simplicity, efficiency, and readability. I also had fun doing it (hey, some people write entire kernels for this reason;)). I've also failed one of these so-called online tests for reasons of the above. Their loss. But why would I want to work for anyone who thinks some incredibly stupid test means anything?

The job I ended up taking? I sat down with their lead dev and we talked shop for an hour. He wanted to know what I did and how I went about doing it and we talked about how they're using CUDA to develop higher level APIs to make it easier to use the GPU for computationally expensive operations. And then we ate really good Indian food with the rest of the team.

So if you're in charge of hiring, remember, that good programmers are a scarce resource, and we usually have more than one offer on the table. Don't waste our time and we won't waste yours.

Morgan Stanley (0)

Anonymous Coward | more than 2 years ago | (#37941844)

Screening interview for a Morgan Stanley quant job consisted of being asked (somewhat tricksy) maths questions over the phone by someone from HR who declared at the beginning that she did not know much about maths; wasn't interested in me telling her how I was thinking about the problem and didn't expect me to look up any references.

The Morgan Stanley quant group is missing out on a lot of good mathematicians.

Slashdot flunks English test (0)

Anonymous Coward | more than 2 years ago | (#37941856)

Good Programming Job Candidates Flunk Tough Tests

Is it too much to ask?

Ask ahead (1)

l0ungeb0y (442022) | more than 2 years ago | (#37941860)

I've made it a point to ask ahead to confirm that there will be no "brain teasers" and if there may be, to kindly ask them to rescind the interview so that they may focus on more qualified candidates who share their core values (being a self-congratulating asshole who gets a boner doing brain teasers)

Frankly, the very fact they ask brain teasers tells me a lot more about them than my answer will ever tell them about me. The fact that I put it bluntly, but kindly to opt out in such an event should show my "free-thinking out of the boxness", though lower my score as a team-player (read: leader not follower). But the fact they put such a priority on stupid pissing-contests shows they lack creativity, have no clue how to actually assess someone based on their merits and skill and place little value on individual contributions as much as maintaining their "culture". All in all, they show they don't care as much about the individual's technological aptitude as much as "fitting in" - so if getting lost in a cube farm is your goal, study up on these brain teasers. But, if you're looking to develop hot software, go with a smaller organization where your contribution will be greatly felt and who don't have time to waste playing games with candidates.

Load More Comments
Slashdot Login

Need an Account?

Forgot your password?