Полное руководство по GSoC

Привет! Меня зовут Маанас, я являюсь участником и наставником Google Summer of Code (GSoC). Я хотел бы поделиться некоторыми мыслями и рассказать, как вы можете повысить свои шансы на участие в программе.

Обратите внимание, что эта статья предназначена как для абсолютных новичков, так и для экспертов. Не стесняйтесь переходить к разделу Подача заявки, если вы знакомы с тем, что такое GSoC и как он работает.

Что такое Google Summer of Code?

Google Summer of Code (GSoC) — это инициатива Google, направленная на преодоление разрыва между новыми участниками и организациями с открытым исходным кодом для дальнейшего роста сообщества разработчиков с открытым исходным кодом. Это международная онлайн-программа, предназначенная для поощрения новых участников.

В программе участвуют три основных участника:

Соавторы. Это относится к людям, плохо знакомым с открытым исходным кодом, которые пишут код.

Наставники. Эти люди являются частью сообщества открытого исходного кода и помогают направлять участников.

Администраторы организации или администраторы организации. Они находятся на вершине организации с открытым исходным кодом и несут ответственность за обеспечение бесперебойной работы в своей организации.

Как это работает

Примерно в январе организации с открытым исходным кодом регистрируются для участия в программе. Примерно в феврале объявляются принятые организации, участвующие в GSoC. Эти организации предлагают несколько проектов, над которыми могут работать участники. В дополнение к этому члены их сообщества играют роль наставников, которые помогают направлять участников.

Затем участники представляют предложения по проектам, над которыми они хотят работать — максимум 3. Крайний срок обычно около апреля. Эти предложения тщательно анализируются членами сообщества и наставниками соответствующего проекта и ранжируются соответствующим образом.

Наконец, Google сопоставляет участников различных проектов с учетом рейтинга, предоставленного организациями с открытым исходным кодом, с ограничением, согласно которому участник может работать только над одним проектом. Эти принятые участники обычно объявляются примерно в мае. При этом программа переходит в период объединения сообщества, за которым следует период кодирования.

Принятие в программу — это еще не все. Участники должны работать над результатами, указанными в их предложении, и их прогресс отслеживается с помощью оценок. В полном термине GSoC есть 2 оценки: промежуточная и окончательная. Он опирается на критерий «пройдено или не пройдено» — неудача означает, что вы немедленно выбываете из программы.

Для критерия приемлемости программы проверьте это.

Преимущества

Говоря о преимуществах программы, я знаю, что стипендия — достаточно веская причина для участия. Но, если честно, то, что я оказался в мутной воде — вне своей зоны комфорта — упал и поднялся, — это то, что меня больше всего зацепило. Это действительно укрепляет уверенность, а также повышает веру в себя.

Если говорить о материалистических преимуществах, то да, участникам выплачивается солидная стипендия в зависимости от типа проекта, над которым они работают — среднего (~ 175 часов) и крупного (~ 350 часов) проекта. Эта стипендия корректируется в соответствии с паритетом покупательной способности страны. И последнее, но не менее важное: GSoC также блестяще сияет в вашем резюме :)

Применение

Переходим к последнему и, пожалуй, самому важному разделу — как подать заявку на GSoC?

Первая и самая важная задача — выбрать проект и организацию с открытым исходным кодом. Для этого я настоятельно рекомендую сначала записать навыки, которыми вы обладаете в настоящее время, и те, которые вы хотите приобрести. Это поможет вам сузить область поиска.

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

Если организации еще не выпущены — зайдите в архив GSoC и отфильтруйте их на основе записанных навыков. Проекты и организации, которые были частью GSoC в течение последних нескольких лет, скорее всего, станут частью программы и в этом году. Это потребует от вас поиска проектов за последние несколько лет.

