Live data from Hacker News

Ask YC: Does interviewing developers leave you depressed?

news.ycombinator.com

101–110 of 127 posts

Re: Ask YC: Does interviewing developers leave you depressed?

#101
The only ones that somewhat depress me is a particular class of bad developer: Fresh out of college, these people have their curriculum nailed... and know absolutely nothing else.

One example that really struck me was an interviewee that I asked to write a simple pre-order traversal on a seven-node tree that we print out for our interviews. Instead I got a moderately lengthy and correct description of how to search for a value in a sorted binary tree. Correct, except for A: it wasn't the question I asked and B: immediate visual examination of the tree we were looking would reveal it was clearly not sorted. Other things in this interview led me to the conclusion that I got that answer because this person had studied that topic, but almost couldn't even hear, couldn't perceive a question that wasn't essentially right off an exam.

These are the ones who depress me a little, because they have clearly done everything everyone told them to do (study hard, do well on tests, etc) and must have some significant raw intelligence to be able to do this well on a challenging curriculum... yet, for all that, they have walked away with so very little useful knowledge or skills. I also feel some anger at the system that they have learned too well to navigate... but by the time they get to me, it's too late to change anything.

I comfort myself in the near-sure knowledge they will find a job somewhere. Some percentage of them will even adapt to the real world and perhaps they will become great programmers. I don't know. I can't know. That's life.

But I can't in good conscience give a thumbs up for them. We are willing to train solid developers and we have a track record of hiring people that don't even know the language they will be working in (since they have demonstrated the ability to learn languages in the past), but you can only take that so far.

On the other hand, those who sat in college for four+ years and know neither the curriculum, nor any other skills, just barely squeaking by with the necessary grades and forgetting everything as soon as the class is over, well, they had every chance to realize they were in trouble and didn't take it. I don't feel depressed about them at all. That such people exist is just a fact of life.

Re: Ask YC: Does interviewing developers leave you depressed?

#102
post #95

Earlier quoted context omitted.

"I used MySQL for years, long ago, and never wrote a join." Wow. Note to self: start asking candidates to write SQL in interviews. It had just never occurred to me that people who spend their entire lives talking to databases wouldn't know how to talk to them directly. And really, you can get pretty much any piece of information out of a database using just four keywords . It's the least memorization of any language…

> It had just never occurred to me that people who spend their entire lives talking to databases wouldn't know how to talk to them directly. You're begging the question. Most people who use databases don't "spend their entire lives" talking to them. Of course I've talked to databases "directly", tuned them, "alter"ed them, indexed them, replicated them, and so forth, but just happened to use logic at the application…

Ok so hopefully the places where you used to work hired someone that wouldn't write horribly inefficient client-side code to join two tables together when its a SQL RDBMS, and sped up those applications|sites considerably.

Re: Ask YC: Does interviewing developers leave you depressed?

#103
post #90

Earlier quoted context omitted.

> if you used an RDBMS in a non trivial app Depends on what you mean by "trivial". You can use a database for most of the things most websites use them for without ever using a JOIN. It just takes application logic instead of SQL. Sites like this aren't exactly heavy on the SQL. This site doesn't even use SQL. Something like Reddit or Slashdot would, but still wouldn't need JOINs. > I've never yet seen a non trivial…

"Depends on what you mean by "trivial". " Anything that has more than say, 2 tables, is what I meant by "non trivial" ;-) "Sites like this aren't exactly heavy on the SQL." Invalid refutation, I said "if you used an RDBMS and ". That "and" was a boolean and. I never said you had to use an RDBMS to make a useful website. But if I was hiring for an RDBMS backed website , and you claimed to have used an RDBMS "for years…

> Invalid refutation, I said "if you used an RDBMS and ". That "and" was a boolean and.

Valid refutation. You can use an RDBMS without making use of most of its facilities, and indeed, that is the typical usage case.

You can easily have a non-trivial app which makes what you'd probably consider trivial usage of a database.

> someone claiming knowledge of an RDBMS and not knowing how to do a simple join across two tables is like someone claiming to be an expert in c and not knowing how to write a for loop (let alone use pointers)..

You're mixing up "working knowledge of SQL" with "expert knowledge of RDBMSes". I agree I am nowhere close to an RDBMS expert. However, I can use SQL, which was the point of the original post.

> after claiming to have worked with RDBMS for ages

