Участие в Google Summer of Code

в 20:54, , рубрики: Google, gsoc, open source, метки: ,

Приветствую всех!

Думаю, многие слышали о студенческой программе Google под названием Google Summer of Code (GSoC). Если кратко, то суть программы заключается в следующем: проекты с открытым исходным кодом подают заявки, Google их рассматривает и выбирает определённое количество для участия, а затем к участию отбираются студенты силами самих проектов. Естественно, людей надо как-то мотивировать к участию, поэтому в течение тех 3-х летних месяцев, в течение которых студент будет работать, ему выплачивается стипендия в $5000 (в случае удачного завершения работы), его руководителю — $500. Лето уже близится, а это значит, что студентам скоро можно будет подавать заявки на GSoC 2012. Так как я не помню, чтобы на Хабре делились опытом участия в данном мероприятии, я решил это исправить и расскажу подробно о том, что необходимо для подачи заявки, как ее подавать и о дальнейшем участии. Буду рассказывать на примере своего участия в 2010 году. Кому интересно — прошу под кат.

Условия участия

Первым делом, что необходимо сделать — это ознакомиться с основными условиями участия в проекте. Основные вопросы и порядок прохождения проекта освещены по ссылке, которую я привёл выше. Основные условия для участников:

  • участник должен быть студентом (или аспирантом) на момент оглашения принятых к участию, т.е. возможен вариант, что к концу проекта вы уже не будете студентом (в этом году студенты подают заявления на участие с 26 марта по 6 апреля);
  • помимо этого, вам должно быть как минимум 18 лет.

Как видите, условия достаточно просты. Поэтому переходим к следующему этапу.

Выбор организации (проекта)

Следующее, что вам необходимо сделать — это выбрать проект (или организацию), от имени которой вы хотите участвовать (и на которую вы будете работать). Я в своё время выбрал GNOME. Обычно у многих (особенно больших) проектов на сайте есть уже какие-то списки идей, который они хотели бы реализовать в рамках данной программы. Например, вот так список GNOME выглядел в 2010 году, сейчас новый список доступен здесь. Я не стал долго думать и взялся за ту идею, которую разработчики хотели бы реализовать в первую очередь (плагин для Totem, обеспечивает поддержку частей в видеофайлах вне зависимости от формата, он же Totem chapters plugin в списке). Но вовсе не обязательно выбирать идеи из имеющегося списка — вы можете сами их предлагать проекту, и, зачастую, это больше приветствуется.

Подготовка к подаче заявления

После того, как вы выбрали проект для участия, необходимо подготовиться к подаче заявления. Так уж сложилось, что количество желающих студентов со всего мира достаточно велико (по моим оценкам в 2010 году было 4-5 человек на место), а отобрать надо порядка 1000 человек. И так как количество студентов от каждого проекта ограничено, то у каждого проекта есть свои условия для подачи заявления. В большинстве случаев это обычная проверка на то, что вы действительно умеете программировать и общаться с людьми (например, исправить какой-нибудь баг), а также хоть немного знакомы с теми инструментами, которые используются в проекте при разработке. У GNOME в свое время было достаточно простое условие: исправить любой баг в их багзилле. Это достаточно легко выполняется за день-два, поэтому не бойтесь с чего-то начинать. Я написал патч для fileroller (архиватор GNOME), а позднее и другой патч для поддержки архивов lrzip. Причём первый так и не был принят, а вот второй приняли. Постарайтесь заранее ознакомиться с тем, как ведется разработка в проекте, какие инструменты используется — их знание будет безусловным (но не решающим) плюсом в вашу пользу при выборе из нескольких участников.
Не бойтесь идти на контакт с участниками проекта до подачи заявления: во-первых, выясните насколько ваша идея актуальна, а во-вторых, о вас уже будут знать в проекте (по крайней мере, о вашем стремлении).
Также ознакомьтесь с формой подачи заявления, у каждого проекта она может отличаться, спросите об этом у руководителей. Для примера, у GNOME было так.

