Как преодолеть свои страхи и внести вклад в открытый код

kak preodolet svoi strahi i vnesti vklad v otkrytyj kod

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

Когда я закончил обучение, я имел в виду общее направление своей карьеры: веб-разработка, игры или то и другое. я любил Интернет, и я имел знания поехать в город на нем. В тот момент наивный я чувствовал себя непобедимым, зная HTML/CSS. Я тоже немного знал Flash и PHP, поэтому считал, что я очень универсальный разработчик (да, у нас были моменты гордости).

Короче говоря, я получил несколько ролей веб-разработчика и разработчика игр. В какой-то момент времени мой хороший друг Тофер познакомил меня с миром Ruby.

Я был новичком во всем, что он предлагал:

  • Git (моя форма управления версиями с моей работой Flash была как FINAL-FINAL-V22.zip)
  • Командная строка: конечно, у меня был определенный опыт работы с PHP, но на компьютере с Windows это было немного
  • Unix

Тогда я понятия не имел, что такое открытый код. Я знал, что PHP был открытым исходным кодом, что фактически означало, что исходный код доступен для всех. Это было.

Введите Github

На мой взгляд, Github создал прецедент для бума открытого кода. Ruby on rails тогда тоже был достаточно новым, и когда Github был создан с помощью Rails, это стало началом моего путешествия с открытым кодом.

drmY3I8RECXYLdPkN9ukFRybsvcKxc5zwMad
Я присоединился к Github почти 10 лет назад! ЭТО ДА!

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

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

Итак, как мне преодолеть этот ужас?

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

Вот мои собственные страхи в дополнение к самым распространенным страхам, о которых я слышал (которые выражали мне студенты, коллеги и т.п.), которые могут касаться вас, а могут и нет:

  • Что делать, если мой вклад не будет принят?
  • Что если я напишу плохой код, который никому не нравится?
  • Будут ли люди судить меня за код, который я пишу?
  • Я не могу понять код! 🙁
  • Я не знаю, как кодировать/я просто новичок.
  • Я не знаю, с чего начать!

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

Что делать, если мой вклад не будет принят?

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

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

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

Что если я напишу код, который никому не нравится?

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

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

Будут ли люди судить меня за код, который я пишу?

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

Я думаю, что лучше быть открытым для таких вещей, и если у них будет время, они обязательно дадут вам знать и помогут. Но лучший способ получить хороший ответ – это не просто спрашивать: «Как это сделать лучше?» Не у каждого есть время, чтобы помочь другим, поэтому вы сэкономите много времени для вас (и для сопровождающего!), если вы сначала исследуете, как улучшить свой код и потом просить помощи. Больше похоже на: «Привет, я все еще новичок здесь, но вот что я сделал, и некоторые ссылки на источники, почему я сделал это именно так. Я думаю, что это еще недостаточно хорошо, и мне было интересно, есть ли у вас какие-то мысли, можете ли вы направить меня в правильном направлении». Такие вещи.

Я не понимаю ни одного кода!

Меня это порой иногда раздражает. Это в основном верно для многих крупных проектов с открытым кодом, таких как Rails, React и т.д. Как правило, единственный способ понять – это выявить проблему/ошибку и воспроизвести ее на своей стороне. Все, что я могу сказать это то, что вам не нужно понимать всено по крайней мере знать, как все работает как минимум.

Однажды, когда я был наставником, у меня был студент, спросивший меня об этом. Он хотел по-настоящему напрячься, и я предложил одну задачу (которую я сам не закончил!) — создать запрос на подключение к Rails или любому другому проекту, который ему нравился. Через неделю он сиял, когда вспомнил, что получил объединение своего первого запроса на получение. Это был запрос на получение японской версии справочника Rails. В тот день я очень гордился наставником.

Он еще не полностью понимал Rails, но ДЕЙСТВИТЕЛЬНО хотел сделать свой вклад в это. Поэтому вместо того, чтобы смотреть на саму Rails, он помог другим способом, исправив переводы, чтобы неанглоязычные читатели могли это лучше понять.

Это подводит меня к другому моменту, который действительно касается еще одного страха…

Я не знаю, как кодировать / я только новичок

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

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

Иметь в виду, делать вклад означает не только делать запросы на получение! Это может быть участие в обсуждении функции, указание на ошибки или даже сообщение об ошибках (обязательно соблюдайте процедуры взносов!)

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

Прекрасно! С чего я могу начать?

Опять же, Github является хорошим местом для начала. Если у вас есть проект, который вы поддерживаете, попробуйте сначала посмотреть там. В противном случае, если вы чувствуете, что можете победить что угодно, посмотрите популярные репозитории на Github или даже исследуйте Gitlab.

А теперь распространяйте любовь к открытому коду!

Обновление: я также написал статью о создании вашего первого запроса на выписку (и его объединение) как приложение к этому. Проверьте это здесь.

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

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