Hacker News new | comments | show | ask | jobs | submit login
Show HN: 15-question language identification quiz (triplebyte.com)
140 points by DanielDe 7 months ago | hide | past | web | favorite | 86 comments

We (Triplebyte) actually tested a while ago whether identifying languages was predictive as an interview question (we thought it might predict general experience / exposure to lots of code). It was not predictive of anything. So this quiz is just for fun!

It is worded opposite of what you say:

> You're in the top 3% of engineers! (We should know, we've interviewed thousands.) We can totally help you get a job if you're interested.

It is worded as if scoring well in this is an accurate predictor of engineering skill.

It may be an accurate predictor of who will respond to ads.

> Just for fun

...or to retarget engineers on FB and other channels :)

Came here just to confirm this. I got all right but it doesn't seem to be valid test for hiring. Fun quiz! :)

Can confirm. I'm a terrible programmer but got 100%. I guess it selects for people with very unfocused careers and no real specialism.

One could as easily argue that it selects for people who closely follow Hacker News - I got 15/15 too, but only because I'd previously seen several of the more esoteric languages mentioned here.

Yup, it's not a test for hiring

It seems that some of the same questions were difficult or tricky for many people, i.e. the Kotlin question or the Lisp question (which were the two that I missed as well). It would be great to see the stats on this one. Thanks!

Got 14/15 but I have a feeling it was only because I made the assumption I would not see the same language twice. Without that assumption a few were toss ups for me.

Of all the languages on there the only one in that set I had never used / seen at all is Kotin and that's the one I got wrong.

Several of them were mandatory for me to learn in college but I haven't seen since. (looking at you, Prolog and Verilog... Verilog is useful but I don't do hardware dev)

Got 14/15 because I couldn't tell Emacs Lisp from Clojure. Argh ...

The [ ] around the args are the giveaway.

defn vs defun :)

I remembered it somehow as "clojure doesn't allow you to define fun"

Lol, I should print this out on a poster and give it to That One Clojure Guy(tm) at work.

Missed this as well. I should have guessed Clojure because it's a language people actually might use. All I could tell is it's some kind of Lisp.

Yep, I also missed Kotlin. I technically missed Clojure too, because I rushed and hit Emacs Lisp before actually fully reading the example and all the answers.

I also scored 14/15 - got PHP wrong I thought it was Perl which is slightly embarrassing as I've never used PHP but I have used Perl.

PHP and Perl are basically like Spanish and Italian when it comes to syntax. Both can more or less interoperate with the assistance of lots of hand gestures and facial expressions.

Ditto. I'm positive that code would be valid Perl with the right libraries.

Which isn't saying much.

Same here, because I knew they intersected and presumed it was a trick question. Technically, I believe it is neither valid perl nor PHP because it's missing an opening brace on one of the if statements.

PHP lets you skip using curly braces for conditionals. I've seen real-world code which used this style only once, and it was about as bad as you'd expect.

Yeah, I suspected that, but it looked like there was a close brace and no open brace. (I only noticed because I was specifically looking at the braces to try to determine if it was PHP.)

The lovely globals (e.g. `$_GET`) are what give PHP away.

Can concur. I managed to get all correct, but that one question that almost tripped me was the PHP question.

As an ex-perl dev, (looks at self) shrugs in disbelief!

I did that too, and in the same situation (although I got more wrong).

I also missed Kotlin.

A lot of them could be inferred from what the code is doing. For example, PHP and Perl are sometimes really hard to distinguish, but I was able to get PHP right by deciding that "this ain't what a Perl hacker would write". Same with Ada v. VHDL.

Missed Kotlin here too. I also missed one where I guessed Haskell when it was actually Prolog.

I feel like this quiz was much more about how much you've dabbled at surface level in various languages, enough or not enough to remember specific details to aid in process of elimination. For example, I knew what GLSL stood for, so the picture was most definitely not GLSL. And I had at one point written Scheme and looked into Lisp enough to guess that it was Clojure and not Lisp. And I remembered vaguely enough that Objective-C still uses C-like pointer notation, for example. And I remembered enough of computer engineering class to immediately identify that the VHDL question's code fit the use case despite not having written a line of VHDL (or Verilog) ever.

