как я участвовал и чему научился

kak ya uchastvoval i chemu nauchilsya?v=1656598346

автор Чак Шун Ю

Когда я начал писать этот пост, я закончил свою первую серьезную неделю вклада в Open Source. Я в основном участвовал в проекте Storybook. Эта публикация описывает состоявшиеся на этой неделе вклады и взаимодействия. Он также сосредоточится на пути, которое привело к этой неделе.

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

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

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

KONcC2tWywcLmOrtduE4z7uJX6bD5XWC2kda
«Шоссе по сельской местности с красным пшеничным полем» Элис Хэмпсон на Unsplash

Мотивация и мышление

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

Позвольте предоставить вам некоторый контекст обо мне. Сейчас я учусь на втором курсе магистра компьютерных наук в Делфтском технологическом университете. Я бы описал себя как (ниже) среднего разработчика по сравнению с моими сверстниками. Я действительно не начал программировать до того, как поступил в бакалавр. Я никогда не находил мотивации делать это вне курсов.

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

Мой внутренний разработчик подключился и понравился «О, это очень круто, я должен это сделать, чтобы я мог многому научиться и увеличить свои шансы на работу в будущем!»но потом подключился мой внутренний ученик и походил «Почему я должен утруждать себя больше обязательствами чем я уже имею (из университета)?».

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

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

Хотя это отлично и все, мне еще не хватает одной вещи: опыт. Особенно в устоявшейся среде (например, компания). Пока подработка на стороне есть an вариант, главное, что я сейчас думаю, это сосредоточиться на моей магистерской диссертации и кончить. Все остальное как-то на боку. В конце концов, я не очень считаю работу на неполный рабочий день как вариант для меня.

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

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

После этой недели я заметил, как мое мышление и мотивация изменились по сравнению с прошлым годом. Я считаю это изменение причиной того, что сейчас я мог войти в открытый код. Отсутствие мотивации является причиной того, что я раньше провалился.

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

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

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

Лучшим практическим примером этого на практике есть контекст моего первого взноса. В четверг (19 апреля) я почти целый день работал на работе в университете. Для моих стандартов это было довольно раннее утро, начиная с 10:00, что значит для меня просыпаться в 8:00. И мы не закончили до 18:30, что сделало этот день достаточно длинным. Вернувшись домой и пообедав, было в основном уже двадцать часов. В любой другой день я бы либо уснул на диване, либо продержал бы его прохладой до конца вечера.

Однако в тот вечер в мой почтовый ящик поступила определенная проблема с Github. (Я обсудю позже, почему и как он туда попал?). Это привлекло мое внимание, потому что казалось, что я могу решить. Я в основном бросился к своему ноутбуку и оставил сообщение о проблеме, которую я готов попробовать.

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

Мой выбор проектов

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

Сейчас мой основной интерес и сфера, в которой я сосредотачиваюсь на совершенствовании, – это веб-разработка. Особенно React – это библиотека, которую я полюбил и чувствую себя наиболее комфортно. Поэтому, конечно, я хотел найти проекты, связанные с веб-разработкой. Для меня написание проекта (отчасти) на JavaScript было обязательным условием, а привлечение или связанность с React было плюсом.

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

Полный список просмотренных проектов состоял из проектов, найденных с помощью поиска «React» на Github, и тех, о которых я знал или слышал: React, Redux, MobX, React-Router, Next.js, styled-components, Storybook, Спектр и многое другое…

В конце концов, я придерживался styled-components, Storybook и Spectrum. Главным образом потому, что другие проекты были относительно абстрактными и более сложными для понимания. Эти проекты были очень дружественны новым участникам. Кроме того, они все еще широко используются в обществе.

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

Внесу мой первый вклад

Так что я уже говорил о контексте своего первого взноса. Однако я не говорил о технических деталях запроса на подъемник (PR). Или как я вообще попал в PR, о чем пойдет речь в этом разделе.

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

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

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

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

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

Если бы я не мог, я бы знал, где мои ограничения, и так или иначе узнал о проекте. Если бы я мог, я также расширил свои знания о проекте, и я мог бы потенциально внести свой вклад в решение проблемы. Конечно, особенно если проект был очень активным, было очень трудно успевать за всеми электронными письмами. Я просто пытался столько, сколько мог позволить себе, надеясь, что это поможет мне в долгосрочной перспективе — и это удалось!

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

