Live data from Hacker News

Programmers are confessing their sins to protest a broken job interview process

theoutline.com

81–90 of 238 posts

Re: Programmers are confessing their sins to protest a broken job interview process

#81

> The process “freezes out many of the people who are underrepresented in the software development field,” Larson wrote. “If you’re busy working and raising kids, you want to spend as much of your scarce time as possible learning to code — not performing rote memorization that won’t matter once you start your job.” I'm not sure I buy this argument. If you have one candidate who has seen all of this stuff before and c…

> who do you want to hire, all else being equal? That's the point. It's freezing out people who are equally competent, but can't perform as well at this arbitrary step.

They're equally competent except that they can't design an algorithm on demand based on remembered strategies for solving problems, or talk intelligently about the trivia of the field that can come up in a technical interview, or tell you the asymptotic running time of a given algorithm, or comfortably rattle off a bunch of code from experience without needing to look things up online, etc.

That's not the same as being equally competent.

Re: Programmers are confessing their sins to protest a broken job interview process

#82
post #5

Asking developers to program in front of strangers is primarily testing for ability to perform in front of strangers and developer skills secondarily (if at all.) I never ask people to code in front of me. I ask them questions to get a feel for where their areas of expertise are, and to get to know them. I wrote a post about my feelings on it last year: https://medium.com/@ebbv/my-case-against-coding-tests-6b15c1...

there is experimental evidence suggests that the ad hoc approach is the worst approach. why not have them write code, not in front of people. give them a laptop and some time alone?

My approach is not ad hoc. I have refined my questions and technique over a decade of conducting interviews and much more being on the other end of them.

Let me be clear; it's what works best for me. It may not work best for everyone. But I feel our industry doesn't even really put much thought into interviews right now. They just find some coding puzzles online and say "Here do these." That sucks. There's always something better you could be doing IMHO.

Re: Programmers are confessing their sins to protest a broken job interview process

#83
Whiteboards are useful for conversations about software architecture, but that seems to be the less common application in interviews.

Writing pseudocode you've memorized from a book is fundamentally meaningless. You have to realize it isn't really a programming test: it's a filter for whether you're willing to do what's required to fit in.

The principle is the same as in classic British private schools where boys were required to memorize long passages of ancient Greek and Latin texts. In fact, tech companies would probably get the same hiring results by replacing Cracking the Code Interview with Ovid's Metamorphoses, and asking about Phaethon's fall instead of binary trees -- the substance doesn't really matter. (The non-whiteboard parts of the process would do the same job as they currently do of ensuring some degree of practical software competence.)

Re: Programmers are confessing their sins to protest a broken job interview process

#84
I am a real Software Engineer. I don't remember all the details that are seconds away via Google or other reference documentation. I focus my brain power on thinking about the problem, trying to see it in the wider context, and understanding the needs of the users in my problem domain. I weigh the different solutions, choose a reasonable one, and implement a prototype that I can refactor into shape, step by step. And I have been doing this since 1981, before people talked about Agile, Patterns, and so on.

Best practices are best for a reason, and the reason is not the language around describing the practice, not the experts who wrote books and give seminars about the practice and not because of some Computer Science professors choice of course material.

What is wrong with thinking about problems before rushing into a solution? Since when does a certified computer science solution solve real world problems for real users? (answer: occasionally). The world of software development is driven as much by mindless fads as fashion, entertainment and politics.

But it should be more about hard nosed engineering, up against the wall face to face with harsh realities.

Re: Programmers are confessing their sins to protest a broken job interview process

#85
I don't think the technical test is a problem per se, it's the way we implement it in our field.

I think it's perfectly reasonable that actuaries take an exam that shows knowledge of vector calculus. I don't think it would be reasonable to ask a senior actuary to do vector decomposition in an interview, because he or she has already demonstrated this ability on a proper and widely vetted exam.

Similar things go for medicine. Totally ok to have boards and exit exams, crazy to be asking these questions of a radiologist with 20 years experience during an interview. Same for lawyers. They must take the bar, but the don't have to retake the bar every time they change jobs.

