Владимир Завертайлов

Провести студенческую олимпиаду по программированию: наш опыт

Полный кейс: как придумать концепцию, организовать и провести студенческую олимпиаду по веб-программированию. Польза для студии? Очевидна.

Так получилось, что в своем регионе и своей отрасли (веб-разработка) наша студия лидирует, вот уже много лет подряд. Это вовсе не для красного словца написано, просто такое положение накладывает определенную ответственность: тем молодым ребятам, которые хотят заниматься вебом, нужно помогать проявить себя. И вместе с этим есть закономерный практический интерес — когда студия растет, ей становится нужно больше рук и голов, а эти самые ребята могли бы стать ими. Конечно, если захотели бы сами, мы никого не принуждаем. У нас есть вполне себе трезвое осознание того, что в Барнауле полностью готовых к употреблению специалистов нужного нам уровня — просто нет. Вернее, они есть, но все где-то уже работают. Поэтому один из мотивов провести олимпиаду — выявить свободные светлые умы.

Проблемы

Как минимум две главные проблемы мешают вебу как отрасли развиваться: Первая, глобальная. У тех, кто обучается на ИТ-специальностях зачастую нет нормальных прикладных знаний, данных преподавателями. Очень многие нынешние PHP-разработчики — самоучки. Вторая, локальная. Называется «проблема редких кадров в маленьком городе». Многие бегут из города, другие — работают в конторках, где сложно раскрыть потенциал, но всё равно остаются сидеть ровно (потому что податься особо некуда). Теперь — к вытекающим отсюда целям.

Цели

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

База

К моменту, когда мы для себя решили развернуть активность, которая бы помогла этих целей достигнуть, у нас уже был опыт «выращивания» разработчиков из совсем зеленых и неопытных. Продиктована такая практика была, опять же «проблемой маленького города» — брали новичка, включали его в команду к опытным разработчикам (у нас Scrum), постепенно повышали сложность выдаваемых ему задач.

Идея

Из всего целеполагания появилось логичное решение: провести студенческую олимпиаду по веб-программированию. Межуниверситетскую, без жестких требований к участникам — это может быть любой студент или школьник. Сразу скажу, что олимпиаду уже провели дважды, в 2013-ом и 2014-ом, так что отчет о том, как это делалось будет «сборным» из этих двух опытов. Итак, что было сделано во время подготовки к олимпиаде:

  • Мы связались со знакомым прогрессивным преподавателем из госуниверситета (он курирует местный ИТ-центр). Он здорово помогал обойти разные «тонкости» системы образования.
  • Вместе распланировали, как будем доносить информацию до студентов. Работа с преподавателями, к слову, могла принести как неоценимую пользу, так и изрядный геморрой (как выяснилось, не все преподаватели видят в таких мероприятиях пользу для самих себя и могут запросто стать помехой).
  • Определились со временем проведения олимпиады: это будет март-апрель. Время сессий и защит еще не подошло, многие определяются с местом практики.
  • Разработали концепцию олимпиады: будет два тура — заочный (конкурс сайтов, нужно разработать и показать сайт с рассказом о себе) и очный (решение алгоритмических задач на любом привычном языке). Таким образом, сильнейшие выявлялись и по «уму и сообразительности», и по прокачанности именно в веб-разработке.
  • Придумали название — Hot Code (что забавно, через пару месяцев в Киеве пройдет конференция с аналогичным названием). Сделали листовки для привлечения внимания в стенах универа и запустили промо-сайт олимпиады, с формой регистрации.
  • Выделили место на своем хостинге для сайтов конкурсантов — всем пожелавшим принять участие выдавали доступы. Запланировали план публикаций в местных СМИ. Со стороны университета подключилась PR-служба — распространяя информацию об олимпиаде в социальных сетях.

Машина была запущена, первое время нам оставалось только принимать конкурсные сайты (к слову, была пара почти профессиональных, что всех нас порадовало). Следующий тур — решение задач. Кому интересно, можете порешать, вот один из примеров ;)


Минное поле

Плоское игровое поле разделено на смежные ячейки (квадраты), некоторые из которых «заминированы»; количество «заминированных» ячеек известно. Целью игры является открытие всех ячеек, не содержащих мины.

Игрок открывает ячейки, стараясь не открыть ячейку с миной. Открыв ячейку с миной, он проигрывает. Мины расставляются из заранее подготовленного файла. Если под открытой ячейкой мины нет, то в ней появляется число, показывающее, сколько ячеек, соседствующих с только что открытой, «заминировано». Если под соседними ячейками тоже нет мин, то открывается некоторая «не заминированная» область до ячеек, в которых есть цифры. Открыв все «не заминированные» ячейки, игрок выигрывает.

Входной файл [input.txt]

Входной файл в первой строке содержит два числа, M — ширину, N — высоту, через пробел (максимум 50 50). Далее идет M строк. Каждая строка содержит N символов. Символы могут быть 0 (нет мины) и 1 (заминировано).

[output.txt]
5 5
0 0 0 0 0
1 0 0 0 1
0 1 0 1 0
0 1 1 0 0
1 1 0 1 1

Кстати, о призах. Олимпиада, естественно, не на голом энтузиазме:

Кроме материальных ценностей мы предлагали пройти стажировку в студии. Так год назад, в 2013-ом, мы пригласили 8 студентов, из них согласились четверо, из них трое зачислены в штат и работают по сей день.

Вполне оправдывающая ожидания статистика.

Сейчас

В данный момент победители 2014-го года награждены, приглашения отправлены — ждем встречи с новыми падаванами. А опыт довольно хороший, если надумаете проводить — уточняйте, что интересно, постараемся подсказать.


 

Что еще почитать по этой теме

Аттеншн! Начинаем новый сезон стажировок 2016
Сибирикс
07 Апреля 2016
Аттеншн! Начинаем новый сезон стажировок 2016
Лето близко. Значит, мы открываем третий сезон массовых стажировок.
Стажировки. День первый. Карта компетенции
Владимир Завертайлов
18 Апреля 2014

Я уже писал, как и зачем мы провели студенческую олимпиаду. Если хватит времени и сил — за это лето попробую в деталях рассказать, как именно у нас проходят стажировки. В этом году мы решили сделать их более системными: дохера теории, очень много практики, постоянные тесты на усвоенный материал и пристальное наставничество опытным (но суровым) разработчиком.

Берем на стажировку студентов-программистов
Роман Чигирёв
11 Декабря 2013

Мы с удовольствием взяли бы еще одного молодца или девицу в команду веб-разработки. Сначала на позицию стажера, конечно, а потом — традиционно, как себя покажете.

У вас есть проект?

Давайте обсудим его. Продумаем. И сделаем!

Заказать клёвый проект
Заявка отправлена
Спасибо, ваша заявка отправлена. Эксперт студии Сибирикс свяжется с вами в ближайшее время для уточнения подробностей.