1. 5

    My experience interviewing and giving interviews for industry has led me to be wary of exactly the kind of questions in this article.

    The quicksort question requires the candidate to have familiarity with O/Theta/Omega notation and knowledge of quicksort is off the top of their head. The interviewer could get a better idea of the candidate’s understanding of complexity by presenting the candidate an implementation of quicksort and asking how they would expect it to perform on small, large, and maliciously constructed inputs. This selects for people with fundamental understanding of performance concerns, selects out people who memorized “quicksort is nlogn or n^2 in bad cases” without that understanding, and provides an easy avenue for the candidate to talk about tuning pivot selection based on the expected input domain.

    Of course that requires the interviewer to do their share of preparation work as well.

    Nearly every candidate could reason out the logic basis problem given time and comfort. Comfort isn’t a thing all interviewees have however; many are uncomfortable in general, but this is massively compounded by personal comfort with the interviewer. Stereotype threat means candidates that cannot mask their differences will, on average, be less comfortable. These types of questions produce a department that trends towards looking and acting superficially like the interview team. Moreover, they do so by impacting interviewee performance, and so cannot be compensated for by interviewers “acknowledging and reducing personal biases”

    Since formal notation isn’t something that is likely to be top of mind for many candidates, this could be made more approachable by rephrasing it in concrete examples. e.g. “The undergraduate course CSC202 has a prerequisite of CSC101. Assume the department does not allow testing out of prerequisites, so that taking CSC202 implies a student must have taken CSC101. What can you say for sure if a student hasn’t taken CSC202? If they haven’t taken CSC101? If they haven’t taken either?”.
    It’s clear after rephrasing that this question is barely a test of reasoning skills. That’s because it never was, and should probably be either expanded upon or dropped from the interview for time in favor of a more interesting prompt.

    1. 6

      Do note however, that he is referring to interviews of CS graduates. That’s a different candidate pool than we typically see when interviewing for industry. I interview (and hire) many people who do not come from a formal CS education.

      But when hiring specifically from a CS program, it’s not unreasonable to ask questions about basics that would indicate they at least attended their freshman year classes.

    1. 3

      it looks like there’s a bug on your server where draft posts are visible to public visitors. under the Culture tab i saw “[Draft] Lian-Xiang, a Monster Girl Love Triangle from 1740s China”.

      1. 2

        Most of my team (MS Outlook in Redmond) is working from home at the moment.

        We’ve been joking that COVID-19 will be the most traffic that the vs online team has had in a long time, since everyone in the puget sound offices is going to be using it.

        Jokes aside, it’s a lot more seamless than what we were doing before, which was RDPing into our work machines.

        1. 2

          I’ve been working on a tool to design my next tattoo. It’s been around a year since the first one, and I’ve been using it as an opportunity to explore rust web frameworks.

          I picked yew arbitrarily after hacking at virtual_dom_rs with minimal success. It’s been nice to work with but I definitely feel like I’m doing way more data copying that I ought to be. The yew examples suggest all state is owned by components, but that means I end up duplicating a lot of my state between components that feel like they out to be reading from some central store a.la. reflux/redux/satchel.

          Does anyone have suggestions for other libraries worth looking at for rust on the web? The ecosystem feels fresh, and I’d rather avoid spinning my own libraries from scratch while still learning the language.

          1. 2
            1. I’ve been working on trying to familiarize myself with the nix/nixos environment by way of packaging a blog site for deployment with nix.
            2. I just got my first pull request upstreamed to NixOS/nixpkgs, so that’s exciting.
            3. I finally gave hakyll a try for static site generation (it’s so good).

            Next up is trying to set up a hydra build server on a raspberry pi, but it’s midterms season so that will have to wait.