Published earlier this year, but still relevant.

  • skisnow@lemmy.ca
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 days ago

    Same here. It’s popular to rag on leetcode-style technical interviews, and yet it’s astonishing how many CS grads with 3 years experience we get in who can’t seem to get through even the most basic “reverse this array”, “find the longest substring” type questions in the language they claim to be strongest in.

    People sign up for CS degrees because they see high salaries, but don’t realize those salaries are for the high achievers who have been coding since the age of 10 and are writing code for fun in the evenings as well. Then they flood the market, only to discover that no companies have need of someone who cheesed their way through college, have never written more than a few hundred lines of code their whole life, and have no useful skills to offer.

    • sugar_in_your_tea@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      1
      ·
      8 hours ago

      I rag on those too.

      Our “coding challenges” aren’t all that hard, they’re similar to what you’d do on the job.

      For example, we use React on the FE and Python on the BE, and here’s what we do in the first round:

      • FE - basic React state use - store input from an input tag, and render in a label
      • BE - write a SQL statement to join two simple tables to query something; just a SQL playground, no Python needed

      And here’s what the more in depth second round looks like:

      • FE junior - array functions (lots of examples with tests) or moving data between multiple components
      • BE junior - simple web server (or fake one, just need a function that takes opaque data) with somewhat complex logic; we’re looking for code style (do they separate controller logic from service layer logic?)
      • FE/BE senior - structure an app from scratch given very limited requirements; the point is to see what questions they ask to clarify requirements

      For BE, we let them use whatever language they want, because Python is simple enough that they can learn on the job. That’s actually why we picked it, our BE requirements are simple enough that the language doesn’t matter, so we went with something familiar to ease hiring (performance-sensitive code is written natively and wrapped).

      The first round is designed to take 5 min and we allot 20 min, the second round is designed to take 20 min and we allot an hour. They are asked follow up questions about changes they would’ve made if they had more time, and getting the right answer is secondary to any explanations they make. We’ve hired people who failed the challenge, provided the code was clean and the expansion was reasonable.

      We’re not looking for rockstars who nail some complex challenge, we’re looking for competent professionals who can write decent code under pressure, because we will have sev 1 prod bugs and we want people who can diagnose and fix them while feeling confident enough in their fixes to make the call on whether it can go to prod that day. The challenges merely confirm what they’ve given as answers to the questions (most of which are way more complex than needed, we just want to gauge breadth of knowledge).

      Yet we keep getting applicants who are surprised that we ask them to do basic coding in a technical interview. Some can’t even write syntactically correct code in a language they picked…