Подача заявления

Собственно, процедура подачи заявления достаточно проста. Напишите само заявления по требуемому шаблону (пример моего заявления) и до момента окончания приёма отправьте на рассмотрение через сайт Google (смотрите самую первую ссылку в тексте, там можно зарегистрироваться для участия). Большим плюсом будет, если вы в заявлении опишите примерный план ваших работ на лето — это помогает оценить объём работ и намерения участника. Главное при отправке заявления правильно выберите свою организацию из списка (если выбранная вами организация, конечно же, была допущена к участию). В заявлении постарайтесь показать, что именно вы достойны участия, потому что на ваше место могут претендовать несколько участников — выбор за самой организацией. После этого вам остаётся только ждать результатов.

Вас выбрали к участию

Если ваше заявление прошло — поздравляю! На ваш почтовый ящик должно прийти подтверждение от Google. Кстати, было забавно, что у некоторых людей GMail посчитал это письмо спамом, и была у некоторых лёгкая паника. Но радоваться ещё рано — впереди вам предстоит большая работа.
Вот что вам надо сделать в первую очередь:

  • вы будете подписаны на внутреннюю рассылку Google для участников GSoC — внимательно ознакомьтесь с правилами поведения, там же вас будут информировать о всех новостях и о том, что нужно сделать, где какие формы заполнить, главное правило — не пишите всякую чепуху и спам в рассылку, сперва внимательно прочитайте FAQ, потому что студентов — много, а сотрудников Google — всего несколько человек;
  • пришло время предоставить в Google подтверждение вашего студенчества — для этого возьмите в университете справку о том, что являетесь студентом (справка на русском языке);
  • на своей персональной странице GSoC загрузите специальную форму о том, что вы согласны с правилами участия, распечатайте и подпишите её ручкой, затем отсканируйте (именно отсканируйте);
  • когда в рассылке будут оглашены сроки подачи подтверждений студенчества — отправьте по указанному адресу копию вашей справки (лучше снабдить её переводом на английский — это ускорит процесс проверки) вместе со сканом подписанного соглашения, и не спрашивайте потом в рассылке о том, проверили ли ваши документы — если вам ничего не пишут, то либо все устраивает, либо проверяют (лично мне пришло письмо с тем, что документы приняты и с ними всё в порядке).

Как только ваши документы приняты — вы становитесь полноправным участником GSoC, а в качестве подарка Google вышлет вам вступительный пакет участника (в 2010 году в него входило: поздравительное письмо, блокнот, ручка, наклейка на машину, дебетовая карточка Citibank для зачисления денег). Инструкция по активации карты прилагается. Деньги можно снимать в любом банкомате Citi. Если мне не изменяет память, то на карте были стартовые $500. Совет: снимайте деньги как можно скорее после их зачисления, так как в прошлом году были случаи взлома Citi, и студенты оставались без денег.

Начало работы над проектом

Теперь настало время поговорить со своим наставником от организации (на каждого студента организация выделяет наставника), а также с участниками самой организации. Подпишитесь на их рассылку, поприветствуйте всех и расскажите о себе и своих планах. Чем лучше вы наладите контакт на начальном этапе, тем легче будет вам работать дальше. На это у вас есть порядка месяца (собственно, на это месяц и даётся). Почитайте о правилах для участников (в каждой организации они свои). Например, в GNOME были следующие правила:

  • каждый участник раз в неделю отписывается о том, что он сделал во внутреннюю рассылку, чтобы администраторы от организации видели ход работы;
  • каждый участник заводит для своего проекта страницу на wiki и заполняет её информацией о проекте, о текущем ходе дел, об итогах работы в конце и другую полезную информацию (пример моей страницы)
  • блог, в котором описывается ход работы, заводится по желанию, но плюс в том, что он добавляется в аггрегатор всех блогов разработчиков GNOME, и о вашей работе узнает много людей, как и о вас самих, среди участников организации (пример моего блога с недельными отчётами);
  • студентов спонсировали на поездку на GUADEC (европейская конференция GNOME), где можно познакомиться с основными разработчиками, а также вам даётся право на свой доклад о вашей работе;
  • по завершении работы вы должны сделать сводку того, что было сделано, и то, чем вы будете заниматься в дальнейшем.

