![](https://habrastorage.org/getpro/habr/post_images/aeb/f83/f1a/aebf83f1aa640b627535c08343f5e545.jpg)
Так получилось, что в своем регионе и своей отрасли (веб-разработка) наша студия лидирует, вот уже много лет подряд. Это вовсе не для красного словца написано, просто такое положение накладывает определенную ответственность: тем молодым ребятам, которые хотят заниматься вебом, нужно помогать проявить себя.
И вместе с этим есть закономерный практический интерес — когда студия растет, ей становится нужно больше рук и голов, а эти самые ребята могли бы стать ими. Конечно, если захотели бы сами, мы никого не принуждаем.
У нас есть вполне себе трезвое осознание того, что в Барнауле полностью готовых к употреблению специалистов нужного нам уровня — просто нет. Вернее, они есть, но все где-то уже работают. Поэтому один из мотивов провести олимпиаду — выявить свободные светлые умы.
Проблемы
Как минимум две главные проблемы мешают вебу как отрасли развиваться:
Первая, глобальная. У тех, кто обучается на ИТ-специальностях зачастую нет нормальных прикладных знаний, данных преподавателями. Очень многие нынешние PHP-разработчики — самоучки.
Вторая, локальная. Называется «проблема редких кадров в маленьком городе». Многие бегут из города, другие — работают в конторках, где сложно раскрыть потенциал, но всё равно остаются сидеть ровно (потому что податься особо некуда).
Теперь — к вытекающим отсюда целям.
Цели
- Простимулировать отрасль в целом, заставить молодых программистов посмотреть в сторону веба, создать положительный ореол.
- Найти желающих развиваться в этом направлении, предложить им возможность для получения практических навыков.
База
К моменту, когда мы для себя решили развернуть активность, которая бы помогла этих целей достигнуть, у нас уже был опыт «выращивания» разработчиков из совсем зеленых и неопытных. Продиктована такая практика была, опять же «проблемой маленького города» — брали новичка, включали его в команду к опытным разработчикам (у нас Scrum), постепенно повышали сложность выдаваемых ему задач.
Идея
Из всего целеполагания появилось логичное решение: провести студенческую олимпиаду по веб-программированию. Межуниверситетскую, без жестких требований к участникам — это может быть любой студент или школьник.
Сразу скажу, что олимпиаду уже провели дважды, в 2013-ом и 2014-ом, так что отчет о том, как это делалось будет «сборным» из этих двух опытов.
Итак, что было сделано во время подготовки к олимпиаде:
- Мы связались со знакомым прогрессивным преподавателем из госуниверситета (он курирует местный ИТ-центр). Он здорово помогал обойти разные «тонкости» системы образования.
- Вместе распланировали, как будем доносить информацию до студентов. Работа с преподавателями, к слову, могла принести как неоценимую пользу, так и изрядный геморрой (как выяснилось, не все преподаватели видят в таких мероприятиях пользу для самих себя и могут запросто стать помехой).
- Определились со временем проведения олимпиады: это будет март-апрель. Время сессий и защит еще не подошло, многие определяются с местом практики.
- Разработали концепцию олимпиады: будет два тура — заочный (конкурс сайтов, нужно разработать и показать сайт с рассказом о себе) и очный (решение алгоритмических задач на любом привычном языке). Таким образом, сильнейшие выявлялись и по «уму и сообразительности», и по прокачанности именно в веб-разработке.
- Придумали название — Hot Code (что забавно, через пару месяцев в Киеве пройдет конференция с аналогичным названием). Сделали листовки для привлечения внимания в стенах универа и запустили промо-сайт олимпиады, с формой регистрации.
- Выделили место на своем хостинге для сайтов конкурсантов — всем пожелавшим принять участие выдавали доступы.
Запланировали план публикаций в местных СМИ. Со стороны университета подключилась PR-служба — распространяя информацию об олимпиаде в социальных сетях.
Машина была запущена, первое время нам оставалось только принимать конкурсные сайты (к слову, была пара почти профессиональных, что всех нас порадовало).
Следующий тур — решение задач. Кому интересно, можете порешать, вот один из примеров ;)
Минное поле
![](https://habrastorage.org/getpro/habr/post_images/66c/9f8/cd5/66c9f8cd523a4945199ce49542fa0983.jpg)
Плоское игровое поле разделено на смежные ячейки (квадраты), некоторые из которых «заминированы»; количество «заминированных» ячеек известно. Целью игры является открытие всех ячеек, не содержащих мины.
Игрок открывает ячейки, стараясь не открыть ячейку с миной. Открыв ячейку с миной, он проигрывает.
Мины расставляются из заранее подготовленного файла. Если под открытой ячейкой мины нет, то в ней появляется число, показывающее, сколько ячеек, соседствующих с только что открытой, «заминировано». Если под соседними ячейками тоже нет мин, то открывается некоторая «не заминированная» область до ячеек, в которых есть цифры. Открыв все «не заминированные» ячейки, игрок выигрывает.
Входной файл [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 |
Кстати, о призах. Олимпиада, естественно, не на голом энтузиазме:
![](https://habrastorage.org/getpro/habr/post_images/d77/5e1/822/d775e1822bafc8fa1a24d07ca088b244.png)
Кроме материальных ценностей мы предлагали пройти стажировку в студии. Так год назад, в 2013-ом, мы пригласили 8 студентов, из них согласились четверо, из них трое зачислены в штат и работают по сей день.
![](https://habrastorage.org/getpro/habr/post_images/e31/df8/98e/e31df898eac5e6ea9f775f08af4165ac.png)
Вполне оправдывающая ожидания статистика.
Сейчас
В данный момент победители 2014-го года награждены, приглашения отправлены — ждем встречи с новыми падаванами. А опыт довольно хороший, если надумаете проводить — уточняйте, что интересно, постараемся подсказать.