Stories
Slash Boxes
Comments

SoylentNews is people

posted by on Tuesday March 07 2017, @10:10PM   Printer-friendly
from the prove-Fermat's-last-theorem-using-only-a-protractor-and-straight-edge dept.

Saw this discussion on Reddit, and thought it might be of interest here, too (as such things perennially are):

I've been a successful software engineer for 10 years at various startups and small businesses. I do a lot of contracting on the side too. I've recently had cause to start looking for work again.

What the hell is up with these interview questions? They don't really have much to do with the ins and outs of clean code, architecture or collaboration. I had hoped they'd stop with this bullshit already. There's a lot of companies that promise 'No whiteboard interviews' like Triplebyte, only for that to be a complete and total lie.

They're more like annoying riddles I'd find in an Sierra adventure game or D&D. I'm just not very good at these types of 'riddle questions'. I know they always wind up having to do with binary trees, graph algorithms or something like that, but the dress-up and time constraints are unrealistically stressful.

I honestly wasn't very good at these questions when I'd graduated and I'm still not good at them now. How screwed am I? Are companies willing to hire based on projects and seeing live code?

I'm always careful to speak with my employers and convince them to write a 'portfolio' clause in my contract that allows me to keep code for the purpose of seeking further employment.

I really don't want to spend 3 months of my life learning how to solve riddles just to get another job.