Когда у вас будет внушительный список проектов, сузьте его до 3-4 проектов. Это действительно важно, поскольку вы не можете эффективно работать над большим количеством проектов. Для сужения я рекомендую подход, которым я лично пользовался — старайтесь выбирать самые «нестандартные» проекты в каждой итерации. Как и в первой итерации, прочитайте все описания проектов и их ридми на GitHub, изложите суть, а затем отбросьте то, что вам кажется неправильным. Это может быть потому, что вам не нравится работать над интерфейсом, потому что вы не резонируете с проблемой, которую проекты призваны решить, или любой мелкой деталью в этом отношении. НЕ отказывайтесь от проекта только по той причине, что он требует от вас изучения чего-то нового. Придерживайтесь этого, и вы поблагодарите меня позже. Это исключит 2–3 проекта из пула, скажем, из 20. Выполняйте такие итерации и не забывайте снова и снова просматривать описания — поверьте, это поможет — до тех пор, пока у вас не останется 3–4 проекта.

Итак, к этому времени у нас есть проекты, над которыми мы хотим работать — и это потрясающе! Большинство людей не тратят свое время на вышеперечисленные вещи, и либо у них остается слишком много дел, либо они бесцельно прилагают усилия там, где они не требуются. Далее, есть 2 основные вещи, на которых вам нужно сосредоточиться. Во-первых, заявить о своем присутствии в сообществах, а во-вторых, внести свой вклад в проекты, которые вы выбрали. Эти две вещи идут рука об руку. Нет точного способа сделать это, но я выделю то, что сработало лучше всего для меня.

Во-первых, чтобы ощутить ваше присутствие в сообществе open-source, я бы посоветовал пройтись по веб-сайту сообщества — у большинства сообществ он есть — и найти их открытый чат для разработчиков, например, slack, gitter или что-то подобное. Просто напишите привет с введением, выражающим ваш интерес к сообществу и проекту. Поверьте, это так просто. Многие люди даже не проходят через это.

Переходим ко второму вопросу, вкладу в проекты, которые вы включили в шорт-лист. Мой лучший совет здесь — зайти в GitHub (или любую другую платформу, которую использует соответствующее сообщество) репозиторий проекта, просмотреть файл readme, попробовать запустить его на своем локальном компьютере, а затем перейти к разделу проблем. Дело в том, чтобы искать хорошие первые задачи, которые соответствуют вашим интересам и набору навыков — в основном они помечены тем, что вам нужно.

Теперь идет перекрытие. Чтобы полностью разобраться в проблемах, вы можете воспользоваться чатом разработчиков, чтобы прояснить свои сомнения у сопровождающих репозиторий — его запуск на вашем компьютере также показывает, что вы не только заинтересованы в проекте, но и готовы работать над ним. Продуктивные обсуждения с сопровождающими и другими членами сообщества могут помочь расширить ваше видение, а также познакомить вас с новыми точками зрения.

Собрав достаточно информации о проекте и задачах, переходим к следующему — работе над задачей. Попробуйте настроить среду в своей системе, а также при необходимости обратитесь за помощью к специалистам по сопровождению. Наконец, поработайте над проблемой и откройте свой запрос на извлечение. Теперь просто на заметку: если вы не знакомы с Git и GitHub, узнайте о них — это неотъемлемая часть любого проекта с открытым исходным кодом.

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

Контрольный список разделов предложения по обеспечению качества:

  • Четкое и точное название
  • Имя и информация для связи
  • Обо мне
  • Обзор проекта
  • Практические результаты
  • Стратегия реализации

Есть некоторые серьезные неудачи, с которыми люди сталкиваются при написании предложения. Я думаю, выделение их для вас может помочь, так что вот они. Во-первых, уделите достаточно времени написанию проектного предложения. У вас не может быть идеального предложения в первой итерации — повторяйте все снова и снова, работайте с сопровождающими, чтобы прояснить сомнения и все остальное, что приходит на ум. Затем подайте несколько предложений — потенциальный участник может подать до трех предложений по любому из проектов. Подача нескольких предложений, безусловно, увеличит ваши шансы на участие в программе. Наконец, отправьте свои предложения на предварительное рассмотрение сопровождающим на портале GSoC. Это поможет вам получить раннюю обратную связь, включение которой может оказаться полезным.

Еще один последний совет: я предлагаю вам тщательно оценить свои обязательства на предстоящее лето, чтобы вы могли отдать должное проекту, а также себе, если вас выберут :)

Так что все с моей стороны. Надеюсь, вы нашли это полезным! Удачи!

P.S. Не стесняйтесь задавать любые вопросы в комментариях ниже или обращаться к нам. Любые отзывы приветствуются :)

Не стесняйтесь связаться со мной в LinkedIn