Пользователь
0,0
рейтинг
16 марта 2012 в 00:54

Разработка → Участие в Google Summer of Code

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

Думаю, многие слышали о студенческой программе 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
карма
24,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (34)

  • 0
    как раз сейчас дописываю второй патч в одну из интересующих меня организаций. первый уже был слит с дефолтной веткой.
    вообще наилучший вариант — это начать общаться с разработчиками и писать патчи еще до мартовского старта программы.
    удивило, что у вас не сильно большой proposal, везде пишут, что чем больше деталей реализации, тем лучше :)
    • 0
      Да я вообще решил участвовать уже перед самым открытием приёма заявок, как-то спонтанно :) По поводу деталей реализации — а как можно знать детали реализации, если у тебя только есть идея (возможно, даже не твоя), ты можешь быть даже не знаком с кодовой базой проекта? А детали реализации (как и свое видение) тебе может наставник уже после подачи заявления рассказать. Я вообще начал с плеера Totem, а закончил работой в GStreamer. Причём последнее я ну никак вообще не предполагал до начала работ. Поэтому главное — не бояться, показать свое желание работать и учиться новому. Я патч за неделю по-моему написал до подачи заявки. Поэтому не зацикливайтесь в заявлении на мелочах реализации — лучше покажите желание работать, потому что для организации важен высокий процент завершенных проектов — от этого зависит их квота на количество студентов в следующем году.
      • 0
        я в прошлом году тоже за неделю до открытия приема только узнал о проекте. в итоге меня не взяли на проект :)
        я имел ввиду, что лучше заранее выбрать идею для реализации, взять исходники проекта, и определить что и где придется писать. возможно, написать какойто код до подачи заявки и показать возможному ментору. в общем, показать организации, что ты действительно в состоянии справиться с проектом и знаешь как это сделать.
        • 0
          Если у вашей организации очень маленькая квота — то да, придется как-то показывать себя. Но писать код самого проекта до вашего принятия — точно не стоит. Лучше тогда будет поговорить с потенциальным руководителем и напрямую спросить, что он хочет увидеть от потенциального студента, показать ему черновик заявки. В любом случае, волшебной таблетки нет — это своего рода лотерея. Выбрать могут любого, даже по половому признаку (я серьезно, в GNOME обычно берут определенный процент девушек). Наверно, лучшей тактикой будет хотя бы за год до подачи заявки выполнять периодически какую-то мелкую, но полезную работу по проекту: переводы, разгребание ерундовых багов (типа опечаток или документации), улучшение документации и т.д. — времени много не надо, а постоянная польза — есть. Ведь одним из факторов принятия того или иного студента является вероятность его дальнейшей работы на благо проекта. Если вы уже что-то делаете — то есть вероятность, что продолжите дальше. А бомбить патчами за неделю-другую до заявки — возможно, не самая лучшая идея. В любом случае, удачи с вашей заявкой!
          • +1
            >я серьезно, в GNOME обычно берут определенный процент девушек
            Значить надо учавствовать в проекте от имени девушки:)
          • 0
            Рекомендация про «не писать код» зависит от проекта. К нам напротив, необходимо сделать хотя бы один простой патч. Иначе как же мы узнаем, что человек вообще программировать умеет, что он может вдумчиво ситать доки, в частости требования к оформлению кода? Ведь нам работу нужно сделать, за которую платит Гугл, а не «тянуть» студента в течение трёх месяцев.
            • 0
              Под «не писать код» я подразумевал код той идеи, которую студент и будет реализовывать. А так много у кого надо хотя бы что-то сделать для подачи заявления.
  • +1
    Согласно официальному календарю проекта список сообществ, участвующих в GSoC 2012 будет объявлен завтра.

    От себя — приглашаю поучаствовать в проектах сообщества NUI Group. Специально для GSoC 2012 была запущена страница, где можно найти информацию как о предыдущих, так и грядущих проектах сообщества.
  • 0
    Спасибо, за статью! Я вот имею желание поучастовать в GSoC в этом году.
    > Большим плюсом будет, если вы в заявлении опишите примерный план ваших работ на лето — это помогает >оценить объём работ и намерения участника.
    Читаю это уже не в 1й раз, но мне до сих пор кажеться немного непонятным то как можно написать более-менее адекватный timeline, не имея опыта работы с проектом (похожими проектами) + возможно реализуя идею предложенную не вами…
    • 0
      Я в посте привел ссылку на мое заявление — посмотрите его, я там описывал свой timeline примерно, именно как его вижу я: какой функционал сколько времени буду делать + что при это по возможности использовать. Да и никто потом от вас требовать четкое выполнение всех пунктов не будет — часто цели могут меняться во время выполнения проекта.
      • 0
        Почитал вашу заявку: тоже вариант:)
        Просто все примеры которые я читал до этого были более сухими и формальными что-ли… И таймланы были соответственно расписаны б/м жестко. Ваш вариант мне импонирует больше. Спасибо!
        Еще один вопрос по поводу организации времени: у меня время до конца мая весьма жестко распределено, но потом я сразу смогу переключится полностью на GSoC. Как вы щитаете: не повлияет ли потеря этого месяцца после accepta заявки, на успешность выполнения проекта?
        • 0
          Если вы уже знакомы с языком программирования проекта, используемыми им библиотеками и другими инструментами, т.е. для вас только неизвестна сама кодовая база проекта — то, в принципе, не повлияет. Главное познакомьтесь с людьми. Если надо читать документацию — то готовьтесь работать больше. Просто будет немного тяжелее вливаться. Люди, вон, во время лета и на GUADEC ездили, и сессии закрывали. Так что все в ваших руках — главное предупреждайте обо всем руководителя своего, чтобы он не думал, что вы шлангуете.
  • +2
    Вопрос команде ReactOS: вы участвуете в этом году?
    • +2
      Почему бы не узнать это у них напрямую, а не тут вопросом человеку, который вроде не имеет отношения к ReactOS?
      Вот что я нашел:
      www.reactos.org/wiki/Google_Summer_of_Code_2012
      • 0
        Планируем участие, жаждем сотрудничества!
  • 0
    Как многократный руководитель проектов GSoC, могу уточнить, что руководитель получает футболку (не всегда своего размера), а не $500. Мы ждём студентов на нашем проекте Apache Openmeetings (список задач).
    • 0
      Вообще-то организация получает за каждого студента $500 — это точно, так было всегда. Другой вопрос в том, что, видимо, у вас их не отдают наставникам студентов, как это делают во многих других организациях. Дело вкуса, так сказать.
      • 0
        А в каких организациях деньги отдают менторам?
        • 0
          Например, в GNOME и Maemo наставники точно получают деньги.
        • 0
          Или, например, NUI Group. Маленький хинт — деньги менторов перечисляются ответсвенному лицу, которое было указано при регистрации сообщества. Задача этого человека — передать эти деньги менторам.
  • +1
    И мы, ScummVM, снова в этом году планируем участвовать. Приходите, в том числе говорим по-русски :)
    • 0
      Нас одобрили, так что ждём заявок от студентов. Если есть какие-нибудь вопросы, пишите.
      • 0
        Реально ли участие если раньше не имел дела со ScummVM? Как увеличить свои шансы на участие в вашем проекте?
        • 0
          Как обычно — начинать работу раньше, предметно разобраться в вопросе, подготовить отличную заявку. Ведь нам нужно доказать, что именно вы сможете сделать эту задачу, и сделать её до конца и правильно, а ещё лучше — остаться в команде по завершению GSoC.

          Частая ошибка студентов — студенческий подход, т.е. прибегать с заявкой в последний день.

          И да, у нас не было пока студентов, знакомых со ScummVM до их участия в GSoC, кроме одного, который остался в команде и работал в рамках программы два года подряд.
  • 0
    На данный момент Google начал публиковать список прошедших сообществ. Желаю всем удачи!
  • 0
    ScummVM — мои поздравления
    • 0
      Спасибо, честно говоря, мало надеялся, всё же уже шестой год нас принимают. Они периодически «подмешивают» новые организации. Возможно, как и в прошлые годы сыграл размер нашего проекта (около 65 разработчиков, 1.3 миллиона строк кода) и популярность (около 8 миллионов загрузок).

      Так что студенты, присоединяйтесь! Мы всегда рады новым разработчикам.
  • 0
    Ура — NUI Group тоже прошла! Ждем заявок от студентов — идеи можно найти здесь
  • 0
    Я студент 2-го курса. Шансы есть?
    • 0
      Быть студентом или аспирантом — требование к допуску в программу. В остальном всё зависит исключительно от того, как вы себя подадите проекту. Так что шансы точно есть ;)
      • 0
        Я имел ввиду уровень знаний. Потяну ли?
        • 0
          Требования у каждого проекта свои. Где-то нужно уметь писать на языке программирования, а где-то даже этому готовы научить. Яркий пример тому Drupal, которые берут студентов, умеющих включать читать документацию к проекту.

          Так что начинайте общаться ч тем проектом, куда хотите податься (или с несколькими), узнавайте, хватит ли вашей квалификации.
  • 0
    Видят ли руководители проектов, при рассмотрении студента, его другие заявки?
    Скажется ли это на шансе пройти на этот проект?
    • 0
      Точно не скажу, но вероятно видит. Обычно ничего плохого в этом нет, но единственное неудобство, которое вы можете создать — если вас выберут в нескольких проектах, то какому-то из них придется искать вам замену. Лично я вижу 3 заявки наиболее оптимальным числом, которое можно проработать вполне качественно.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.