Something is wrong in your mental model of my description. I used MySQL for years, starting many years ago. I did not say I was an expert in RDBMSes, or used advanced functionality in any sense, and I said the join functionality was done at the application level. My usage of SQL was basic, but I have a working knowledge of it. If there's something I need but don't know, I can read the docs and do it.

> it would take what, one day of reading a basic book on SQL to understand what a join is and formulate a query?

Reading an SQL book doesn't mean you're going to recall the syntax, until you have written queries a number of times by hand. I agree it is not complicated. I do not agree that asking someone to write a JOIN tells you anything about WHY they can't do it.

> The danger of NOT using a quick and easy litmus test is that all kinds of idiots get through to your personal interview stage

You'd probably filter out Pete Norvig, and Linus, and who knows how many other expert programmers, if you asked them to write an SQL join off the top of their head.

Re: Ask YC: Does interviewing developers leave you depressed?

#104
post #73

Earlier quoted context omitted.

> then I don't think that you actually have a working knowledge of SQL in any sense. Of course I have working knowledge of SQL, that's how I used MySQL back when we had to write things by hand. I just don't have a working knowledge of JOINs. I could look up the syntax if I needed to use it. [Looks it up] Looks easy enough. There are numerous SQL commands most users of SQL would probably need to look up. Arbitrarily d…

It had JOINs but a lousy, lousy optimizer, also sub-SELECTs were (are?) a problem. I can't say that having a sort-of knowledge of some (very little)of MySQL is equivalent to having a working knowledge of SQL. Most commands that SQL users would probably need to look up would be the DDL commands, not simple (yes, it really is simple) stuff like LEFT OUTER and INNER JOINs. Also while saying MySQL didn't have SPs is an (…

I have enough SQL knowledge to replicate most websites I see. I am also familiar with it enough to look up things I don't know and use them. If that's not "working knowledge", you're using some different definition.

You can have working knowledge of e.g. calculus but need to look things up because you haven't memorized everything yet, and can learn some new method quickly. Someone without working knowledge would simply be lost, no matter what cheat sheets you put in front of them.

Re: Ask YC: Does interviewing developers leave you depressed?

#105
post #21

Earlier quoted context omitted.

I agree. The questions the OP asked are all very easy. It'd be easy to describe a function to find the longest common subsequence of a set of strings as well. The reason such a question is asked is because it isn't something that we do everyday and how we solve problems that we don't immediately know how to solve is what sets good programmers apart from bad programmers. I find anyone who immediately blames the enviro…

If you ask me, having someone say a function over the phone just sounds stupid. If you're going to have them say it, why not have them SING it instead? Would be more entertaining, and since the way they're doing it doesn't matter, what the hell? I don't say SQL queries out loud, and trying to do so would probably screw me up; I don't know about you, but I don't sit down to write stuff and get it perfect every time. I…

I totally agree, but I also think that introverted programmers work better in the situation you describe, whereas extroverts feel better about talking-out solutions, even over the phone. Don't get me wrong, I'm not calling you an introvert, but I, as an introvert, have experienced this.

Don't forget, our society rewards extroverts, is built for extroverts, and this is one way the ruling extroverts can weed out introverts.

Re: Ask YC: Does interviewing developers leave you depressed?

#106
post #103

Earlier quoted context omitted.

"Depends on what you mean by "trivial". " Anything that has more than say, 2 tables, is what I meant by "non trivial" ;-) "Sites like this aren't exactly heavy on the SQL." Invalid refutation, I said "if you used an RDBMS and ". That "and" was a boolean and. I never said you had to use an RDBMS to make a useful website. But if I was hiring for an RDBMS backed website , and you claimed to have used an RDBMS "for years…

> Invalid refutation, I said "if you used an RDBMS and ". That "and" was a boolean and. Valid refutation. You can use an RDBMS without making use of most of its facilities, and indeed, that is the typical usage case. You can easily have a non-trivial app which makes what you'd probably consider trivial usage of a database . > someone claiming knowledge of an RDBMS and not knowing how to do a simple join across two ta…

"You're mixing up "working knowledge of SQL" with "expert knowledge of RDBMSes. I agree I am nowhere close to an RDBMS expert. However, I can use SQL, which was the point of the original post."

Hmm you seem to be laboring under a concept that to know how to join two tables you need to be an RDBMS "expert" and "working knowledge" is not sufficient.

On the contrary, if you can't join two tables with SQL, you don't have any "working knowledge of SQL". Neither can you "use SQL" worth a damn. Every answer you make exposes the hollowness of your supposed "working knowledge"!

