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