Yvision.kzYvision.kz
kk
Разное
Разное
399 772 постов41 подписчиков
Всяко-разно
0
06:48, 11 июня 2008

TopCoder - все, что вы хотели узнать, но боялись спросить…

Продолжаю описывать известные мне соревнования по программированию. На этот раз - не только по спортивному программированию, но и по разработке программного обеспечения и графическому дизайну.

Пролог

TopCoderПро TopCoder я случайно узнал в далеком 2005 году. Зашел на сайт, зарегистрировался, стал еженедельно получать email’ы с анонсом каких-то SRM’ов с призовым фондом $5000, но так и не решился поучаствовать - думал, нереально какому-то самоучке состязаться с профессионалами и еще претендовать на денежное вознаграждение.

На участие сподвигнул меня Андрей Лопатин - двукратный чемпион мира по версии ACM ICPC, приехавший в Алматы в качестве тренера на школьные сборы в мае 2006. С тех пор я участвую почти в каждом Rated Event в секции Algorithm и ничуть не жалею об этом, даже если “сливаю” матч вчистую.

Из материального заработал я немного - всего $523, которые при вычете налогов сильно уменьшаются в размере, несколько футболок и почти бесполезных вещиц. Но неоценим нематериальный вклад: возможность вживую пообщаться с легендарными личностями, посмотреть, как пишут программы профессионалы, шанс быть принятым на работу в известную компанию, ну и просто наслаждение и польза от самого процесса.

Итак, начнем-с...

TopCoder регулярно проводит несколько видов соревнований. Понемногу о каждом.

Algorithm CompetitionsAlgorithm Competitions - соревнования по алгоритмическому программированию. В полной мере отражают смысл словосочетания “спортивное программирование”: 75 минут на кодирование трех задач, 5 минут на регуляцию уровня адреналина, 15 минут на поиск багов в чужих решениях, и еще 5 минут бесконтрольного выброса адреналина в ожидании результатов.

Single Round Matches проводятся практически каждую неделю (следующий, кстати, будет в субботу в 22.00, разыгрывается $5000). Кроме этого раз в год проводится неофициальный индивидуальный чемпионат мира по программированию среди студентов - TopCoder Collegiate Challenge, и среди всех желающих - TopCoder Open, с довольно внушительными призами.

Плюсы:

  • вышеописанная “спортивность”;
  • приемлемый (в большинстве случаев) уровень задач;
  • разделение участников на дивизионы - если вы не хотите уделять много времени подготовке, а просто хотите оставаться в форме, участвуйте во 2-м дивизионе;
  • призы, иногда;
  • возможность следить за своим прогрессом;
  • учит думать быстро и безошибочно.

Минусы:

  • очень желательно хорошо понимать тексты на английском;
  • базовых знаний языка программирования может быть недостаточно - требуются начальные знания ООП (класс, метод) и стандартной библиотеки;
  • отсутствует возможность использовать Pascal, хотя я считаю, что это больше плюс, чем минус.

Marathon MatchesЕсли вы любите долго обдумывать программу, постоянно что-то оптимизировать, то для вас есть Marathon Matches. Одна сложная, возможно, NP-полная задача, срок - одна или две недели.

Плюсы:

  • решение необязательно должно быть полным, оно лишь должно быть лучше других.

Минусы:

  • требует, на мой взгляд, достаточного количества свободного времени.

High School CompetitionHigh School Competitions - то же, что и Algorithm Competitions, но участвовать могут только школьники.

Software Architecture, Design, Development, Assembly CompetitionsSoftware Architecture, Design, Development, Assembly, Testing Competitions - соревнования для тех, кто предпочитает промышленное программирование: разработка архитектуры, проектирование, реализация, сборка и тестирование программного обеспечения. Есть заказчик, есть задание, кто сделает лучше, тот и победил. Можно рассматривать как аналог фриланса.

Сюда можно включить также относительно новый вид Bug Races, в вольном переводе “Погоня за багами”, - соревнование по исправлению обнаруженных багов.

Плюсы:

  • призы есть всегда, хотя их лучше рассматривать как заработную плату.

Минусы:

  • хотя призы есть, при отсутствии должного опыта шансы получить хоть какую-то оплату минимальны;
  • требует большого количества свободного времени.

TopCoder StudioИ, наконец, TopCoder - это соревнования не только для разработчиков. Если вы дизайнер или просто умеете рисовать, то присмотритесь к TopCoder Studio.

TopCoder в википедии (на русском).

Кросспост с моего блога.

0
869
3