"However, I can use SQL"

Sure, as long as you query single tables (and do joins "at the application level") ;-)

Re: Ask YC: Does interviewing developers leave you depressed?

#107
post #37
post #31

Part of it may be your questions, and part may be HOW you're asking (e.g. over the phone, or putting someone on the spot). 2) Not a lot of people write SQL by hand anymore. I used MySQL for years, long ago, and never wrote a join. Then ORMs came along and handle joins automatically, so I've still never written one. So not being able to do it without looking it up doesn't really tell you anything. I've written far, fa…

Sorry, we decided to go with another applicant. We'll keep your resume on file.

As noted, there are numerous expert programmers who couldn't do an SQL join in a live interview.

Besides PG, RTM, and TLB, most or all of the Linux kernel programmers, including Linus; Pete Norvig; embedded systems programmers; and on and on.

You could find a lot of people who can handle the SQL you need while screening out brilliant people who are FAR more capable, but just happen not to know item X.

Re: Ask YC: Does interviewing developers leave you depressed?

#108
post #103

Earlier quoted context omitted.

> Invalid refutation, I said "if you used an RDBMS and ". That "and" was a boolean and. Valid refutation. You can use an RDBMS without making use of most of its facilities, and indeed, that is the typical usage case. You can easily have a non-trivial app which makes what you'd probably consider trivial usage of a database . > someone claiming knowledge of an RDBMS and not knowing how to do a simple join across two ta…

"You're mixing up "working knowledge of SQL" with "expert knowledge of RDBMSes. I agree I am nowhere close to an RDBMS expert. However, I can use SQL, which was the point of the original post." Hmm you seem to be laboring under a concept that to know how to join two tables you need to be an RDBMS "expert" and "working knowledge" is not sufficient. On the contrary, if you can't join two tables with SQL, you don't have…

> Hmm you seem to be laboring under a concept that to know how to join two tables you need to be an RDBMS "expert"

You're misreading. You kept bringing up the point of "expert" knowledge (e.g. in C and for-loops), or knowledge of RDBMSes, and saying you couldn't know X without also knowing Y.

As the question was about SQL, NOT RDBMSes or "expert"-level knowledge of SQL or RDBMSes, I pointed that out.

> On the contrary, if you can't join two tables with SQL, you don't have any "working knowledge of SQL".

Depends on what "can't" you're talking about. I can look it up and then do it. A lot of people don't remember the syntax. Obviously anyone with working knowledge CAN do a join; the question was whether they could tell you how to do it off the top of their head.

Even things you've used a lot, if you haven't used them recently, you'd likely slip up in an interview.

> Every answer you make exposes the hollowness of your supposed "working knowledge"!

Not really. I can make things work (hence "working knowledge") and look up what I don't know and use it right away.

I've been using in-memory databases and of course the equivalent of a JOIN is a basic function but it's not an SQL JOIN.

Re: Ask YC: Does interviewing developers leave you depressed?

#109

Flemlord, a lot of responses seem based on hypotheses about what a good answer would have been. Could you follow up and give examples of what you'd have considered correct? My hobby-programming experience suggests... simple - int add(int a, int b){int result; result = a + b; return result} recursive - um, I like fibonacci sequences: void fib(int term){if term = 1 return 0; if term = 2 return 1, else return fib(term -…

Your fibonacci algorithm is crap. You're tree-recursively calculating the exact same values over and over and over and over again. Just try running it sometime on a large n if you want to test your computer's ability to stall and ramp up the cooling fans. "do you make racing games?" That's a question to ask first, not second. Maybe he's making a "Pimp My Ride" style game where the actual driving part is less importan…

Agreed, but this is the very question I'm getting at - does Flemlord want to know the quality of algorithms someone naturally comes up with, or is this just to screen out the total BS artists?

Hence my mention above of how it feels like a trick question. I really don't know whether the interviewer wants the autistic-but-informative answer or the quick of-course-I-know answer. Trying to guess what sort of answer you are seeking induces mild panic in me: I don't know you, but if your response in an interview was 'what a crap algorithm' I'd be thinking 'this guy is a bit Machiavellian...'.

I mean, I can think of a much faster way (than this) to get a given term in the fibonacci series using a loop, but this one recurses, which was what was requested - I had to quickly choose a problem domain in which to demonstrate it. Towers of Hanoi would have been more impressive, but I don't know if I could just rattle that off correctly, verbally. See what I mean?

Post reply on HN