На первом пункте остановлю внимание поподробнее. Дело в том, что в середине лета вы проходите так называемый midterm evaluation, то есть справляетесь ли вы со своей работой или нет. Решает это организация, на которую вы работаете, и выносит она это решение на основе того, что скажет о вас руководитель, но сама организация может вынести иное решение. Поэтому ваша работа должна быть на виду, о ней должны знать. Если у вас сессия — предупредите в рассылке об этом.

Также в этот вступительный месяц вы можете начать изучать инструменты, которые будете использовать в работе, смотреть кодовую базу, думать о возможных решениях. Никто не запрещает вам начать писать код уже сейчас (я так и делал). В общем, не теряйте этот месяц зря.

Три месяца работы

Собственно, где-то с конца мая и начинаются три основных рабочих месяца. Старайтесь изучить как можно больше за это время. Не бойтесь спрашивать своего руководителя, даже если вопрос кажется вам глупым. Спрашивайте у сообщества. Вам подскажут как сделать то или иное действие лучше. Планируйте как минимум 4 часа в день на GSoC, а лучше больше. Поэтому если у вас есть основная работа — то участие в GSoC будет не самой лучшей затеей (в том же GNOME несколько проектов были провалены). Главное для вас пройти контрольную точку в середине (на карточку после этого зачислят половину общей суммы), и аналогичную контрольную точку в конце (перечислят остатки денег). Также в случае вашего успешного завершения вы будете обязаны всю свою работу предоставить в виде архива в Google (все ваши патчи, исходники и т.д.) — видимо, для отчётности.

Теперь немного о том, почему не стоит бояться участия. Я, например, перед подачей заявления, вообще не работал с GLib, GObject, GTK+, GStreamer и прочими технологиями GNOME. Я начал активно читать литературу и примеры в первый месяц, пытался что-то написать и отладить. Каждую минуту старался провести с пользой, чтобы взять максимум информации. Читал даже в электричке пока ехал домой. Поэтому я считаю этот месяц очень важным. Вы должны почувствовать проект, чтобы работа шла в удовольствие. В итоге часть знаний пришли до начала работы, часть пришла во время работы. Не бойтесь лезть в код и пробовать — руководитель тоже понимает, что проект для вас новый, и вам нужно время.

Завершение работы

Если вы удачно прошли две контрольный точки, то, как я уже говорил выше, отправляете результаты работы в Google и выбираете размер футболки у себя в профиле. Потому что вам придёт поздравительный пакет (да, ещё один) от Google, в котором в 2010 году была фирменная футболка (тираж которой всего лишь порядка тысячи) и именной сертификат, подтверждающий ваши успехи в GSoC. Думаю, не нужно объяснять, что данный сертификат может сыграть одну из ключевых ролей при приёме на будущую работу (всё-таки у студента с сертификатом от Google шансы на приём повышаются). Ну и просто приятно повесить его в рамку :) Из других очевидных плюсов:

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

Как видите, мотиваторы неплохие. Если понравится — можете продолжить участие в проекте. Для примера, чему я научился за три месяца:

  • GLib/GObject;
  • GTK+;
  • libxml2;
  • форматы CMML и Annodex;
  • OGG/liboggz;
  • GStreamer;
  • формат Matroska/EBML;
  • формат FLAC;
  • git;
  • немного autotools.

Согласитесь, достаточно неплохая летняя практика для студента. Плюс я познакомился со многими людьми. В общем, время у вас ещё есть — думайте, участвуйте, приносите пользу open source.

Автор: passanger2012

Поделиться

* - обязательные к заполнению поля