Inside the post money. Another JavaScript-contest

Hello, friends. Here we will focus on the little competitions the JavaScript programmers, which holds the startup of Hal. I still think that the visitors Habrahabr — the target audience for such contests, especially after the separation of the sites on Mikromozg and the other site.

To participate in the collective unconscious described here, the fun can, of course, everyone; gifts include a total of just over three thousand dollars of American money (I'm getting ahead of myself specially to attract attention, like this literary device).

In this post I will try to sum up the experience the son of errors difficult: what has already been done, what worked, and how now to live further.

About the competition


From the most interesting: the conditions of the contest.

the Node.js includes a high-performance implementation of the linked list that everything else respects 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 store idle timeouts (though this does not affect its work), and does not allow one object to have multiple lists. (Here, obviously, refers to the direct participation of the same node in two or more lists. — approx. transl.)

You want to summarize this code, depriving it of the described limitations, but without worsening the performance of his work. The decision you need to make a benchmark that confirms that the productivity is not decreased.

Wins the fastest, efficient and generic implementation.

Read original in English is available here.

Decisions are made by June 30. Prize: 1500, 1000 and 500 US dollars for the three best solutions, and $ 350 for the original attempt.

task Analysis


On pure speculation, i.e. my own opinion. It may be true, but may not be real quantum mechanics; Schrodinger's cat, my opinion so we can not Pat or feed.

First, the attentive reader will have guessed that the organizers want to see first of all a benchmark; a linked list without the benchmark is very simple and not very interesting.

Second, anticipating the same issues: according to past experience, the "official" benchmark most likely will not. You should test the use of near real; it is best to take some kind of algorithm, which is basically a linked list, and drive it on some credible data.

Thirdly, the job, of course, lax. Means conditionally creative work in a free form, it is both bad and good. Be sure to write in the comments why you think it's bad — same messages in thread form a rhythmic pattern, creating a subtle harmony, like a carpet on the wall in the bedroom. So, you know, with a red ornament. Probably all this was.

catch


But the catch is this: the lack of rigor of the task is directly connected with this purpose of little contests. Secret report: the goal is to find programmers, to invite them to work. To work in the Hall, you can remotely and locally, if you accidentally (or even intentionally) ended up in Israel.

The challenges posed by the job seekers the guys from Hola reflect the realities of working in the company. The reality is this: the implication is that each programmer can independently analyze requirements, design and develop the right things. So if the production of this little problem confuses you, you may with a high speed run from Hola on the second day, ridiculously waving his arms.

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

Chronicle


Competition, about which you read above — the third in a row.

The first task was quietly published on the website Hola a long time ago had no expiration date, and meant gifts in General, all to no one left hurt. The assignment was to write functions to work with strings in the C language.

First, this task was offered only to citizens of Israel. Then someone noticed that the office has Internet, and it not only opens up incredible opportunities for watching YouTube on the funny cats, but also allows you to work remotely sidyuchi directly in the Siberian thickets and rollicking drinking vodka from samovars proverbial.

The main criticism of this enterprise was, of course, the wording of the task: it was required to submit, quote, "the perfect solution". Because the ideal thing is deeply personal and incomprehensible, a lot of guys took offense to such a task for the jury, to heaven, to Allah.

Perspective of the task from the point of view of the organizers was at the first glance to write a function to work with strings in C is very easy. Bad, bad decisions were many and good, on the contrary, vanishingly small.

The second contest was about the function strftime(). It was proposed to take available in the Github implementation of this function and greatly accelerate it. Here in terms of complexity turned out quite the opposite: the least brave guys did not even try, because the work seemed too monumental.

the Task has also been rather cool met by the community, in particular it can be watch on habré. As usual in such cases, the participants (direct and indirect) was divided into two almost non-overlapping camps: those who sent the solution and those who sent the criticism.

Now here I reveal an amazing secret: for criticism of the prizes there were not any but for a successful solution, on the contrary, was. Oh yeah, another interesting point: many people responded to the contest task, children were offered the job, regardless of the (non)prize.

Conclusions


the
    the
  • you Can write ~10 lines of code and win ~ $ 1000. Half a barrel of oil for a line of code.
  • the
  • When freebies are given money to take.

I hope the story turned out not very boring. In any case, link to contest (I always read from the end, so effectively the same).

Good luck!
Article based on information from habrahabr.ru

Комментарии

Популярные сообщения из этого блога

March Habrameeting in Kiev

PostgreSQL load testing using JMeter, Yandex.Tank and Overload

Monitoring PostgreSQL with Zabbix