Чтобы защитить эти случаи, CLI запустил команду yarn — version, чтобы проверить, установлен ли yarn. Если да, он будет использовать его в качестве выбранного менеджера пакетов для установления зависимостей. Однако проблема возникла, когда разработчики установили оба менеджера пакетов, но в основном использовали npm. Тогда Storybook будет использовать старую версию пряжи. Это привело к проблемам, о которых сообщил текущий пользователь.

Это звучало как то, что я понял и почувствовал, что способен исправить! Что я тогда сделал? Я начал с того, что вежливо спросил, можно ли мне решать этот вопрос.

Есть несколько причин, почему я прямо спросил это, а не просто сделал это.

  1. Это сигнализирует, чем кто-то работает над этим вопросом, что отлично для сопровождающих.
  2. Это уточняет это ты работают над этим, и вы заявили о проблеме. Это особенно полезно в очень активных проектах.
  3. Это гарантирует, что вы не берете на себя чужую проблему. По разным причинам кто-то уже мог работать над этим, и я лично ненавижу забирать чью-то проблему.
  4. Это гарантирует, что вы не собираетесь тратить свое время и усилия на устаревшее, ненужное, нежелательное или уже сделанное. Если любая из них соответствует действительности, вам скорее всего сообщит сопровождающий.
  5. Никогда не помешает быть вежливым и общаться?

Получив зеленый свет от сообщника и пользователя, сообщившего о проблеме, я пошел и применил исправление, описанное в проблеме. Само по себе исправление не было особенно впечатляющим. Вместо проверки установленной версии yarn он проверит наличие файла yarn.lock. После некоторого обсуждения относительно того, чтобы сделать проверку более сложной и обработать этот отзыв, они одобрили мои изменения. Мой PR был объединен! ?

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

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

ЧТО!? Я ДАВНО ПОМОГАЛА ЛЮДЯМ!? ? Мое небольшое решение, которое казалось, что ничего, на самом деле помогло людям с их проблемами. Чувство выполненного задания и волнение, которое я испытал в тот момент, было невыразимо. Это превышало любые ощущения, которые я мог испытывать от решения какой-то сверхсложной проблемы. Мне все еще очень дорого.

Остальные недели

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

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

В свою первую неделю я открыл 4 PR для Storybook и все они были приняты и объединены! Если вас интересуют подробности этих PR, посмотрите трекер GitHub.

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

Для меня ответ был решительным «да», и вот почему. Мой второй PR был связан с разделом кодовой базы, который я не знал и никогда не просматривал. Это, конечно, относилось к каждой части проекта, поскольку я был новым участником. Хотя я мог найти свой путь в коде CLI, на этот раз он охватил фактическую программу Storybook, которая была для меня на другом уровне.

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

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

Что я научился

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

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

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

Идти вперед

После этой недели я буду делать то же, что делал в течение этой первой недели: следить за проблемами и разговорами и помогать там, где и когда смогу.

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

В самом деле, я задержался так долго, что в то время, когда я заканчивал эту публикацию (приблизительно через 5 недель после того, как начал писать), владелец Storybook пригласил меня присоединиться к организации GitHub! ? Я очень благодарен за эту возможность. Я обязательно сделаю все возможное, чтобы сделать себя более полезным для проекта! ?

TLDR:

  • Подумайте, чего вы хотите добиться с открытым кодом. Если это не долговременная мотивация, будет трудно 1) начать и 2) продолжить.
  • Просматривайте всю активность из интересующих вас хранилищ и старайтесь тратить время на их просмотр. Это значительно расширит ваши знания о проекте и поможет вам внести свой вклад.
  • Будьте вежливы и получайте удовольствие! ??

Спасибо, что читаете. Если вам понравилась моя история, попробуйте немного похлопать, поделиться ею с другими людьми или подписаться на меня здесь или в Twitter (или оба?). Я сделаю все возможное, чтобы давать подобный контент в будущем!

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

Особая благодарность Маурисио Аниче и Мартийн Стинберген за помощь мне с этой публикацией путем считывания и обратной связи! Также Норберт де Ланген (руководитель Storybook) за то, что он пригласил меня в организацию GitHub и пытался привлечь меня к проекту!

Добавить комментарий

Ваш адрес email не будет опубликован.