Fedora и Google Summer of Code 2012
Опубликовано 17.3.2012 01:17 пользователем Peter Lemenkov
Только что анонсировали утвержденный список проектов, которые приняты в качестве организаций в Google Summer of Code 2012. В этот раз участвует 70 организаций, среди которых и Fedora. Дружный коллектив Russian Fedora всячески рекомендует начинающим и не очень разработчикам, которые на этот сезон еще учатся, и которым уже есть 18 лет, попробовать поучаствовать в этом проекте. Если вашу заявку примут, и если вы добьетесь успеха, то вы получите не только 5000 долларов, но и уникальный опыт разработки в темпе, близком к вашему (но чуть-чуть ускоренном вашим ментором), при участии опытных старших товарищей.
Для тех, кто еще не слышал, формат вашего участия таков. Сначала, вы выбираете проект, в котором вы можете принять участие. Не бойтесь того, что из опыта у вас за плечами только желание этот опыт получить - необязательно досконально во всем разбираться. Ключевой момент GSoC, это обучение, а не платная разработка, так что не бойтесь, что вы вчера узнали, что такое Apache, PHP и GCC, а уже хотите начать переписывать весь интернет. Еще не бойтесь, что вы так и не узнали, что такое GCC - в рамках проекта нужны не только системные программисты, но, например, web-разработчики. Еще такой момент - лучше выбрать проект, который вы лично используете, так как гораздо больше мотивации исправлять то, с чем лично сталкиваешься, чем выполнять какую-то абстрактную задачу.
Итак, вы выбрали проект. Теперь немедленно регистрируйтесь на сайте Google Summer of Code и срочно ищите "менторов" с помощью средств коммуникаций, принятых в выбранном проекте (список рассылки, джаббер-конференция, ирка). Менторы, это те, кто будет подталкивать вас, когда у вас кончится эйфория и вдохновение, и кто будет оценивать вашу работу. Они же будут помогать вам своими советами и учить вас взаимодействию в среде opensource разработчиков. Практика показывает, что по ряду причин, именно этого "инжиниринга" процесса разработки и не хватает русскоязычным разработчикам, так что это очень и очень ценно. Выйдя на контакт с потенциальными менторами вы сообщаете им о своем желании и рассказываете о своей идее, как можно улучшить их проект. Они соглашаются с вами, соглашаются с оговорками или полностью разбивают вашу идею (предлагая какие-то свои). Здесь есть момент произвола и сильное влияние человеческого фактора, что неизбежно.
Предположим, переговоры прошли нормально, и вы договорились c потенциальным ментором об идее, которую будете реализовывать. На проект Google выделяет несколько "слотов" (в зависимости от неких непубличных оценок значимости проектов внутри Google), и теперь вы конкурируете с другими студентами за слоты. Вас и вашего ментора будут интервьюировать другие представители выбранного проекта, чтоб затем открыто и публично решить, какие-же предложения выглядят более привлекательными для участия в GSoC. Ваша заявка может выглядеть техничнее прочих, но, например, у других представителей проекта может по разным причинам сложиться впечатление, что вы и ваш ментор не сумеете закончить ее в срок. Невыполненные в срок заявки серьезно понижают шансы проекта попасть в следующий GSoC, так что тут "ничего личного". У разных проектов есть свои варианты оценки предложения - от реальных тестовых заданий, которые выбираются из числа "janitorial" задач, до простого общения через feature/issue-tracker.
Если вашу задачу одобрили, и она заняла слот в рамках проекта, то тут начинается самая простая фаза - вы пишете код, настраиваете уже имеющиеся программы, проводите анализ. На этом этапе вам помогает ментор с инфраструктурой, с системой контроля версий, с issue tracker. Он дает рекомендации по желаемому рабочему графику, оценивает скорость и точность выполнения, общается с вами. По прошествии некоторого времени вы завершаете задачу, получаете деньги и заносите строчку в резюме, прикалывая туда и рекомендации от вашего ментора.
Все очень просто - проще, чем, например, устроиться на работу в Яндекс, VKontakte, Facebook или Google. Для участия крайне желательно уметь письменно общаться на английском, хотя-бы с акцентом, так как общение, это очень важный фактор в разработке, а общаться придется на английском. Есть проекты, где традиционно есть русскоязычные менторы, но тем не менее, очень поможет знание международного языка. Насчет русскоязычных менторов, мы советуем обратиться к нам, в Fedora, к Alexandre Prokoudine и LinuxGraphics, к коллективу GIS-Lab. Напоследок, прочитайте подробный отчет от участника GSoC о том, с чем ему пришлось столкнуться.
Мы желаем вам удачи, какой бы вы ни выбрали проект для участия. Помните, вы не только получаете возможность улучшить открытые проекты под руководством специалистов в своей предметной области, но и вашу работу профинансируют. Немногие участники Open Source движения могут припомнить столь тепличных условий для начала карьеры разработчика.
Для тех, кто еще не слышал, формат вашего участия таков. Сначала, вы выбираете проект, в котором вы можете принять участие. Не бойтесь того, что из опыта у вас за плечами только желание этот опыт получить - необязательно досконально во всем разбираться. Ключевой момент GSoC, это обучение, а не платная разработка, так что не бойтесь, что вы вчера узнали, что такое Apache, PHP и GCC, а уже хотите начать переписывать весь интернет. Еще не бойтесь, что вы так и не узнали, что такое GCC - в рамках проекта нужны не только системные программисты, но, например, web-разработчики. Еще такой момент - лучше выбрать проект, который вы лично используете, так как гораздо больше мотивации исправлять то, с чем лично сталкиваешься, чем выполнять какую-то абстрактную задачу.
Итак, вы выбрали проект. Теперь немедленно регистрируйтесь на сайте Google Summer of Code и срочно ищите "менторов" с помощью средств коммуникаций, принятых в выбранном проекте (список рассылки, джаббер-конференция, ирка). Менторы, это те, кто будет подталкивать вас, когда у вас кончится эйфория и вдохновение, и кто будет оценивать вашу работу. Они же будут помогать вам своими советами и учить вас взаимодействию в среде opensource разработчиков. Практика показывает, что по ряду причин, именно этого "инжиниринга" процесса разработки и не хватает русскоязычным разработчикам, так что это очень и очень ценно. Выйдя на контакт с потенциальными менторами вы сообщаете им о своем желании и рассказываете о своей идее, как можно улучшить их проект. Они соглашаются с вами, соглашаются с оговорками или полностью разбивают вашу идею (предлагая какие-то свои). Здесь есть момент произвола и сильное влияние человеческого фактора, что неизбежно.
Предположим, переговоры прошли нормально, и вы договорились c потенциальным ментором об идее, которую будете реализовывать. На проект Google выделяет несколько "слотов" (в зависимости от неких непубличных оценок значимости проектов внутри Google), и теперь вы конкурируете с другими студентами за слоты. Вас и вашего ментора будут интервьюировать другие представители выбранного проекта, чтоб затем открыто и публично решить, какие-же предложения выглядят более привлекательными для участия в GSoC. Ваша заявка может выглядеть техничнее прочих, но, например, у других представителей проекта может по разным причинам сложиться впечатление, что вы и ваш ментор не сумеете закончить ее в срок. Невыполненные в срок заявки серьезно понижают шансы проекта попасть в следующий GSoC, так что тут "ничего личного". У разных проектов есть свои варианты оценки предложения - от реальных тестовых заданий, которые выбираются из числа "janitorial" задач, до простого общения через feature/issue-tracker.
Если вашу задачу одобрили, и она заняла слот в рамках проекта, то тут начинается самая простая фаза - вы пишете код, настраиваете уже имеющиеся программы, проводите анализ. На этом этапе вам помогает ментор с инфраструктурой, с системой контроля версий, с issue tracker. Он дает рекомендации по желаемому рабочему графику, оценивает скорость и точность выполнения, общается с вами. По прошествии некоторого времени вы завершаете задачу, получаете деньги и заносите строчку в резюме, прикалывая туда и рекомендации от вашего ментора.
Все очень просто - проще, чем, например, устроиться на работу в Яндекс, VKontakte, Facebook или Google. Для участия крайне желательно уметь письменно общаться на английском, хотя-бы с акцентом, так как общение, это очень важный фактор в разработке, а общаться придется на английском. Есть проекты, где традиционно есть русскоязычные менторы, но тем не менее, очень поможет знание международного языка. Насчет русскоязычных менторов, мы советуем обратиться к нам, в Fedora, к Alexandre Prokoudine и LinuxGraphics, к коллективу GIS-Lab. Напоследок, прочитайте подробный отчет от участника GSoC о том, с чем ему пришлось столкнуться.
Мы желаем вам удачи, какой бы вы ни выбрали проект для участия. Помните, вы не только получаете возможность улучшить открытые проекты под руководством специалистов в своей предметной области, но и вашу работу профинансируют. Немногие участники Open Source движения могут припомнить столь тепличных условий для начала карьеры разработчика.