For the last question, a smattering of art history will guide your guessing much better than a smattering of computer science!

I got Kotlin right, but only because I happened to see some Kotlin code (due to the somewhat recent HN thread about it, based on a post by Steve Yegge), else might have got it wrong, due to maybe thinking Kotlin syntax would likely be similar to Java.

On second thoughts, though, I guess there is no need for a JVM language's syntax to resemble Java's (much, anyway). E.g. Jython, JRuby, Groovy, etc.

15/15, not that it matters. I guess all those years of reading about languages on HN and trying out languages even when I had no real use for them was good for something, at least. :)

I am not a programmer other than one visual basic course I took in college.

My score: "You got 8 out of 15 right You're in the top 50% of engineers. Can your friends beat you? Share your score and challenge them to do better!"

14/15. I guessed wrong between Piet and GLSL which I never heard about. How many possible questions are there?

Yeah, Piet's a curveball! It's a pretty cool (esoteric, totally useless) language however.

Piet's an esoteric, and GLSL is OpenGL's Shader Language. GLSL looks kind of C-like, while Piet looks like Mondrian paintings (for many programs, anyhow).

Yeah, I got that problem because I knew who Piet Mondrian was, so I took an educated guess.

If I hadn't read an article on esolangs last week, I would have missed Piet.

There are only 15, the quiz is static.

I got 12/15 initially. Then I followed the link to retry the test, and somehow got 15/15. It's amazing how quickly you can progress as an engineer.

That must be top 3% for a large value of 3, or perhaps a small value of 100. How's the HN traffic doing? ;-)

I know this is intended as just a fun test, but the highlight.js library used on these pages adds the language name as part of the class name on the code block...


One was because I got two LISPs mixed up with each other, the other because it was in a language I didn't recognize (Piet) and there were two languages I didn't know anything about as options (GLSL was the other).

same score, same reasons :)

Do one with only assembly languages and we have to guess the architecture.

It's all `mov` instructions. Go.

Just did it, and got 14/15. But see below.

Saw this thread yesterday and at first did not feel like taking the quiz (because I thought I would not do well, also because I didn't think it was too interesting).

But today read about half of this thread again. Then felt motivated to take the quiz (just for fun). Was not expecting more than say 8/15. Surprised to see I got 14/15 (but in top 3% of engineers -- definitely not :). It was definitely partly due to reading some of this thread first, else I would never have been able to figure out the Ada/VHDL question (at least just by guessing / logic / prior knowledge), even less the Piet one (since had never heard of it - at least had heard of Ada and VHDL). I guess the result was also partly due to being interested in programming languages right from the start of my career, and having at least read a little about many, and having dabbled in some (apart from the ones I worked in for non-trivial periods).

Anyway - somewhat interesting quiz idea.

Wrote code in all but Piet, so knew it was not glsl. I must spend way too much time behind a computer as i also knew all besides Piet even if it was not multiple choice :)

I do think it should be harder; like when you get a lesser known language, also add the choice for others; APL + K + J for instance, or worse (for many) K or J showing either.

C vs C++ vs D.

Prolog vs Haskell vs Ocaml. Curveball there could be something like Mercury.

Haskell vs Purescript.

14/15. I basically only program Python, but I guessed based on vague stereotypes of different languages. The wrong one was guessing Java for C#.

That's a pretty fair toss-up if you're not familiar with either.

Biggest giveaway (as a lifelong Java programmer who's probably only written about 100 lines of C#, ever) is that C# Likes To Capitalize Freaking Everything. Java typically only capitalizes Types, but C# capitalizes Method Names as well.

It's like it was created by somebody who either likes German, or Olde-Timey English Writing.

So the scheme is I answer questions in order to get my ego higher, you bribe me with "you are top n", I leave my CV?

(Note: I work at Triplebyte.) No CVs -- we skip resumes and cover letters, and match engineers to companies (bypassing recruiter and resume screens) based on demonstrated skills.

Demonstrated how?

They have you take a quiz and (maybe) do an interview with one of their partner companies. FWIW I took the quiz and it was actually one of the better "fill out this survey and we'll see if we want to hire you"'s that I've ever seen: finding subtle-ish errors in code, demonstrating more than beginner knowledge in a couple of languages, and a pretty solid set of design questions. I didn't feel out of my league, but I also didn't feel like my intelligence was insulted.

11/15 A few I missed because I didn't know enough to tell them apart (eg Kotlin/Swift.) Others were process of elimination or a straight up guess. And I didn't even know there was an abstract visual programming language!

Interestingly enough, question 5 is actually syntactically correct Perl, but not PHP.

> syntactically correct Perl

Not a high bar to clear, mind you ;)

