Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Programming IT

FizzBuzz 2.0: Pragmatic Programming Questions For Software Engineers (triplebyte.com) 226

A former YC partner co-founded a recruiting company for technical hiring, and one of its software engineers is long-time Slashdot reader compumike. He now writes: Like the decade-old Fizz Buzz Test, there are some questions that are trivial for anyone who can build software at a professional level, but are likely to stump anyone who can't hack it. I analyzed the data from over 100,000 programmers to reveal how five multiple-choice questions easily separate the real software engineers from the rest.
The questions (and the data about correct answers) come from Triplebyte's own coder-recruiting quiz, and "98% of successful engineers answer at least 4 of 5 correctly," explains Mike's article. ("Successful" engineers are defined as those who went on to receive an inbound message from a company matching their preferences through Triplebyte's platform.) "I'm confident that if you're an engineering manager running an interview, you wouldn't give an offer to someone who performed below that line."

Question 1: What kind of SQL statement retrieves data from a table?
  • LOOKUP
  • READ
  • FETCH
  • SELECT

This discussion has been archived. No new comments can be posted.

FizzBuzz 2.0: Pragmatic Programming Questions For Software Engineers

Comments Filter:
  • Then the correct answers for their tests can be found online so the average codemonkey can learn them by heart to land a job.

    • by gweihir ( 88907 )

      Unless they are completely stupid, these are not the actual questions, but some old, obsolete version.

      • I honestly didn't assume the samples given to be the "real" test they use. If it is, well, they're even more useless than I anticipated.

        • Re:Give it a month (Score:4, Interesting)

          by gweihir ( 88907 ) on Sunday February 23, 2020 @12:06PM (#59756816)

          There actually is a different explanation: I shudder to think that the "bad" candidates are not even able to look this up online. With the level of incompetence many display (https://blog.codinghorror.com/the-nonprogramming-programmer/), this may be a real possibility...

          • It's funny when you comment on nerd incompetence then go and wrap your URL in parenthesis, rendering the link dead.
      • Re:Give it a month (Score:4, Informative)

        by NateFromMich ( 6359610 ) on Sunday February 23, 2020 @12:08PM (#59756822)

        Unless they are completely stupid, these are not the actual questions, but some old, obsolete version.

        If you actually start the test, the first question is one of those listed.
        Also I stopped right there when it asked for my email address, because apparently it starts some sort of profile for you and they use your results for headhunting.
        Which is fine, if that's what you're after.

        • by dvice ( 6309704 )

          After the first easy question they ask your email, later they ask your phone number, experience in years, full name etc. The actual test is also something like 35 questions (there seems to be several different) and most of the questions are related to calling a javascript function within javascript function within javascript function. Or asking some specific questions e.g. about what specific Javascript tools do. After the questions you still need to fill more information about yourself and even then you c

          • So this is a java test, not a programmer test.

            So noted.

            • Re: Give it a month (Score:3, Informative)

              by spcebar ( 2786203 )
              ...Java!=JavaScript
            • No, it isn't. At all.

              I took the test, with an anonymous email address, just for giggles.

              They use various languages in their test questions, including at least one in python and one that appears to be similar to Pascal.

              The upshot is: in most cases the language used is such that it might as well be pseudo-code. It's fairly readable if you have experience.

              It's not bad, overall.
        • by PPH ( 736903 )

          when it asked for my email address

          On the other hand, this would be a great opportunity to see if that headhunting firm has coders capable of identifying illegal e-mail addresses.

        • After the online test, they have you do an onsite technical test, of frontend, backend, and devops skills (if you don't fit into one of those categories, they don't have anything for you).

          After you pass the onsite technical test, it's really convenient, you can quickly get interviews with up to 20 companies, and on the phone screen for those companies, they don't test your technical skills, they tell you about the company and try to convince you to join.

          So overall I would recommend.
          • What do you mean by "onsite" technical test?

            I'm not going to go there just to take their test. Which is what "onsite" generally means.
            • I'm not going to go there just to take their test

              OK. Is there anything else that you won't be doing that you'd like to tell me about?

              • Are we speaking the same language?

                Onsite means you physically go to their office to take the test.

                Is that what you meant? If not, please explain.
                • Onsite means you physically go to their office to take the test. Is that what you meant?

                  Yes, that is right. They also do it via webcam. But I don't care if you do it or not.

    • by nagora ( 177841 )

      Then the correct answers for their tests can be found online so the average codemonkey can learn them by heart to land a job.

      The same people that will fail these questions won't think of doing that either. Believe me, I've interviewed them.

      • Who goes to a job interview for a programmer without knowing anything about programming? There's a reason I don't try to get an interview for a nuclear engineer...

        • Who goes to a job interview for a programmer without knowing anything about programming?

          Most of the people who apply for programming jobs are completely incompetent.

          They got a certificate from a boot camp and they think that qualifies them for a $150k position at Google.

          You need some way to massively thin the herd so you can focus on the good candidates. A quiz like this is a good way to start that process since it eliminates the bottom 60%.

    • by doom ( 14564 )

      Then the correct answers for their tests can be found online

      This test is essentially a demo of a concept: he gave it to a large number of applicants to establish and did statistics on it, establishing that a simple test like this is actually effective in identifying competent programmers.

      Whether you're convinced to use a multiple choice test like this, it's worth remembering that your hiring process doesn't have to be torturously difficult to screen for people who know what they're doing. When I was

  • Horse hockey (Score:5, Informative)

    by Snotnose ( 212196 ) on Sunday February 23, 2020 @11:48AM (#59756770)
    Especially question 5. I'm very familiar with associative arrays and maps, but avoid Javascript like the plague. Not knowing the JS syntax means I didn't even know question 5 was on mapping. To be honest, I didn't know what the hell it was.

    Likewise, I know about SELECT because of jokes, not because I'm good at SQL. I don't know HTML so question #4 is out for me, but I'd guess cookies cuz I'm big into privacy.

    On the other hand I'm an embedded software engineer, so #3 (caching) is dirt simple. I suspect people who know the HTML question won't know the caching question.
    • by gweihir ( 88907 )

      Same here on the JS thing. Although after looking at the possible answers it became clear that these were probably hash constants. I think question 5 does not give you enough to lock-on as to what the semantics is. The rest was very, very easy, but many "coders" cannot even do trivial stuff right: https://blog.codinghorror.com/... [codinghorror.com]

    • by AmiMoJo ( 196126 )

      Even the SQL one in the summary requires some knowledge of SQL to answer. Clearly the are extremely domain specific questions that are useless for many types of engineering.

      I've had random questions obviously pulled off the internet and unrelated to the job before. It's a sign that you should leave the interview as fast as possible.

      • Clearly the are extremely domain specific questions

        There are few domains where you can get by with zero knowledge of SQL.

        Anyone doing web backend, machine learning, business processing, data logging, will need SQL knowledge.

        • by AmiMoJo ( 196126 )

          I do data logging and machine learning without SQL. Actually I did a bit of web backend without it too.

    • by doom ( 14564 )

      I know about SELECT because of jokes, not because I'm good at SQL

      Well you know, you could probably identify competent programmers with an xkcd trivia quiz.

      • by narcc ( 412956 )

        That's a great idea. If they get even a single question right, move on to the next candidate.

    • by godrik ( 1287354 )

      Probably you would need that tuned to your particular industry. web programmer should know about caching, it is very used in web architectures.

      You are essentially saying that without being in that part of industry you could answer 4 of the 5 questions. And that is the point they are trying to make. If you can't answer four of these questions, you probably aren't worth hiring in a web type of position.

      That's a simple test that will remove 30% of applicants with very little effort.

      • Probably you would need that tuned to your particular industry. web programmer should know about caching, it is very used in web architectures.

        This is true, but this should be clearly labeled as a test for web coders, not programmers in general. Most embedded, kernel, or driver folks aren't going to be dealing with SQL or cookies, and in my experience, most with only web experience don't know what a critical section is or the difference between a mutex and a semaphore.

    • i think caching can mean something as simple as storing a value in a variable
      • Serious question: Aside from MMU block caching, is there another sort of caching?
        • Serious question: Aside from MMU block caching, is there another sort of caching?

          The first commercially-available IBM computer with a cache was the IBM System/360 model 85, and it did not have an MMU, so yes.

        • Serious question: Aside from MMU block caching, is there another sort of caching?

          Data retrieved from an L1 cache is cached in registers.

          Data retrieved from an L2 cache is cached in your L1 cache.

          Data retrieved from an L3 cache is cached in your L2 cache.

          Data retrieved from RAM is cached in your L3 cache.

          When you access an SSD, the OS should cache the most recently used data in RAM or in Optane memory.

          When you access an HDD, the OS should cache the most recently used data on an SSD.

          When you request a page from your ISP, your browser should cache the most recently used data on your HDD.

          Wh

        • File system caching, database caching, web request caching, you can cache on every thinkable level ... but be aware about the "buffering anti pattern" (forgot the correct term).

    • And even if someone understands what's going on in #5, they may think it's sort of a trick question. For example, in perl the curly brace come into play when dealing with hashes, while the square brackets are for arrays, And unlike javascript, which allows you to treat a variable like an object then turn around and treat it like an array( ex: var x = {a: 1}, x.a += 1; if (x['a'] == 2) blah blah ) languages like perl don't allow you to make that sort of interchange. So I wonder if the most common wrong ans
      • So I wonder if the most common wrong answer is "undefined", thinking the question is trying to trick them into accessing a hash like an array.
        Why would it not be undefined?

    • by GuB-42 ( 2483988 )

      Even if you don't know JS, you can guess the meaning. The hash["key"] syntax is standard in most languages, and {"key": "value"} also work in Python. Other languages have syntaxes like ("key" => "value"), {"key", "value"}, etc.. not so different. Plus it is also JSON, one of the most popular data format.

      JS programmers will certainly have an advantage here but I don't think any skilled developer who actually tries will fail this question. The reason you didn't find the answer is most likely because you di

    • Especially question 5. I'm very familiar with associative arrays and maps

      Most languages that treat associative arrays as first-class data objects use a syntax close to or identical to the syntax used in question 5.

      In addition, JSON is used in far more than just JavaScript.

      Anyone who can't answer such a simple question should be programmatically rejected, so no human time is wasted.

    • I knew all questions ...
      Obviously.

      I would not hire one who does not know all, unless he somehow excels in talking about his skills.

      I don't get why you could not guess 5)
      It is just the same like in C, a double array access, as the array has only one dimension it is either undefined/null or a syntax error, depending on language.

  • by AxisOfPleasure ( 5902864 ) on Sunday February 23, 2020 @11:56AM (#59756794)

    So basically this is the Slashdot equivalent of one of those awful phone in questions on a TV show. The questions are incredibly easy, everyone enters the competition or talks about it and the company behind this so-called article gets a ton of free press in the "geek press".

    Nice try, I'm not falling for this...oh damn it!

    • by tomhath ( 637240 )
      True. But what this quick quiz does is give HR drones a quick way to screen "coders". Should take less than a minute to decide if someone gets shown the door, and apparently about 25% are filtered out.
  • by Snotnose ( 212196 ) on Sunday February 23, 2020 @11:59AM (#59756798)
    In python:

    import fizbuzz
    fizbuzz(1, 100)

    If the interviewer points out the fizbuzz package doesn't exist I'll go ahead and code it. That'll show 'em!
    • by mark-t ( 151149 )
      Even if it did, the name of the identifier gives absolutely no clue as to the purpose of the package, and while you may not be responsible for how that package was originally named, if you didn't at least alias the package name to something that more obviously described how you intended to use it, then this sort of answer shows you would likely be ineffective at functioning in a software engineering team.
      • It's obvious from the name what it does. I'd hire that guy to be your boss.

      • At first I thought you were joking, the package name is self-descriptive. But then you got me thinking...

        Is it Fizzing the Buzz, or Buzzing the Fiz?

        • by mark-t ( 151149 )

          Such ambiguity aside, there is no context in the code fragment which to give "fizzing" or "buzzing" any objective meaning.

          Honestly, the only context I can imagine where 'fizzbuzz' might be an appropriate identifier is involved in calculating how drunk a person might get just by drinking the foam off the top of beers.

          But that's just a wild guess, maybe there are others of which I'm unaware. Some sort of explicitly descriptive identifier would remove the guesswork and make comprehension of the code much

    • But this misspells fizzbuzz and it is invalid Python...

    • In python:

      import fizbuzz

      fizbuzz(1, 100)

      If the interviewer points out the fizbuzz package doesn't exist I'll go ahead and code it. That'll show 'em!

      Awesome solution. You couldn't even be assed to check if 'fizzbuzz' was spelled correctly.

    • sorry, the fizbuzz package is only compatible with a different version of Python.

  • by Megol ( 3135005 )

    The fifth question is absolutely insane in its stupidity (or correctly that of its creator).
    Fizzbuzz at least required the ability to correctly read a specification and handle a slight complication, this isn't complicated at all if one knows the languages used but have no specification at all nor a demonstration of programming skill.
    Meh.

  • If you’d have correctly answered at least 4 out of 5 of the questions above without any help, you passed “FizzBuzz 2.0”

    So, like, exactly how does one take the quiz? All this shows is a bunch of questions/answer options, but you can't actually 'answer' them to verify that you got what they think is the right answer (see their comment about #5).

    Also...

    We work with hundreds of companies, from public FAANG giants

    given the way they've setup their site to not allow you to actually take that

    • by narcc ( 412956 )

      1) SELECT
      2) max_num = num
      3) It makes the second and subsequent reads faster
      4) HTTP cookies
      5) 'bar'

  • Comment removed (Score:5, Interesting)

    by account_deleted ( 4530225 ) on Sunday February 23, 2020 @12:13PM (#59756828)
    Comment removed based on user account deletion
    • > Knowing what a Lambda is and why / when it should be used is the hard part.

      No, the REALLY hard part is figuring out what the fuck a given Lambda actually *does* when all you have to go by is a printed program listing that shows a call to a thirdparty Lambda from some library, but no access to the documentation or source for the library itself.

      My big beef with Lambdas is their omission of the method name (and locally, the name of the class the method is in). Ditto, for implicit parameter names. Knowledg

      • by narcc ( 412956 )

        I'd guess that you're looking at code written by morons who think that "less code" means that their code is easier to read and understand.

        It's also possible that writing a short bit of code that does something complicated just makes low self-esteem developers feel good about themselves. Pretending that their obfuscated mess is "obvious" let's them feel superior.

        I can play code golf as well. I also know that it shouldn't find its way in to production!

  • Comment removed (Score:4, Interesting)

    by account_deleted ( 4530225 ) on Sunday February 23, 2020 @12:30PM (#59756862)
    Comment removed based on user account deletion
  • The fifth question uses syntax that I've never seen for hash/map/associative whatever, and I've been programming for about 40 years (but not in Javascript). I figured it out like a puzzle, but frankly it's not obvious that x = {a : b} creates a map that you reference as x[a].
    • by tomhath ( 637240 )
      COBOL programmer?
    • Arrays are Associate in Javascript.

      It is a common idiom.

  • Is this so one can't copy/paste the answers? Fucking LAME.

    Here is textual copy:

    1. What kind of SQL statement retrieves data from a table?
    Select the correct answer:

    LOOKUP
    READ
    FETCH
    SELECT

    2. Fill in the missing line of code:

    def find_max(nums):
    max_num = float( "-inf" ) # smaller then all other numbers
    for num in numbers
    if num > max_num
    # (Fill in the missing line here)
    return max_num

    3. Why is

  • Like many online "tests", they need your name and email to add you to advertising lists of people who are programmers, or a5 least 5hink themselves so.

    At least they only ask one question before thst, instead of asking onl6 after you've made th3 investment in answering the entire quiz, the usual scam.

  • If you don't know the answers to all of these, you are an incurious bastard which would seem to disqualify you from most programming positions. It does not bode well for your longevity in any position.

    I'd take five questions like these that demonstrate breadth, together with an ability to write reasonably well as a fairly good indication as to whether to explore a candidate further or not.

  • 2. find_max
    I'm bothered by find_max defaulting to float("-inf") which is what you'll get if the array is empty. And there's no function documentation in the example stating what the behaviour is expected to be.

    3. caching
    Does a poor job answering WHY caching is used. Sure, second and subsequent reads are faster. But the real answer is that the tradeoff of additional memory usage to performance is worth it. Caching is not a magic bullet, otherwise we'd cache every damn thing ever used more than once.

    • Does a poor job answering WHY caching is used.

      This is a valid point. There are plenty of situations in resource-constrained systems where you simply can't afford the memory hit to cache stuff.

  • by Anonymous Coward

    I'm actually "triplebyte certified"--meaning I passed all their tests and their entire interview process. None if it was very difficult--except for the few questions asked in languages I'd never used before (go, ruby)--so even though I could read the code in the question and knew exactly what they wanted in the answer, I had to guess at the correct syntax for the answer. (just google it you say? well, it's timed, and short.)

    The real problem with them is that they force you to choose criteria about the compa

  • And I found it very web-biased. I come from a video games / rendering / optimization background. I've done that for about 25 years and I had to look at SQL maybe for a week out of all that. One of the job I did after games was working on an adult video stream platform.. Mongo was everything, not a single SQL server. I know everyone is thinking online these days, but there are large chunks of the programming field that have absolutely nothing to do with anything online. Two of the questions had Redis as a p
    • I didn't take it, but could tell just from the sample questions and the linked article that it was all about web stuff. There are lots of other programming disciplines in which web technologies play little to no role, and I felt it was misleading to say that this test was oriented towards "programmers" as opposed to "web programmers".

      In general, I found the article to be of little practical value, and unabashed clickbait.

  • I think the best way to use these question is not as multichoice quiz but as a set of talking points about the potential flaws in the questions, which many responses have highlighted.

    The thing that irked me the most was that there are five questions but the vertical axis of the bar chart are marked with labels at 25% increments, FFS.

    Constructive contrarism is a valuable skill for developers.

  • Comment removed based on user account deletion
  • ... they want an email address and FF says they are fingerprinting.

    Pass.

  • The problem with TripleByte is the same with every other interview process for software development, which is that they aren't looking to find the best on the job candidate but rather they are just looking to eliminate canidates until they are left with a few people. There really is nothing special about TripleByte, and there are plenty of sites which will just give you the answers to the test questions or have people pass the test for you, and I know several people who have passed TripleByte using these me

  • How much unpaid overtime are they willing to put in for imaginary stock options?

"Ninety percent of baseball is half mental." -- Yogi Berra

Working...