In programming, we have no widely recognized, properly vetted, industry credential. So we leave it to private companies, who subject applicants to some variant of an industry exit exam over, and over, and over. And what's worse, they do it in secrecy with minimal feedback to avoid lawsuits.

It's horrible, and if the industry is experiencing a "shortage" of candidates, that's a good thing. It's a sign that things need to change. The government should not rescue this industry from the consequences of their actions by creating special programs that allow corporations to force would-be immigrants to subject themselves to these interviews and work in this field as a condition of living and working in the US.

Let people be free, and they'll make their choices. If tech is too abusive, then they'll either have to go without workers, or change. But seriously, take away this crutch of employer controlled visas. I'm not saying don't let talented people into the US, I'm saying let talented people decide how and where they'll work, don't let corporations control that and dictate their choices.

Re: Programmers are confessing their sins to protest a broken job interview process

#87
post #71

Earlier quoted context omitted.

> a 1-2h pre-interview practical coding assignment then you'll only select for people who have nothing better to do with their time than to donate it to your fun programming escapade. Experienced devs will say it's not worth their time and wont apply.

No, it's just moving those 1-2 hours to home instead of at the interview. If you can take time off for an hours-long interview, you have the time to complete that kind of task.

[deleted]

Re: Programmers are confessing their sins to protest a broken job interview process

#88
post #71

Earlier quoted context omitted.

> a 1-2h pre-interview practical coding assignment then you'll only select for people who have nothing better to do with their time than to donate it to your fun programming escapade. Experienced devs will say it's not worth their time and wont apply.

No, it's just moving those 1-2 hours to home instead of at the interview. If you can take time off for an hours-long interview, you have the time to complete that kind of task.

It's asymmetrical though. A reviewer can yea-or-nay my 1-hour assignment in a minute or two. If I'm desperate for work, sure I'll do it. But my position is in high enough demand that I can choose another position that doesn't require me to do homework. If they made some attempt to get to know me, talk to me, and then give me homework, I might bite. But I'm not going to do hours worth of work just for the chance to get a job.

Re: Programmers are confessing their sins to protest a broken job interview process

#89
I'm conflicted about this. On one hand I agree with the idea that the best way to test whether someone can do something is to look at evidence that that can do that actual thing (i.e. write real code using best of breed tooling).

On the other, a whiteboard provides a very real constraint and tests something a little less tangible than can someone copy/paste. A whiteboard test is not just a test of 'can you solve this riddle', but more about how you think and communicate your thoughts about software development. It's this point I'll defend below.

The example DHH gives seems like one I'd like to specifically call out. If you can't write a bubble sort there's some real problems. You're unable to take a few hints about an implementation that are obvious from the name. It's a sorting algorithm, and it the way it works looks like something to do a bubble otherwise why would it be named that way. Now I can't exactly recall the algorithm, but that's enough to make some guesses about how it works. Start at the first element of the list and bubble up the highest number we see until we get to the last position. Do it again for the second to last position, etc. Which leads to the following:

    for (int i = 1; i  list[j+1])
          list.swap(j, j+1)
A good interviewer would understand a situation where a candidate was unfamiliar with the problem stated and be able to provide hints that would get them to this algorithm. A good candidate would not let the lack of knowledge of the algorithm deter them from attempting an answer by asking clarifying questions, and talking over how they think something might work. Software development is just as much about communication as it is programming.

Re: Programmers are confessing their sins to protest a broken job interview process

#90

Earlier quoted context omitted.

> who do you want to hire, all else being equal? That's the point. It's freezing out people who are equally competent, but can't perform as well at this arbitrary step.

They're equally competent except that they can't design an algorithm on demand based on remembered strategies for solving problems, or talk intelligently about the trivia of the field that can come up in a technical interview, or tell you the asymptotic running time of a given algorithm, or comfortably rattle off a bunch of code from experience without needing to look things up online, etc. That's not the same as bei…

Rushing into coding something using abstract mathematical computer science techniques is a poor way to solve real world business problems. The person who has spent time in the real world raising kids realizes that you do not build business value by being a smartass know-it-all and that when time and money are of the essence, something quick and dirty, maybe even brute force, will save the business, please the customer, and provide you the money to fight another day.

Do not hire the smart ass. Take the person who lives in the real world.

Post reply on HN