I also suck at these kinds of questions, despite having designed and written a lot of software and systems. What say you, Soylentils, are these kinds of interview questions necessary to find good software engineers?


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 2, Interesting) by SomeRandomGeek on Wednesday March 08 2017, @01:46AM (13 children)

    by SomeRandomGeek (856) on Wednesday March 08 2017, @01:46AM (#476258)

    I've been interviewing software developers for about 15 years now. I think the interviewer's perspective may be valuable.

    • Many more unqualified candidates apply for software jobs than qualified candidates. Perhaps because the qualified candidates eventually get offers, and the unqualified ones keep trying.
    • The cost of hiring an unqualified candidate is much higher than the cost of passing on a qualified one.
    • Unqualified candidates can be confident, personable, experienced, and good story tellers. Similarly, qualified candidates may lack all of these qualities.
    • The trick is to craft interview questions that qualified candidates will pass on a bad day, and unqualified candidates still won't pass on a good day.

    In my opinion, any kind of "chit-chat, establish a rapport, tell me about your experience" technique is too easily gamed. Riddles, and many puzzles, are structured around already knowing the answer or having a flash of inspiration. They give random results.
    My preferred interview question is a problem solving challenge, like "write a program to do X." These questions actually combine many smaller tasks, each of which reveals something about the candidate. Does the candidate stop to ask about requirements, or do they just assume? Do they organize their code, or is it spaghetti? A surprising number of candidates have difficulty writing loops. If the candidate gets stuck, I provide assistance. Eventually, almost all candidates complete the assigned task. That is not the point. Because the question is not really about the candidate producing the "right" answer, but about giving me the opportunity to observe them solving a problem by writing software.

    Starting Score:    1  point
    Moderation   +1  
       Interesting=1, Total=1
    Extra 'Interesting' Modifier   0  

    Total Score:   2  
  • (Score: 3, Interesting) by Thexalon on Wednesday March 08 2017, @02:04AM (2 children)

    by Thexalon (636) Subscriber Badge on Wednesday March 08 2017, @02:04AM (#476265)

    Having been on that side of the table, I've found that the simplest FizzBuzz problem more often than not trips up the truly unqualified candidates. Because, as you point out, they don't understand loops, rarely really grasp if-elseif-else constructs, and in some cases even variables. The difference in a nutshell: A qualified candidate came in, took one look at the problem, said "Really?", typed out a correct answer immediately and handed the laptop back. An unqualified candidate came in, read the problem, and spent 15 minutes wracking his brain, with me giving him a significant hint about 10 minutes in, and he still didn't get it.

    And I completely agree that hiring an unqualified candidate is approximately the most dangerous thing you can do. I've seen the aftermath of hiring the proverbial Paula Bean [thedailywtf.com]: There were moments in the code where you could tell "This coder just began to understand the concept of an array!" and similar moments of epiphany.

    --
    The only thing that stops a bad guy with a compiler is a good guy with a compiler.
    • (Score: 2) by Snotnose on Wednesday March 08 2017, @02:27AM

      by Snotnose (1623) on Wednesday March 08 2017, @02:27AM (#476276)

      Yeah, when I interviewed people I started with easy questions and got progressively harder. Fizzbuzz was usually the 3rd/4th question, about 10 minutes into the interview, and it was the biggest weeder I ever found.

      Of course, that was before google was so popular, now I expect every incompetent idiot to google "interview questions" and learn fizzbuzz.

      --
      Relationship status: Available for curbside pickup.
    • (Score: 3, Insightful) by SomeRandomGeek on Wednesday March 08 2017, @03:33AM

      by SomeRandomGeek (856) on Wednesday March 08 2017, @03:33AM (#476306)

      I've worked with some of the Paula Bean's of the world, and the mind does boggle. But they are not the worst developers to work with. The worst developers can spend an afternoon arguing with your team's otherwise most productive developer, then go back to their desk and inject a defect, to be found later at great expense. By comparison, doing nothing at all hardly seems that bad.

  • (Score: 2) by JoeMerchant on Wednesday March 08 2017, @02:59AM (8 children)

    by JoeMerchant (3937) on Wednesday March 08 2017, @02:59AM (#476288)

    I interviewed "graphics programmers in C language" from 1995 through about 2010, always with the sequence: read resumes, call in promising candidates - do the chit chat, and give them "the test." The job was always some kind of graphic programming, to be executed in C - these skills were always listed on the resumes', 90%+ passed the chit chat test and boldly went on to take "the test." The test was to take an existing C program that draws an empty box around the borders of the screen. Extend that program to draw 10 cycles of a sine wave linearly decaying from 90% to 10% of the height of the box as it goes (hand sketch of decaying sine wave provided.) Working development environment provided, just type your code in the editor, press play to test your code - no time limits.

    ~50% give up quickly and walk away.

    ~40% soldier on bravely for 30 minutes or more, sometimes hours, but never get anything going.

    Over the years, only about 6 candidates ever successfully completed the task. Interestingly, two of those (separated by hundreds of miles and many years) insisted on drawing an exponentially decaying sine wave instead of the specified linear decay. Most who passed (and I'm including the exponential decay wierdos), passed easily - typically completing the task within about 15 minutes. One only passed with an incredibly generous amount of help, hiring him was a mistake. One who openly admitted they could not pass the test (and didn't have the skills on her resume) was hired as a very successful software tester. One insisted she could finish if she could go back to "consult some resources" at school, and, indeed, she did return the next day with the solution, and a low cut blouse - we asked her to retake the test on-site with a small variation - she declined.

    --
    Україна досі не є частиною Росії Слава Україні🌻 https://news.stanford.edu/2023/02/17/will-russia-ukraine-war-end
    • (Score: 3, Interesting) by bzipitidoo on Wednesday March 08 2017, @07:17AM (3 children)

      by bzipitidoo (4388) Subscriber Badge on Wednesday March 08 2017, @07:17AM (#476365) Journal

      Wish I could have had more interviews like yours. What I kept running into were bullcrap interviews where I can't get past the initial screening to get to the tests, if there were any. So many companies are horrible at interviewing people, sometimes intentionally because they have a hidden agenda which may be to hire an H1B, or the boss's nephew who stinks at coding but needs a job. Can even be straight up discrimination. I've noticed some Indians strongly prefer fellow Indians over Americans. Sure, it's illegal, but how do you prove that there's bias?

      The first thing the HR weenie does is invent bullcrap reasons why most of my experience does not actually count. For instance, I taught C/C++ for several years. But all they have to do is apply "those who can't do teach", and cross off 5 years of relevant experience. Oh, and I also get tagged for having lied about my experience since I was supposed to know I shouldn't have counted the teaching job. Then they whittle it down further by tossing some job experience because it was unpaid because the company was going bankrupt. Volunteer work for open source projects? Cross that off, doesn't count if you didn't get paid. Okay, open source for which you did get pay? Cross it off too, it's open source, and open source is not serious software, it's low quality hobbyist garbage, so it doesn't count. I go from over 10 years of relevant experience to under 2 years, and am summarily dismissed for not having enough experience. Not that I want to work for a company that pulls stunts like that anyway.

      That kind of malarkey happens when employers are inundated with candidates and are desperate to winnow the pile of applicants way down. It has little to do with the competence and skills of the applicants, and everything to do with how tight the job market is. Competence and skill is not irrelevant, but it's definitely not the top criterion. When they can't get applicants, then it's the other way around. "We need a Perl programmer" "I know C++ and Java, but never used Perl." "Good enough, you're hired!"

      • (Score: 2) by FatPhil on Wednesday March 08 2017, @11:17AM

        by FatPhil (863) <{pc-soylent} {at} {asdf.fi}> on Wednesday March 08 2017, @11:17AM (#476396) Homepage
        Fuck, I've never worked a day in my life if those are the criteria!

        Personally, I'd value OSS work, in particular hobby work done for no pay, at least as highly as handle-turning just-for-the-pay-cheque work - at least it shows motivation (if indeed it does show motivation).
        --
        Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
      • (Score: 2) by JoeMerchant on Wednesday March 08 2017, @02:05PM

        by JoeMerchant (3937) on Wednesday March 08 2017, @02:05PM (#476432)

        The market seems to be heating up a bit - turning in favor of candidates. Get in while you can, it will swing back the other way soon enough.

        Sadly, some places HR is very distant from the R&D/software departments, so getting past HR is an entirely different game from actually working with the people you'd work with - kind of double jeopardy.

        --
        Україна досі не є частиною Росії Слава Україні🌻 https://news.stanford.edu/2023/02/17/will-russia-ukraine-war-end
      • (Score: 0) by Anonymous Coward on Wednesday March 08 2017, @04:35PM

        by Anonymous Coward on Wednesday March 08 2017, @04:35PM (#476512)

        For what its worth, many many white americans are downright rude and even reject resume because it has an Indian name. I once pointed this out and was told that it is a correct strategy to weed out bad programmers. Similarly in my experience, Indian managers are downright abusive to Indian developers, especially if the Indian manager has managed to get a green-card/citizenship.

    • (Score: 2) by VLM on Wednesday March 08 2017, @02:49PM (3 children)

      by VLM (445) on Wednesday March 08 2017, @02:49PM (#476448)

      Interestingly, two of those (separated by hundreds of miles and many years) insisted on drawing an exponentially decaying sine wave instead of the specified linear decay.

      Let me take a (not so) wild guess, both EE turned programmers. I bet the linear decay guys did something simple like multiply a y-axis gain factor like the reciprocal of the X pixel value whereas the EE guys, having successfully completed DSP class, tried to implement a IIR DSP filter using like 5000 lines of assembly code. If you want to troll them ask them to prove their solution is provably stable or if passband ripple is showing up on the screen. Or if you really want to mess with them, the comments probably indicate if they used a tsyhebyshev, butterworth, or elliptic design and whichever one they used, tell them they chose the wrong one, LOL.

      Its been a long time but IIR filters have an exponential decay curve so asking an EE about sine wave decay is like waving a red cape in front of a bull, they're gonna go all DSP because they suffered thru a semester of designing the math for IIR DSP filters that is, in fact, exponential decay of a sine wave when you remove the signal from the input.

      EE RF is fun but personally I think filter design is about as exciting and fascinating as an accounting audit. Still, it'll pay the bills.

      • (Score: 2) by JoeMerchant on Wednesday March 08 2017, @03:04PM (2 children)

        by JoeMerchant (3937) on Wednesday March 08 2017, @03:04PM (#476458)

        One was an EE, but I believe they both stuck with the exp() library function (after all, it was supposed to be a quick test)... One had a bit of angst about how to make 10% at the end, do you measure amplitude at the extreme right side of the screen, or peak of the last wave? The non-EE was a self-taught OpenGL programmer - young kid, we hired him. Funny thing was, we gave them 30" monitors, and he liked some kind of pink colored chat board or something, when I'd walk up to his desk, his face would be illuminated pink by the screen, then he'd click quickly and the pink light would go away. I don't want to know what he was looking at, but I wish he wouldn't have insulted my intelligence by being so obvious about it.

        --
        Україна досі не є частиною Росії Слава Україні🌻 https://news.stanford.edu/2023/02/17/will-russia-ukraine-war-end
        • (Score: 2) by VLM on Wednesday March 08 2017, @04:47PM (1 child)

          by VLM (445) on Wednesday March 08 2017, @04:47PM (#476522)

          I believe they both stuck with the exp()

          Ugh cheaters should have implemented the whole DSP filter not merely simulated its response. Still you look at trailing edge waveforms long enough, "all sine waves should exponentially decline" its their nature LOL.

          My second guess would have been seismograph interpreters but that's almost like "the engineers of geology" so it all boils down to they were engineers of one sort or another.

          some kind of pink colored chat board

          4chan color? Look on the bright side you can only control how you feel, not how he acts, and at least he's showing respect by giving you 100% of his attention when you walk up. I'll click perfectly legit stuff down when people walk up to me in meat space, just to signal to them that I'm not ignoring them while they talk, if they thought it was important enough to physically walk over, I'll respect their gesture enough to make a gesture of my own of minimizing all my windows. If it wasn't super important they would have email, IM, slack, etc.

          • (Score: 2) by JoeMerchant on Wednesday March 08 2017, @06:22PM

            by JoeMerchant (3937) on Wednesday March 08 2017, @06:22PM (#476605)

            some kind of pink colored chat board

            4chan color?

            Is that what 4 chan looked like in 2007? I've only seen 4 chan screen captures on Reddit...

            Anyway, I never made a thing of it with him - you're right, it's a degree of respect, but I also honestly believe he had no idea just how dramatic the color change on his face was.

            --
            Україна досі не є частиною Росії Слава Україні🌻 https://news.stanford.edu/2023/02/17/will-russia-ukraine-war-end
  • (Score: 0) by Anonymous Coward on Wednesday March 08 2017, @02:02PM

    by Anonymous Coward on Wednesday March 08 2017, @02:02PM (#476431)

    Right, the interviewer's problem is to figure out what is going on inside the person's head.
        Can he communicate and think logically under pressure, does he have a useful base of knowledge to draw from, does he bluff.

    The CTCI stuff can do this for skills for writing programs, but leaves much to be desired in the area of figuring out what the programs should do.
    For that, you need domain questions outside programming.
    This is more interesting because it requires finding an intersection between the applicant's interests and the interviewer's.
    Finding any technical area where the person has experience/knowledge/understanding from a deep dive is usually a good sign, especially if it was as a hobby.