Введение
Спустя год после комментария в реестре ненаписанных постов, стало слишком неловко откладывать этот пост на потом.
Привет, меня зовут Жора, я немного написал кода на Haskell в Haskell Language Server и это было довольно весело.
Ниже я расскажу про то, что такое GSoC (Goolge Summer of Code), кому и зачем оно нужно, как туда пройти и про мой личный опыт в этой программе.
Что это, для кого и зачем?
GSoC это такая программа, где если ты студент (или начинающий* разработчик в Open Source) c ВНЖ в правильной стране, то ты можешь летом поработать в интересном тебе Open Source проекте, с ментором и тебе даже за это дадут деньги.
Довольно выгодное предложение, ведь поработать можно на интересном тебе проекте и если хочется на эзотерическом языке. Для того же Haskell-я не вспомню и двух других мест где он используется)) .
Если программа интересна только как способ заработать денег, то я бы не рекомендовал туда идти, т.к. только на подготовку к подаче уйдет месяц-полтора и гарантий что вы пройдете нет. Но выплаты приятные, особенно у больших проектов, можете посмотреть их вот тут.
*Проекты варьируются по размерам от больших до малых, но малые от этого совершенно не становятся простыми)). В принципе я не видел ни одного простого проекта и везде приходилось биться головой о стену, чтобы понять о чем примерно идет речь. Рекомендую идти туда только после 3го-4го курса, не раньше.
Как попасть на программу?
Вот вы решились податься на программу (желательно за пару месяцев до ее начала) и
поискать как лучше всего оформить заявку.
Чтобы пройти, вам нужно будет откликнуться на интересные вам проекты и написать в подробностях, как вы собираетесь его реализовать. Лучше смотреть рекомендации на сайте организации, к которой вы будете подаваться (пример). Сделать можно три заявки, но я рекомендую делать максимум две — разобраться сразу в трех проектах слишком сложно.
Ваш план должен быть на столько подробным на сколько возможно, с ссылками на документацию и исходный код, где именно и как вы будете что-то добавлять. Обычно рекомендуют добавлять таймлайн, но я бы не уделял ему особое внимание — все равно вашим цифрам никто не поверит)). Также можно написать о том, как вы хотите попасть именно на этот проект ведь стремитесь изменить мир к лучшему, но слава богу это не обязательно. Достаточно упомянуть, почему вам интересно этим заниматься.
На этом этапе рекомендую хотя бы запустить проект и поломать его в интересных вам частях. Как раз будет хороший повод написать в discord проекта по делу.
Люди почему-то настойчиво советуют добавиться в дискорд проекта, и там рассказать о себе. Выглядит супер странно, и летом эти чаты заваливаются горой однотипных рассказов людей о том кто они, откуда и как они поживают. Спешу сообщить, что в общем-то на это всем без разницы, и лучше вместо этого получше разобраться в проекте, который вам интересен. Как говорится “Talk is cheap. Show me the code”.
Также в чате по стажировкам мне весело рекомендовали сгенерировать отклик последней LLM моделью™, но думаю вместо этого можно сразу послать ментора нахер, результативность будет примерно такой же.
Вместо этого, после пары недель работы над откликом, можно написать своему потенциальному ментору и попросить оценить ваш набросок. В Summer of Haskell это разрешают, и мне это очень сильно помогло разобраться в проекте и довести текст до ума.
Но если у вас неправильный паспорт
Официально можно подаваться, если у вас есть ВНЖ страны, которая не находится в санкционном списке США, но готовьтесь к тому, что это будет не просто)).
После того как вас допустят до программы, вам надо будет сделать аккаунт, через который Google будет платить вам стипендию. Платить на банковский счет они, к сожалению, не умеют, и требуют чтобы ты создал аккаунт в их платежной системе Payoneer.
Мой аккаунт, разумеется, сразу же закрыли, и пришлось около месяца сражаться с местной поддержкой. Что приятно, если твой аккаунт заблокировали, то ты не можешь с него написать поддержке, по этому пришлось делать второй.
Пара недель ушла только на то, чтобы примерно понять, что именно их не устраивает, но это до сих пор остается для меня загадкой. После каждого сообщения представляется новый человек, выдает ту же самую копипасту из FAQ и уходит в закат. В какой-то момент человек из поддержки не смог даже правильно написать “Payoneer” в ответе, и я понял что это гиблое дело.
Но после того, как я написал в поддержку самого GSoC, дело сдвинулось с мертвой точки! И после n-ой попытки мне все-таки сделали аккаунт.
К сожалению, ВНЖ вам будет некуда приложить чтобы доказать что вы не верблюд, по этому лучшим решением оказалось добиться выписки в местном банке в том формате, что они ожидают. Так называемые "Utility Payments", которые они тоже принимают, каждый раз были не того формата и в принципе слишком подозрительные, чтобы они их приняли)).
Наконец-то можно по программировать
Собственно самая веселая часть, и если вы хорошо поработали над вашим откликом, то все пройдет примерно так, как вы планировали.
Мне очень повезло с ментором, по этому моей основной стратегией было смотреть на монитор 4 часа, и после этого завалить ментора вопросами которые появились. На удивление эффективно (если вас готовы терпеть), и даже получилось понять что собственно надо делать и куда работать.
В принципе, эта программа была чуть ли не самым положительным опытом программирования, что у меня был. Решать какие-то существенные проблемы, которые кому-то мешают, да и еще получать за это реальные деньги(!) очень приятно. Особенно, если до этого у вас не было опыта работы на крупных проектах.
Да и в принципе, здорово когда можешь тыкнуть пальцем в монитор и сказать, что ты это сделал.
Класс, а что дальше?
Ну на этом в принципе все. Если вы постараетесь, и потратите раза в 2 больше часов чем рекомендуется на проект, вашу работу рано или поздно замержат в main.
После этого можно писать в резюме, что не студент без опыта, а студент почти без опыта. Google кстати очень настоятельно рекомендует не писать, что вы стажировались в Google))) Но кто я такой, чтобы вам указывать.
Если этот пост замотивировал вас тоже податься на GSoC, то поздравляю! Вы тоже можете сделать это прямо через... пол года, потому что я немного опоздал.
Но я надеюсь что он все равно кому-то поможет.