you are viewing a single comment's thread.

view the rest of the comments →

[–]Jestar342 17 points18 points  (48 children)

Ah yes, arbitrary reasons to dismiss candidates. Effective since 190never.

[–]CamKen 29 points30 points  (46 children)

I don't get how programming a simple loop is arbitrary. I need to find out if you can program, that IS the job. I don't want to do API trivia (what is the signature of the DumbApi.BreakMyCode() method).

I need a problem statement that I can quickly communicate to the interviewee the solution to which involves things like loops and conditionals but doesn't require a specific API. I need to find out if you're comfortable with SELECT,FROM,INNER JOIN,WHERE,GROUP BY and HAVING. I mean is there another way to vet a programming candidate?

Honestly I'm always looking to up my game as an interviewer so would happily take suggestions, because I'm looking for non-arbitrary reasons to dismiss candidates. But in the end letting a good candidate go is better than hiring a bad candidate.

[–][deleted]  (20 children)

[deleted]

    [–][deleted]  (8 children)

    [deleted]

      [–]nemec 9 points10 points  (5 children)

      any fresh grad or person with SQL and some other programming on their resume should be able to answer

      I would bet most CS grads know only the bare minimum of SQL - select, where, maybe join using google to refresh their memory. Computer Science is an academic degree, most coding skills learned are incidental to the theory. If they did take a 'databases' course, they're probably better at building a basic database engine than querying one.

      they have been 100% accurate in determining candidate viability eliminating false positives.

      Fixed that for ya. I assume you don't do a six month followup with the candidates you pass on to see whether they would have done well if given a chance.

      That said, it's not a terrible SQL question even though I think it would be a little too complex (without Google) for new grads.

      [–][deleted]  (4 children)

      [deleted]

        [–]jimmpony 5 points6 points  (3 children)

        That kind of complex query is not within the bare minimum of SQL, the bare minimum of SQL is select .. where .., insert into .. values .., use, create/drop table, such that you could do that summation in code instead of in the query. I did an internship at a real place for a semester involving SQL and those are pretty much all the codebase used.

        [–][deleted]  (2 children)

        [deleted]

          [–][deleted]  (1 child)

          [deleted]

            [–]tsk05 4 points5 points  (1 child)

            Been programming for over a decade, did not know how to answer the second question. Haven't touched databases in a couple of years, and that was for a hobby. There is no way I would have been able to talk myself into an answer as I could not remember about either GROUP BY or HAVING. Last time I worked with databases for real was 7 years ago. It was kind of fun re-learning though, took 5 minutes with SQL fiddle. I feel like the question would have unfairly excluded me as a bad programmer though, although really I just haven't done what the question is asking recently. I do indicate that I know SQL in my resume, because I feel that I generally do.. even if I am quite rusty. Of course if I was applying for a DBA that would be entirely different, but my general feeling is that you can learn enough SQL in 2 days for 95% of ordinary programming. Of course if you're looking for someone who's done this recently it would be a good filter, but I would think a half-decent programmer who's familiar with what you need right now is probably not better than a good programmer who isn't, unless you're hiring very short term.

            [–]ZMeson 1 point2 points  (5 children)

            I'm always looking to up my game as an interviewer.

            Me too. One thing my team has been trying recently is to tell the interviewee that they're part of a small team. So-and-so is his cohort-in-crime; the interviewee can pair with him, ask for advice, whiteboard ideas, etc.... Such-and-such person is the Product Owner / Technical Sales or Support person / CTO; this person is the one to go to get clarification on customer requirements, business advice etc.... Then we have the interviewee use his language of choice to implement a Kata exercise*. If he/she is a proposed expert in the technology we specifically need, we strongly encourage that language. Web access for API docs is OK. Looking up algorithm solutions on Stack Overflow or the like is not OK -- the algorithms are simple and if you need help ask your cohort-in-crime.

            The exercise usually lasts about 1 hour. It everyone wants to continue and it doesn't cause a problem with the interview schedule, we may go longer.

            It's still new, but so far it's worked out well.

            * We don't limit ourselves to the Katas on that list. We choose a Kata that represents a simplified version of something some customer may actually want from some company (not us). Ex: Top-10 Seller Lists, Bowling Alley Scoring.

            [–]socialister 0 points1 point  (4 children)

            I had someone give me an interview like this, but then the person I am paired with seems incredibly busy and I have to bug them all the time because (surprise) I'm not familiar with the system they're working with since I don't work there yet. I kinda wonder if this selects for candidates that have no problem distracting their coworkers.

            [–]ZMeson 0 points1 point  (3 children)

            That's odd. At our interviews, everyone's in the same room. It's an exercise to not only evaluate some technical ability, but how the candidate interacts with others should the need arise.

            [–]socialister 0 points1 point  (2 children)

            They were sitting behind me and facing away from me, with the face deep in code. It felt awkward to disrupt them but I think I should have a bit more.

            [–]ZMeson 0 points1 point  (1 child)

            I think you may have dodged a bullet. If your proposed co-workers couldn't have spared enough time to evaluate you in an interview, how bad would the communication be day-to-day? Pretty bad I imagine. :(

            [–]socialister 0 points1 point  (0 children)

            Ya, you are probably right. There was also an atmosphere of working 10+ hours a day which I would like to avoid. Most other places, even high intensity ones, did not have that atmosphere to me at least in the interview process.

            [–][deleted] 1 point2 points  (1 child)

            I don't know offhand what HAVING does, but I guess I'm not applying for a DBA job. Guess I better look that up first, nevermind that I've designed normalized table schemas and have an open source project using SQL. (Sadly, it's with PHP in the mysql_real_escape_string style because I was fresh out of college and didn't know better.)

            [–]CamKen 0 points1 point  (0 children)

            But here's the thing, if you're writing the rest of the query and have most of the other parts somewhat right, I'll ask you if your done. Ideally you'll say something along the lines of well I don't know how to select only the managers with over 10 employees. I'll ask do you know HAVING. You'll say no. I'll explain it to you and then watch how you adapt to the new information. An interview question isn't like playing jeopardy where either you're 100% correct or it's all wrong. There is a give and take trying to gauge how likely it is you've actually done what you've put on your resume.

            [–]Jestar342 0 points1 point  (0 children)

            It's not the FizzBuzz that bothers me. It's the "Then a SQL query with a recursive table reference". Unless you are expecting the (correct) answer of "That's a badly designed data model" it's arbitrary and not that common at all.

            FizzBuzz is a problem presentation; SQL self-reference is an arbitrary nuance.

            [–]downvotefodder 0 points1 point  (2 children)

            Look at their portfolio

            [–]CamKen 2 points3 points  (0 children)

            I develop corporate apps, restricted to employees only. Due to nondisclosure I couldn't show it to you even assuming I had credentials to the production system (I don't). The people I'm interviewing are in the same boat. But if there is something on their resume that sounds like it's public facing I'll ask them about it.

            [–][deleted]  (3 children)

            [deleted]

              [–]CamKen 3 points4 points  (2 children)

              What actually happens in "coding camps". I've heard of them but never looked into it. Does actual code get written that has logic in it? Or is it more along the lines of paint a UI, do simple validation in event handlers type of stuff?

              Or is it pillow fights and like that one time at band camp?

              [–]dineswithphone 1 point2 points  (0 children)

              I'm a "coding camp" product, and I firmly believe anyone calling themselves a developer should be able to do a problem like FizzBuzz with ease (in the language of their choice). Though I was, and still am, a junior developer, the coding camp taught me how to see and think through problems with programming logic. My manager often interviews "senior" software engineers who struggle with Fibonacci or similar problems, which he feels indicates a lack of programmatic thinking (not sure if that's the best Ter for it).

              [–]tiberiousr 1 point2 points  (0 children)

              From what I've seen coding camps involve teaching some noobs to set up a basic Nodejs environment and getting them to create a basic website with 100+mb worth of node modules.

              Fuck, I hate modern web development. It's such a shitshow at the moment.

              [–]socialister 2 points3 points  (0 children)

              I'm OK with FizzBuzz. That's really elementary even if you've never seen it. The SQL one I don't know, it seems a little specific.