Hacker News new | past | comments | ask | show | jobs | submit login

As a hiring manager, I personally don't use HackerRank (or anything similar), but I'm thinking about it. My issue is that many of the people who I come across (most of whom claim to have backgrounds in CS) don't have even basic coding skills. For example, "write a function to reverse a string in a language of your choice" baffles them or takes 20 minutes to write, even though it was meant to be a quick warm-up question. If I know someone is strong coming in (for example, someone I trust recommended them), I will tailor the questions more to them, but otherwise, giving some basic coding problems weeds out a lot of people and saves everyone some time.

Even a short phone screen where I just ask someone to code a simple question takes 20-30 minutes of my time (plus however much time I need to get back in the zone), so HackerRank is appealing if only to weed out the very worst candidates. I'm not familiar with HackerRank specifically, but I imagine you have some choice as to how to set it up. If I could set it up to give candidates plenty of time and ask relatively straightforward questions to weed out people who don't have the basics down, it would be a huge time saver for me.

> Even a short phone screen where I just ask someone to code a simple question takes 20-30 minutes of my time (plus however much time I need to get back in the zone), so HackerRank is appealing if only to weed out the very worst candidates.

But you took 20-30 Minutes of their time too, the only difference is that you get a compensation at the end of theses 20-30 min, they don't. If someone told me, "OK , i m gonna waste 3 hours of your time in exchange of a mere promise of a job", i will simply decline the job.I work 9hr/day , I have better things to do with my free time...

> But you took 20-30 Minutes of their time too

Yeah, with often very high ratios (I've seen above 100:1 in positions where I had information more than once recently) applicants for open positions, hiring simply isn't going to work if it requires symmetric time investment from hiring managers and applicants.

I'm assuming that you don't expect companies to hire everyone who applies and therefore some candidates are going to have time wasted. What do you think is a fair amount of time to expect someone to give for an initial screening?

My longest and latest job interview lasted 3 hours but we talked about the goals and the visions of the company (that part doesn't bother me), the technical part (code with a pen + questions) lasted about 15 mins. But to set a threshold, generally i ask if the test requires more than 1 hour, if yes, I decline politely.

Coding questions are not language independent though. You might as well ask to write a monad transformer in a language of their choice.

Of course the question is biased against certain programming languages. For example, in python:

  def reverse_str(x):
      return x[::-1]
works. If you remember this notation, then you'll have this problem done in 30 seconds or less. But even if you don't remember this notation, I expect a candidate to figure out some way to reverse a string within 5 minutes in some language. I can think of engineering roles that rarely work with strings, but in the roles I hire for, we use them a lot and so I want to know that you have the basics down. If you know that:

  * strings are simply arrays of chars
  * how to access an item in an array
  * how to write a for loop
Then you have the tools you need to solve this problem. Are there any common languages where this is a particularly difficult problem (I'm genuinely curious, not trying to be obnoxious... if so, then I might consider changing the question for the future)?

I am with you. Although most modern languages would offer shortcuts to reverse a string but the spirit of this question is to see if a candidate has the mental agility to come up with a solution purely from ones knowledge to use a programming language and common sense.

One should be able to devise a solution to a simple problem like this without any CS course at all.

> strings are simply arrays of chars

or code units/code points/grapheme clusters/emojis. Thanks to hard work of many developers string handling becomes easier over time, but I don't think it's trivial if you don't exactly specify what you mean by "string" and "character".

I can't speak for chadash, but I'm pretty sure most folks who know to ask questions like this are probably going to pass the interview. They'll ask the right questions, and the problem will be simplified to a form that is solvable in a few minutes. So I don't think this is any major hurdle.

I think you and I are arguing semantics then. The very question "what do you mean by a string?" already indicates that you might be familiar with some of the differences between unicode and ascii, for example. In that case, I'll clarify what I mean depending on the language the candidate is most comfortable with. For example, if they plan to use C++, I might clarify that they can assume that the string is an array of chars containing letters a-z. I really just intend it as a filtering question, but someone can definitely get bonus points if they ask intelligent questions to clarify the problem.

You can't give those answers on computer aided code testing sites. That's why those tests needs to be long, verbose and boring so the questions will be obvious.

The human touch.

How often does one have to reverse a string? What is the purpose of such a dumb test? How often have you had to do such a thing in the real world (outside of tests such as interview questions?)

I suppose you could make the argument we do have to reverse arrays, but strings? Give me a break, only idiot programmers spend their time practicing for useless programming interview questions.

Does one really need to practice to reverse a string? Do we now live in an age where a programmer cannot reverse a string purely from basic knowledge about programming and common-sense?

Reversing a string takes 2 minutes or less even if all you know is how to work with strings and how to write a for-loop.

I'm not sure if you have ever been involved in the hiring process from the first stage of screening resumes, but my experience has been that when you post a developer job, many people will apply with very weak coding skills and those people need to be weeded out. Some of them have strong-looking resumes, but I often come across people who stretch the truth on their resumes. So when I do a phone screen, I start out with a basic question that surprisingly weeds out a lot of people. I let candidates code in a language of their choice after hearing the question.

Is reversing a string something I do in the real world? Very very rarely if ever. But it's not meant to be a question that simulates a real world coding problem. The point is that it's a very simple problem that anyone proficient in almost any coding language should be able to do. And I don't know anyone I've worked with who wouldn't be able to do this in 5 minutes or less, with or without practice.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact