📜 ⬆️ ⬇️

Inside the post is money. Another JavaScript contest

Hello friends. Here we will talk about small contests JavaScript-programmers, which runs a startup Hall. It still seems to me that the visitors of Habrakhabr are the most targeted audience for such contests, especially after the division of sites into Micro Brain and that one other site.

Everyone who wishes can take part in the collective unconscious fun described here; Memorable gifts include a total of slightly more than three thousand dollars of American money (I specifically run ahead to attract attention, such a literary device).

Even in this post I will try to summarize the experience, the son of difficult mistakes: what has been done, what happened, and how to live with it now.
')

About the contest


Immediately the most interesting: the conditions of the competition.

The composition of Node.js includes the implementation of a high-performance linked list, which to all other carefully applies to the RAM. Here it is, this wonderful thing: github.com/joyent/node/blob/master/lib/_linklist.js

This code is quite specific: it is written to hold idle timeouts (although this does not affect its work in any way) and does not allow one object to contain several lists. (Here, obviously, we mean the direct participation of the same node in two or more lists. - approx. Transl.)

It is required to generalize this code, depriving it of the described limitations, but without worsening the performance of its work. A benchmark must be attached to the decision, confirming that the work speed has not decreased.

The fastest, most efficient and generic implementation wins.

You can read the original in English here .

Decisions are made until June 30. Prizes: 1500, 1000 and 500 US dollars for the three best decisions, and 350 dollars for the most original attempt.

Job analysis


Further pure speculation, i.e. my own opinion. It may turn out to be true, and it may not turn out to be real quantum mechanics; like Schrodinger's cat, my opinion therefore cannot be neither stroked nor fed.

First, the attentive reader has already guessed that the organizers want to see, above all, a benchmark; A coherent list without a benchmark is very simple and not very interesting.

Secondly, anticipating the same questions: from past experience, there will most likely not be an “official” benchmark. You need to test the application close to the real one; It is best to take some kind of algorithm that basically has a coherent list, and drive it on some plausible data.

Thirdly, the task, of course, is not strict. This implies conditional and creative work in a free form, it is both bad and good. Be sure to write in the comments why you think this is bad - identical messages form a rhythmic pattern in a thread, create an elusive harmony, like a carpet on a wall in a bedroom. Such, you know, with a red ornament. Probably everyone had one.

About the trick


And the catch is this: the lack of rigor of the task is directly related to the real purpose of holding small contests. I tell you in confidence: the goal is to find programmers to invite them to work. You can work in the Hole remotely, or locally if you happen to be (or even intentionally) in Israel.

The tasks that the guys from Hole set for the applicants reflect the realities of working in the company. The realities are as follows: it is understood that every programmer can independently analyze requirements, design and develop the necessary things. Therefore, if the formulation of this small problem confuses you, you might have fled from the Hall at high speed on the second day, waving your arms comically.

Some of my friends like to work this way, while others do not like it. If you draw an analogy with another excellent holivar - some think that Vim is better than Emacs, and others think that Emacs is worse than Vim. Two Jews - three opinions.

Chronicle of events


The contest about which you read above is the third one.

The first task was quietly published on the website of Kholy long ago, did not have an expiration date, and meant gifts to everyone in general, so that no one would leave offended. The task was to write functions for working with strings in the C language.

At first this task was offered only to the citizens of Israel. Then someone noticed that the office has the Internet, and this not only opens up incredible opportunities to look at funny cats in the YouTube, but also allows you to work remotely, sit directly in Siberian thicket and drink the vodka from proverbial samovars.

The main criticism of this enterprise was, of course, the statement of the assignment: it was required to present, I quote, “the ideal solution”. Since the ideal is a deeply personal and incomprehensible thing, many guys took offense at such a task, at the jury, at the sky, at Allah.

From the point of view of the organizers, the task was different: at first glance, it is very easy to write functions for working with strings in the C language. There have been a lot of bad, unsuitable decisions, and good, on the contrary, disappearingly few.

The second contest was about the strftime() function. It was proposed to take the implementation of this function in Github and speed it up considerably. Here, in terms of complexity, it turned out to be strictly the opposite: the least courageous guys did not even try, because the front works looked too monumental.

The task was also quite cool met by the community, in particular, it can be observed on Habré. As usual in such cases, the competition participants (direct and indirect) divided into two practically non-intersecting camps: those who submitted the decision and those who sent the criticism.

Here I will now reveal a delightful secret: there were no prizes for criticism at all, but for a successful decision, on the contrary, they were. Oh yeah, another interesting point: many of the children who responded to the competition tasks were offered a job, regardless of the (non) prize.

findings



I hope the story turned out not very boring. Just in case, the link to the competition (I myself always read from the end, so much more efficiently).

Good luck!

Source: https://habr.com/ru/post/258245/


All Articles