Этим летом уже восьмая Летняя школа НГУ-Parallels завершила свою работу. Компания Parallels (ранее SWsoft) – один из первых партнеров НГУ и факультета информационных технологий. За восемь лет в работе Летней школы приняли участие студенты НГУ, СибГУТИ и НГТУ.
Корреспондент пресс-службы НГУ попытался понять, как устроена работа школы, и провел один день вместе с ребятами в лаборатории НГУ-Parallels.
Когда приходишь в лабораторию НГУ-Parallels, сразу бросается в глаза большое количество компьютеров, ноутбуков, проводов. Когда в лабораторию приходят студенты, которые учатся в Летней школе, она наполняется постоянным непрерывающимся шумом, таким как гудение системного блока. Бывают минуты тишины, когда каждый занят своим делом: что-то ищет, рисует картинки, поправляет анимацию, «борется с числами». И в такой тишине слышится только голос научного руководителя. Сергей Федорович Кренделев - один из руководителей лаборатории, доцент ФИТ НГУ, работает со студентами давно, знает, чего им не хватает и чему необходимо научиться. Многие новички Летней школы так и заявляют, что пришли в школу по рекомендации Сергея Федоровича. Сам он отмечает, что лаборатория НГУ-Parallels старается привлечь студентов с самого раннего возраста, то есть с 1-2-го курсов. Большинство совместных лабораторий и компаний обычно берут на стажировку старшекурсников, когда студенты много чего уже умеют. В последние годы многие компании стали активно развивать программы стажировок, различных школ становится всё больше. «К нам приходят совсем молодые, с ними интересней. Они больше нас удивляют, например. Думаешь с самого начала о каждом из младшекурсников одно, а они добиваются совершенно иных результатов. Наверное, потому, что они пока свободны в своём развитии, не зависят от тематики бакалаврской дипломной работы. На них не висит «надо». Делают, что хотят, в рамках некоего плана, которые сами же и составляют, я только координирую и помогаю им. Поэтому и фантазия у них развита лучше», - замечает Сергей Федорович.
И тут же просит показать какую-нибудь почти готовую игру, разработанную студентами. Она похожа на шахматы, только конь не сбивает пешки, а зачем-то хищно преследует тыкву. В общем, всё не так просто.
Видно, что Сергей Федорович гордится своими воспитанниками. Рассказывает о том, что все игры связаны с математикой, что в основе каждой – научная модель. Это потом участники проекта придумывают визуализацию, сами пишут музыку, создают анимацию, так что скучная с виду математическая теория может получить совершенно новую жизнь. При этом опыт лаборатории показывает: почти каждый первокурсник хотел бы попробовать написать компьютерную игру. В процессе разработки игрушек рождаются серьёзные исследования и более сложные программные проекты, которые даже становятся потом продуктами компании, а стажёры лаборатории переходят на позиции интернов и сотрудников в Parallels.
Каждый год для Летней школы появляются новые задачи. Этим летом продолжается бум популярности приложений для мобильных устройств. По словам Сергея Федоровича, главная сложность разработки игр состоит в том, что у мобильных телефонов разных фирм разная "начинка", и игры должны быть адаптированы под любое устройство. С помощью популярной библиотеки разработки мобильных игр Marmalade SDK, можно писать программы для разных мобильных устройств. Но Marmalade надо еще изучить. Почти все участники школы видели программу в первый раз и первые недели тратили на то, чтобы ее освоить. Максимальной виртуозности достигли те, кто собрал из своих проектов коллективный труд – одну игровую систему.
А, впрочем, всем, кто прошел конкурсный отбор в Летнюю школу, такие задачи будут посильны. Они умеют учиться, настойчивы, знают, чего хотят. Сергей Федорович заметил, что успеваемость должна быть достаточно высокой, что троечников в лабораторию бесполезно брать. Они не хотят учиться, довольны малыми результатами.
«Вот в итоге у нас и получается много выпускников с красным дипломом», - подводит итог С. Ф. Кренделев, а потом почти философски говорит: «Мой принцип работы такой: главное, чтобы человек хотел учиться. А если он хочет, то всему можно научить». Потом предлагает познакомить с ещё одним научным руководителем Летней школы, доцентом Дмитрием Валентиновичем Иртеговым, а также с лидерами студенческих команд.
Дмитрий Валентинович заведует экспериментальной лабораторией УНЦ ФИТ НГУ, автор учебников по операционным системам и сетевым технологиям, ведет и разрабатывает новые проекты. Он был самым первым научным руководителем в лаборатории. Под руководством Д. В. Иртегова создаётся один из крупнейших проектов лаборатории - NSUts (система автоматического тестирования для олимпиад по программированию). Д. В. Иртегов рассказал, что в команду, которая непосредственно работает над проектом, входят трое магистрантов, третьекурсница, младшекурсники с ММФ и ФИТ: Александр Воронков, Сергей Черненок, Ольга Ипполитова, Катя Конышева, Ярослав Колбин, Григорий Белошапко, Сергей Шеломенцев. Система тестирования уже много лет использовалась на Открытой Всесибирской олимпиаде им. И. В. Поттосина и школьных олимпиадах.
«Сейчас мы пытаемся сделать такую версию системы тестирования, чтобы ее могли использовать в других вузах, школах. Главное, чтобы могли в любой школе или вузе сами развернуть всю эту систему и иметь свой собственный сервер для тестирования», - сообщает о планах Дмитрий Валентинович.
История создания этой программы непростая. Первую версию написал сам Д.В. Иртегов в 1997 году, но теперь от этого кода почти ничего не осталось. Позже большая часть программы была написана в 2001-2002 годах, когда студент ФИТ НГУ Евгений Четвертаков, член сборной команды по программированию, участник чемпионатов мира ACM-ICPC в одиночку написал её. Шло время, Евгений закончил ФИТ НГУ и уехал работать в Сингапур, а система отказывалась работать без автора, морально устарела, поэтому приняли решение организовать проект по развитию и поддержке системы, но архитектуру кода менять не стали. С тех пор команда, работавшая над тестированием, постоянно менялась. Часть разработчиков-стажёров ушла на работу в Parallels, например, предыдущий лидер проекта Александр Киров, выпускник ФФ НГУ. Дмитрий Валентинович рассказал, что многие олимпиадники принимали горячее участие в судьбе программы, латали ее и совершенствовали. Так же он обратил внимание на принципы работы систем, о которых почти ни один пользователь не думает, нажимая на «пуск»: «Любой программный продукт – это не вещь, это процесс. Нельзя написать сложную программу так, чтобы она просто работала. Новые версии операционных систем, какие-то обновления возникают каждый год, так что программу надо улучшать, а не только исправлять ошибки. Новые требования, новые платформы – новые ошибки».
От новичка, которому только предстоит понять инструментарий, ждать большого вклада не стоит. Д.В. Иртегов признался, что после первого курса студенты еще программировать толком не умеют, технологий не знают, но главное, у них есть способность и желание к самообучению. Умение организовать процесс разработки проекта – это дело все-таки для студентов третьего-четвертого курса. Конечно, проектов в лаборатории НГУ-Parallels не два и не три. Студенческие команды периодически обновляются: кто-то уходит на работу в компанию, кого-то перестает интересовать старый проект, а в магистратуре нужны задачи посложней.
Один из впечатляющих студенческих проектов, по словам Дмитрия Валентиновича, это система тестирования. Второй – HRSoft, система оценки персонала компании Parallels. Он активно используется во всех R&D офисах Parallels вот уже три года, в том числе внедряется в отделах продаж компании в США и Европе.
В лаборатории есть нереализованные идеи проектов, результаты которых могли бы пригодиться почти каждому. Но идей проектов больше, чем студентов. Д. В. Иртегов рассказал о «законсервированных» “Mobile Morse” и системе распределенного хранения: «“Mobile Morse” – это ввод текста в мобильный телефон при помощи «морзянки» (азбуки Морзе). Пока до рабочего прототипа не довели, но сама идея хороша: полуавтоматическим ключом текст набирается быстрее, чем на клавиатуре телефонов. А система распределенного хранения – это когда запись разбивается на n кусков так, чтобы по любым k (k<N) записям можно будет восстановить исходную запись. Использовать такой способ можно, к примеру, для резервного копирования. Представим, что у нас есть 16 компьютеров. Мы разбиваем образ жесткого диска на 16 частей, так что по любым 5 можно будет его восстановить, и раскладываем его на остальные рабочие станции. Там достаточно забавная математика и инфраструктура для поиска всех пяти оставшихся компьютеров в техническом отношении. Очень жаль, что последнее время никак не можем найти студентов, которым было бы интересно заняться этими идеями», – рассказывает Дмитрий Валентинович.
Но вернемся к компьютерным играм, над которыми работают участники Летней школы. Довольно забавно смотреть на сам процесс разработки. Кто-то уже сделал свою работу и установил игру другой команды, а теперь пытается побить рекорд товарищей, заодно проверив игру на ошибки. Например, в лаборатории можно услышать такой диалог:
- Почему у меня не пропадают кристаллы?
- А ты перезагрузи.
- Не хочу я перезагружать, я заново хочу запустить.
- А «овощи» у нас готовы?
- Вот ты сыграй миллион раз, тогда и заново будет.
- Не хочу я миллион, у меня дела и поинтереснее есть!
- Степан, отвлекись!
- Сейчас! Я почти выиграл! Сейчас!
Кто-то из студентов консультируется с Сергеем Федоровичем:
- Нет, я могу рассчитать, если играть будет человек.
- А если не просчитаешь? – добродушно усмехается Сергей Федорович.
- Но не могу же я всех просчитать? – студент какое-то время думает, молчит.
Кренделев все так же добродушно выдает сентенцию:
- Как говорится в математике, самое интересное явление – аномальное.
Как бы то ни было, а с лидерами игровых проектов тоже нужно поговорить. Причем почти все лидеры – такие же новички, как и вся команда. И почти все - студенты первого курса ФИТ НГУ.
Сазонова Полина возглавляет проект «Мультипортал 51». Это игра-лабиринт, где запущено несколько шариков разных цветов и есть порталы. Цель – прогнать шарики через лабиринт до выхода и попасть в портал одного цвета с шариком, чтобы он исчез. Если попадаешь в «чужой», то выскакивают два шарика.
В обязанности Полины входила разработка графического интерфейса, организация работы, руководство командой и выступление на отчетной конференции с презентацией проекта. В ее команде Александр Ильин разрабатывал логику игры, Анна Лучкина занималась разработкой лабиринта, визуализацией и звуковыми эффектами.
Трофимович Степан – такой же лидер, как и Полина. Он занимался разработкой искусственного интеллекта в игре, похожей на “Links”: есть поле, и есть шарики, которые надо построить в ряд минимум по три штуки одного цвета. Когда комбинация складывается, шарики удаляются с поля. Цель игры – набрать больше очков. Степан заметил, что трудно было освоить инструментарий: «Первые дней пять мы вообще не знали, как работать с Marmalade SDK, пытались разобраться, чтобы вообще что-то создать. По ней нет учебников, кроме внутреннего “help ” руководства. Больше никаких источников у нас не было».
Со Степаном работали Кирилл Шатилов, Никита Крутиков и Елена Горбунова. Кирилл собирал все наработки товарищей в один проект, Никита занимался графикой и разработкой правил игры. Елена разбиралась с анимацией и делала функции: «Мне интересно программирование, разработка игр, и Летняя школа НГУ-Parallels, на мой взгляд, – наилучшее решение для меня. Я научилась использовать Marmalade SDK, познакомилась с основами объектно-ориентированного программирования на C++ и приобрела опыт работы в команде», - рассказала она. Если у ребят и были трудности в начале, то сейчас они сработались, сдружились.
Теймуров Максим – еще один лидер, и у него одна из самых крупных команд в школе – семь человек. «Раньше моя программистская практика ограничивалась созданием приложений, которые я писал в одиночку. Они, естественно, не были такими масштабными, как наши проекты, и возможности были очень ограничены, - рассказывает Максим. - В Летней школе появились огромные возможности, я познакомился с людьми, с которыми можно работать и которые могут чему-то научить меня. Яркий пример – Сергей Федорович, который рассказывает не о программировании, а о самом мире IT, как работают компании. Потом лекции Сергея Олейникова были по-настоящему интересными, потому что он делится опытом реальной работы в компании».
Трубицына Катя входит в команду Максима, и она активно генерировала матрицы. Чтобы вероятность выпадения одного числа в строчке или в столбце была не меньше ½. Чтобы в строчке было минимум два одинаковых числа. Один игрок называет строку, другой – столбец, тем самым продвигая свою фишку и фишку своего врага на неопределенное количество клеток с неопределенным содержанием. Все в лучших традициях настольных игр, только вместо кубика – таблица. Помимо основной задачи она для себя успела освоить некоторые моменты разработки графического интерфейса.
Кроме нее в команде образовался «отдел математиков» - Анна Бунькова и Александр Белашов – студенты ММФ. Вера Егорова – художник, Дарья Чечулина – переводчик и разработчик меню, Сергей Бобренок решал технические проблемы.
Летняя школа, по расчетам Parallels (и с этим мнением большинство педагогов согласно) – самая продуктивная пора. Как рассказала заместитель декана ФИТ НГУ Елена Викторовна Никитина, это восемь часов практики в день с понедельника по пятницу на протяжении пяти недель: «Дисциплина в какой-то мере более жесткая, чем в компании Parallels, надо вовремя приходить, уходить (в компании график более гибкий), каждый день писать отчеты. Перед студентами ставят задачи научные руководители, и ребята выбирают, какая из них интереснее, потому что идей проектов гораздо больше, чем студентов».
Заместитель декана отметила, что на Летней школе у ребят больше времени на реализацию проекта. Если студент на старших курсах тратит около 20 часов в неделю на стажировку, прерываясь на экзамены (сессия – это святое), не всегда имея возможность скоординировать свою работу над проектом с другими членами команды, пишет дипломную работу по тематике проекта (так удобнее, чтобы не распыляться), то в Летней школе он успевает сделать то же самое за месяц с гораздо большей эффективностью. В Летней школе 80 % учебного процесса – практика. Хотя были, конечно, лекции, семинары и тренинги с участием сотрудников компании.
В этом году интерн компании Parallels и лидер проекта HRSoft Владимир Лихтанский, магистрант ФФ НГУ, по своей инициативе подготовил и провёл тренинги, где ребята друг с другом познакомились и многому научились, что позволило им успешнее работать в команде и над проектами. Сергей Олейников, директор по разработке компании Parallels, подготовил цикл лекций по тестированию. HR-отдел провел по просьбе стажеров Летней школы семинар, на котором рассказали, как надо правильно писать резюме, проходить собеседование.
«Прошли времена, когда IT- специалист могв одиночку написать крупный программный продукт, – рассказывает Елена Викторовна. – Поэтому если ребята не умеют работать с совершенно разными специалистами, концентрировать общие усилия в один продукт, то им не стать успешными. Эффективность работы в команде в течение семестра очень снижается, а в Летней школе – достигает пика».
Первая студенческая лаборатория Parallels (тогда SWsoft) открылась в МФТИ (Московском физико-техническом институте), так как основатель компании Сергей Белоусов закончил этот университет. Вторая немного позднее прочно обосновалась в НГУ. Третья опять-таки в Москве, на базе ВМК МГУ. Четвертая скоро откроется в Санкт-Петербурге.
Как рассказывает Е. В. Никитина планировалось, что стажировку в лаборатории будет проходить в год около 50 студентов, в дальнейшем 5-10 % из них – могут стать потенциальными сотрудниками компании Parallels. Лаборатория (соответственно, и Летняя школа) считается межфакультетской и межвузовской. Все студенты, которые связаны с обучением программированию, IT-технологиями, информатикой, могут прийти в лабораторию, независимо от того, на каком факультете или каком университете они учатся. Традиционно в лабораторию на стажировку приходят не только студенты НГУ, но и студенты из СибГУТи. Недавно к ним присоединились студенты из НГТУ.
Parallels готовит кадры для себя, но получается, что совершенно сознательно и для других компаний и институтов СО РАН тоже. Известно, что выпускники лаборатории в дальнейшем работают в Intel, Google, Alawar, СофтЛаб-НСК и многих других компаниях, создают свой собственный бизнес. При этом студенту-стажеру лаборатории НГУ-Parallels - предоставляется полная свобода выбора места работы: он не берет на себя обязательства прийти на работу в компанию Parallels, но при этом имеет возможности подготовить дипломную работу, поступить интерном в компанию, обучаться программированию, совершенствовать свое мастерство именно в той сфере интересов, какую он выберет, получать стипендию от компании. И это нормально, если студент переходит в другие школы, меняет проекты и компании. Основная задача лаборатории - не только подготовить студентов, но суметь заинтересовать лучших из лучших, чтобы они захотели после выпуска прийти на работу в Parallels.
«От нас бывает, уходят студенты - по разным причинам. Например, студенту стало не интересно, потому что лаборатория не охватывает все спектры IT-индустрии. Кому-то нравится, например, писать игры и больше ничто его не привлекает. У нас есть игры в качестве первоначального этапа обучения, но дальше им внимания не уделяется. Из этих учебных проектов потом вырастают достаточно серьезные продукты, но коммерциализация игр не происходит, хотя - как знать... Бывает и так, что кто-то уходит работать в научно-исследовательский институт СО РАН, где ему стипендию, как Parallels, не платят, что свидетельствует о поиске своего направления, своей специализации. Сейчас существует даже тенденция, когда ребята пытаются побывать во многих школах. Например, есть в НГУ совместная лаборатория Intel, студенты иногда переходят туда. Случается, что к нам приходят стажеры Intel. Мы не чувствуем себя соперниками, скорее коллегами, потому что многие компании сейчас готовят кадры, вкладывая в подготовку студентов свои опыт, знания и деньги, чтобы обеспечить более широкий выбор IT-специалистов на рынке труда. Чем больше высококвалифицированных специалистов самых различных профилей, тем больше шанс выбрать нужных сотрудников для компании. Они должны уметь быстро осваивать новые технологии, иметь достаточный профессиональный опыт. Если раньше компании хотели получить специалиста исключительно с опытом работы в коммерческом программировании, что было почти невозможно для выпускника, то теперь они готовы заниматься со студентом, обеспечивать его получением этого опыта», - объясняет Елена Викторовна.
Хорошие IT-шники в современном мире просто незаменимы. И их все еще не хватает в Сибирском регионе. Может быть, Parallels, Intel и другие компании смогут построить базу для успешного развития. Может быть, те студенты, которые сегодня только учатся создавать игры для мобильного телефона, завтра смогут построить высокотехнологичный информационный мир.
Подготовила Анна Калинина