Подробное руководство по удивительной стажировке с открытым исходным кодом - Alibaba Summer of Code

Вступление

Вы студент колледжа, который увлечен культурой открытого исходного кода? Или желаете стажировки, чтобы обогатить свое резюме? Как насчет того, чтобы присоединиться к Alibaba Summer of Code, чтобы получить другой опыт стажировки, чем у других?

Как и Google Summer of Code (GSoC), Alibaba Summer of Code (ASoC) также является летней стажировкой с открытым исходным кодом, проводимой в Alibaba Cloud. Это такая молодая программа, которая проводилась пока всего дважды. Ежегодно с мая по август Alibaba будет выбирать по несколько задач из каждого из своих проектов с открытым исходным кодом и приглашать студентов со всего мира для решения этих проблем. Вам не обязательно быть студентом факультета информатики или информационных технологий, чтобы быть выбранным. Кроме того, для тех, кто считает важным, это оплачиваемая стажировка.

ASoC - это то же самое, что и некоторые общие мероприятия с открытым исходным кодом, которые разработчики из разных мест или стран обсуждают и пытаются вместе решать проблемы проекта в Интернете. Этот вид стажировки объединит одного или нескольких наставников с выбранным студентом, чтобы вместе выработать решения и дистанционно направить его / ее через весь процесс.

В этой статье я дам вам полное руководство по ASoC. Контент будет в основном основан на моем опыте и направлен на привлечение большего числа студентов к культуре открытого исходного кода.

Перед началом

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

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

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

подсказки

Совет - связаться с сообществом как можно раньше, даже до начала мероприятия. В моем случае я подключился к Apache RocketMQ, проекту, в котором я участвовал, за несколько месяцев до запуска ASoC. Это экономит мне много времени, чтобы узнать, как работают сообщество и проект.

Еще один совет - продолжайте общаться со своими потенциальными наставниками при написании предложения. Это не только заставит вас более тщательно разобраться в проблеме, но и позволит им лучше вас узнать. Это увеличит ваши шансы на избрание.

Реализация

Фаза кодирования - самая захватывающая и сложная часть. Он начнется сразу после того, как кандидаты будут выбраны сообществом. В течение этого периода есть промежуточная оценка и окончательная оценка, в ходе которой наставник оценивает, выполнили ли вы поставленные задачи вовремя и можете ли вы продолжить. Вместо того, чтобы говорить о процессе, я поделюсь своим опытом по нескольким частям, чтобы вы знали, на что следует обращать внимание на протяжении всей программы.

Командная работа

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

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

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

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

Коммуникация

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

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

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

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

Упорство

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

Фактически, независимо от GSoC, ASoC или любых других программ стажировки с открытым исходным кодом, хотя участникам часто платят, их основная цель - привлечь больше людей для присоединения к сообществам с открытым исходным кодом после мероприятия. Они дают возможность этим сообществам расти и развивать разработчиков, которые будут вносить постоянный вклад.

Следовательно, настойчивость - это то, что волнует многие сообщества. Участвуя в сообществе Apache RocketMQ, я видел множество разработчиков из разных компаний, даже из разных стран, которые упорно вносили свой вклад в проект, даже если нет денег взамен. Вот почему я считаю, что открытый исходный код - одна из самых прекрасных вещей в техническом мире.

Можете ли вы по-прежнему вносить вклад в сообщество, даже не получая оплаты? Задайте себе этот вопрос, посещая подобные мероприятия.

После ASoC

После двухмесячной фазы кодирования ASoC подходил к концу. Я успешно сдал два экзамена и получил сертификат об окончании.

Помимо сертификата, студенты также получат заработную плату, которая составляет около 250 юаней в день. Несмотря на то, что эта сумма намного меньше, чем у GSoC, люди, которых я встретил, и опыт, который я получил за эти два месяца, бесценны. К сожалению, из-за пандемии COVID-19 студенты ASoC в этом году не могут посетить штаб-квартиру Alibaba, как в прошлом году. Это мое единственное сожаление об этой стажировке.

В общем, за эти два месяца это удивительное путешествие. До знакомства с ASoC я дважды подавал заявку на участие в GSoC в предыдущие годы, и все по какой-то причине терпели неудачу (например, выбранные мной сообщества не были выбраны Google). Я рад, что наконец-то получил возможность принять участие в такой стажировке, о которой я мечтал.

Наконец, я хотел бы поблагодарить всех членов сообщества Apache RocketMQ, особенно моего наставника ── Ронгтонга Джина, за их профессиональную поддержку и предложения в это время.

Ресурсы

Alibaba Summer of Code 2020 (официальный сайт на английском языке)

Alibaba Summer of Code 2020 (официальный сайт в Китае)

Официальный сайт Apache RocketMQ

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