Monday, January 10 was the last day to submit your answers to get qualified for Facebook Hacker Cup. It started from January 7, and lasted for 3 days. There were three problems presented on the competition website, to be solved by participants. Problems were provided with sample input and output, and there were no time limits to browse through the problems and to develop your code. To answer each problem, competitors had to download an input and submit their output, yet they only had 6 minutes, after they downloaded the input, to submit their answers through the form provided. There were absolutely no limitations on choosing the programming language (I used Perl), nor on the way you code your solution, cause there were no need to upload your source code. All three problems were fairly easy to solve, except one (called the peg game), that was not explained clearly. Anyone who solve at least one problem, would be qualified for the first round.

This competition could attract a fairly large number of young people around the world, and by that means, it can be counted as a success. Nevertheless, there were some fundamental design problems regarding the competition website itself, which is the topic of this post. These are some of the points that came into my mind:

  • First of all, the rules and regulations of the competition, and the instructions were not presented clearly. Everything was distributed, and there were no centralized approach For instance, one had to register for this round through the event page that was created for this purpose. There was a link in the event description, that  could be used to register. when the event started, additional link were added to the same place which was pointing people to the qualification problem page. I was expecting to see the instructions in the new page and after reading all, I could not find out how I should submit my answers. Thus, I decided to open one problem and after reading that I thought maybe I have to download the input to get the instructions !!! After doing that, I opened the file and could just see some numbers in there. So, I decided to go back to the problem page and all of a sudden I saw the time is counting down. Then I went back to the event page and found out that instructions were added to the event description, under the registration link, and it was also could not be seen unless you click on *“see more” *to view the instructions. In addition, news and updates were being posted on another page (Hacker Cup page), and in the last day it seems they took off the  6 minute limit, but I again I failed to get updated, as I did not know such things were going on in a separate page.
  • The second issue was related to 6 minute limit for submitting the answers. I agree that there should be some mechanisms that make sure solutions are in the range that designers expect, but in this case it was a very bad idea to control the solutions by a timer. What designers might have thought is that if the code is well-written enough, even if program fails once or twice, well, there should be still enough time for people to run their code and copy-paste the answer. At first glance it seems fair, but they failed to take other parameters into consideration. If people were using same computers with same internet connection, and of course same browsers (it seems chrome had some problems with downloading the input file), and under same circumstances it could be considered as fair. What if someone do not have access to broadband or the connection drops frequently !? Or someone has access to a very powerful computer system which despite any bad coding styles could deliver the answer in less than the amount of time provided ?! My own problem was the “Peg’s game” input, it was big for Putty to handle, so it freeze twice (I was coding on another machine through SSH). Then I had to  start the FTP service, upload the file via FTP, and voila 6 minutes passed !
  • The other problem was related to the explanation of the “Peg’s game”. I think it was the most awful description I’ve ever read in my life. The problem was a piece of cake when one fully understands it. But I think the main challenge here was understanding it. It took me a while to decrypt what was the real purpose of the question and how everything is connected together. I thought maybe it’s me, and I did search today in order to see if others had any concerns about this problem. As I started to search, I found tons of different interpretations of the problem. So it seems that the designer failed to explain the problem clearly. I think it is related to the *Curse of Knowledge *(Refer to Made to Stick), which claims that the more you know about a subject the less you could know how it feels not knowing about that subject. It probably happened to you too, trying to explain something which seems obvious to you but others cannot understand a thing you are saying.
  • The last issue is the name of the competition does not match the content of it. They call it a hacker cup, though there were nothing to hack here, just simple programming questions. I took part in Yahoo! HackU last year in University of Waterloo, and it was closer to a hacking competition than this competition. HackU is about using various tools to come up with a neat idea that blow judge’s mind. I hope next rounds get closer to hacking idea than solving problems. Current situation seems more like Facebook is saying: “Interviewing this amount of programmers is gonna take a lot of time, we prefer to make a competition online to select our programmers among them. And it’s a better way cause people have to prove themselves”. Which is absolutely fine, ( I think all the competitions are all about this), but the only hacking was to hack designers’ mind and the website to get the instructions and understand the problems.

In general, it is a very good move from Facebook to gather all this people to compete against each other and express their opinions. I Specially liked the way people could express their opinions on the event wall, there were lots of interesting posts, and most of them could be counted as a feedback ( Which was effective at least for taking off the time limit). I hope in the next round, geeks do not design the website, and get help from more experienced people in this area to take all the basic requirements into considerations.

<span class=‘st_facebook’ st_title=‘Some Notes on Facebook Hacker Cup Qualification Round’ st_url=‘http://www.samanbarghi.com/2011/01/11/some-notes-on-facebook-hacker-cup-qualification-round/'><span st_via=‘saman_b’ class=‘st_twitter’ st_title=‘Some Notes on Facebook Hacker Cup Qualification Round’ st_url=‘http://www.samanbarghi.com/2011/01/11/some-notes-on-facebook-hacker-cup-qualification-round/'><span class=‘st_email’ st_title=‘Some Notes on Facebook Hacker Cup Qualification Round’ st_url=‘http://www.samanbarghi.com/2011/01/11/some-notes-on-facebook-hacker-cup-qualification-round/'><span class=‘st_sharethis’ st_title=‘Some Notes on Facebook Hacker Cup Qualification Round’ st_url=‘http://www.samanbarghi.com/2011/01/11/some-notes-on-facebook-hacker-cup-qualification-round/'><span class=‘st_fblike’ st_title=‘Some Notes on Facebook Hacker Cup Qualification Round’ st_url=‘http://www.samanbarghi.com/2011/01/11/some-notes-on-facebook-hacker-cup-qualification-round/'><span class=‘st_plusone’ st_title=‘Some Notes on Facebook Hacker Cup Qualification Round’ st_url=‘http://www.samanbarghi.com/2011/01/11/some-notes-on-facebook-hacker-cup-qualification-round/'><span class=‘st_pinterest’ st_title=‘Some Notes on Facebook Hacker Cup Qualification Round’ st_url=‘http://www.samanbarghi.com/2011/01/11/some-notes-on-facebook-hacker-cup-qualification-round/'>