Google Summer of Code уже некоторое время привлекает все больше и больше студентов к разработке с открытым исходным кодом, и я считаю, что мне очень повезло быть частью класса студентов GSoC 2018 года. Этот пост в блоге — моя история о том, как меня выбрали для GSoC.

Мой фон

Позвольте мне сначала дать вам краткое представление о моем прошлом. Я родом из очень маленького городка и очень мало знаком с информатикой как таковой. Я никогда не знал, что «программирование» может быть такой элегантной вещью. Я всегда считал, что программирование — это, может быть, что-то очень сложное и не для всех.

Я был очарован этим. Итак, когда я приехал в более крупный город для получения старшего среднего образования, я записался на курс информатики в школе, и это было началом моего пути. Мы тогда изучали C++. Сначала я был очень ошеломлен, когда узнал, что мои сверстники довольно много программировали, а я был полным нулем! Так как я находил это действительно интересным, я всегда практиковался и изучал новые вещи, и к тому времени, когда я закончил старшее среднее образование, я также изучил довольно много C++ и Python (мой первый проект был научным калькулятором с графическим интерфейсом) и затем немного веб-разработки с HTML/CSS и JavaScript.

Введение в открытый исходный код

Поступив в колледж, я начал решать задачи по программированию на HackerRank. В колледже я продолжал узнавать что-то новое, но я не знал, что существует что-то под названием Open Source. Я узнал от старших, что люди хранят код своих проектов на GitHub (он был представлен мне как Facebook для разработчиков!). Поэтому я открыл исходный код для самого первого проекта, который я создал, того же научного калькулятора. Это может показаться не таким уж большим делом, но для мальчика, изучавшего Python всего 4 дня, а затем потратившего 3 дня без перерыва на создание, казалось бы, безупречного приложения с графическим интерфейсом (да, возьмите!). На первом курсе моей студенческой жизни я приобрел много новых навыков и участвовал в проектах с открытым исходным кодом, созданных старшекурсниками моего колледжа.

Приходит GSoC

В конце первого года обучения я узнал, что Google платит студентам за то, чтобы они писали код для организаций с открытым исходным кодом, сидя дома, и суммы стипендии было более чем достаточно, чтобы убедить меня в необходимости этого :chuckles:. Но большую часть второго года обучения я провел, не участвуя в проектах с открытым исходным кодом за пределами моего колледжа. Затем наступает декабрь, и вот я здесь, без какого-либо существенного вклада в какую-либо крупную организацию с открытым исходным кодом. Я волновался, потому что знал, что многие люди уже потратили по крайней мере 4–5 месяцев на участие в какой-то организации с открытым исходным кодом, которая ранее была выбрана для GSoC. Один из моих старших сказал мне, что вы можете участвовать в Rails Girls Summer of Code (RGSoC), и он сказал, что название вводит в заблуждение, даже парни могут участвовать, не все проекты на Ruby on Rails, и стипендия также выше. Так как до объявления списка организаций на GSoC 2018 оставалось еще 2 месяца, я решил попробовать и оказалось, что название совсем не вводит в заблуждение, а заявки ребят даже не рассматриваются для отбора. Так я исчерпал январь и половину февраля. После того, как 12 февраля был объявлен список организаций для GSoC, я начал просматривать список и составлять шорт-листы тех, которые привлекли проекты либо на Python, либо на JavaScript. Я знал, что не могу участвовать в так называемых «больших» организациях, потому что конкуренция там была больше. На то, чтобы наткнуться на CROSS, у меня ушла почти неделя. Я видел проекты и там я увидел один проект под названием «Поппер», который требовал переноса кодовой базы с «Го» на «Питон».

Первый патч

Я начал изучать Go в течение двух дней и проверил репозиторий, чтобы оценить свою конкуренцию. И Кабум! Что я вижу? Наставник уже добавил скелет для переноса Python. И был список проблем (хорошо описанных тоже) для начала! Значительно облегчил мне работу (и другим тоже). CROSS, будучи организацией, впервые участвующей в GSoC, не имела большой конкуренции. Я выбрал проблему, которую, по моему мнению, мог решить, и назначил себя на нее. Мой наставник был очень полезным, и я решил свою первую проблему в течение дня. Это началось в начале марта. И радость, которую вы испытываете, когда ваш первый патч сливается, не может быть описана словами (те, кто недавно слил свой первый патч, знают об этом!).

Предложение

Я продолжал решать проблемы с репозиторием Popper, и к тому времени, когда я начал писать предложение, у меня было слито 7 патчей. Используя шаблон, предоставленный CROSS, и немного подсказав своему наставнику, я написал предложение за 4 или 5 дней! Я показал это своим старшим, которые похвалили меня и предложили несколько модификаций, которые я быстро внедрил. Я показал предложение своему наставнику, который предложил несколько изменений и сказал, что все готово!

Ожидание

Я подал предложение за день до крайнего срока, а затем наступил период ожидания  — долгое время после подачи предложения до объявления списка принятых студентов. Тем временем я продолжал работать с Popper. И вот настал последний день! Я ждал с открытой веб-страницей в браузере, и когда появился список, я не мог поверить своим глазам! Я был выбран для GSoC! Первая попытка! Только одно предложение! И меня выбрали! Я не мог быть счастливее!

Работа

Тогда у нас были семестровые экзамены. Я готовился к экзаменам, но GSoC меня больше волновал. Люди из CROSS приветствовали меня в организации. Тем временем я поддерживал связь с Иво и исследовал все, что мне нужно было знать, чтобы начать вносить свой вклад в код с самого первого дня периода кодирования. Почти половина кода, который я запланировал в предложении, была завершена за первые 20 дней, но это было сыро. Иво, мой наставник, попросил уровень абстракции, чтобы код выглядел чище, и я согласился. И я могу сказать, что я горжусь тем, что у меня наконец получилось :wink:. Это был мой первый месяц работы.

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

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