Well, it is correct PHP as it is missing an opening "<?php" tag. Therefore the interpreter skips this part and prints it out. :D

When interpreting as PHP however

      header("Location: reg");
is either missing an opening bracket or has got one too many closing brackets.

Stupidly, I missed Ruby/Python from going too quickly right at the beginning. Then missed Ada/VHDL from never having heard of VHDL, and I thought "oh, looks like Ada."

Anyway, fun stuff. I laughed when Piet came up.

Well, VHDL was heavily inspired by Ada, given they both came out of DoD contracts around the same time...

Yeah, I know that now after reading about it. Explains why I got them mixed up...

Too easy (15/15). Had only once to look a second time at the code snippet (elisp vs. clojure, but there were [] around the param, that made it clear).

Would be more fun if they would implement the same code snippet in different (but maybe quite similar) languages and one would have to label the (lets say six for an interesting difficulty level) snippets.

> Just as the ++ in the name C++ is intended to imply that C++ is a step above C, the # in the name C# is intended to resemble two ++ operators stacked on each other, indicating that C# is a step above C++.

I've sort of followed C# since it was released, and never realized this.

I recall C# being a musical reference (a higher note than c), which is why it's pronounced C-sharp and not say, c-pound.

I would occasionally call it Db (D-flat) to be an arse.

I'm not sure if there was a formalized reasoning behind the name or if what I heard was just a rationalisation.

a complete arse would reply that Db and C# are not the same thing.

It's a bit of a giveaway that R included domain specific terminology: otherwise it would've been hopeless for me. Maybe the same for VHDL, but I know so little about it that I don't even know if you could write code without domain specific elements.

BTW, what is the reason for the Piet question not showing any code or image (until you answer the question)? Is it somehow related to how the language works, or some feature of it?

Surprised how the ones I'm familiar with jump out instantaneously, only got 10/15 but should have got 11, silly mistake confusing ruby and python. Hadn't even heard of some of the ones at the end.

Ahhhhhh! APL and Piet I didn't feel bad about (as I have never seen either) But VHDL vs Ada! Bad miss on my part. 12/15 is not too bad I guess....

APL and Piet I got right. Instead I missed the newer obvious ones.. Clojure, Kotlin, Rust.

The missing font is the giveaway for APL!

Happened to get all of them, but it was getting harder at the end! Was C, C++, Java, Python or included because the quiz would have been too easy?

I thought the end was easier than the middle -- the languages there were older and more obscure to a 2017 audience, but that also generally made them much more distinctive.

The questions are selected in a random order from a larger set, so nobody likely saw the same questions or order as you.

What evidence do you have of this? Judging by other comments, it's pretty clear everyone got the same questions in the same order.

Absolutely nothing. I have no idea why I wrote that.

Nope, they're always in the same order. Not sure why you'd guess otherwise and state it as fact.

Me either. And now I can't delete my stupidity, heh.

Damn, I miss APL.

Perhaps this should be a 'poll' post so people can vote for their results? (9/15)

My startup provides online compiler service for 20+ languages[0] so my work involves testing every language frequently. So this was easy for me.

[0] https://codepad.remoteinterview.io

it was a fun test. i got like 13/15. not too bad i think considering the people who are on this site are making mistakes as well. maybe i deserve a higher salary?

All fun and games till the plug at the end...

14/15. Confused Swift and Objective C.

13 out of 15 (No idea bout VHDL and Piet)

Smart! Enjoy it so much!

I got 11 of 15, but I can only write competently in maybe 4 of them (JS, Java, Python, PHP).

Applications are open for YC Summer 2018

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact