Как я в open source контрибьютил и почему пока оставил эту затею

Как я в open source контрибьютил и почему пока оставил эту затею Программирование, Программист, IT, Разработка, Open Source, Длиннопост

Привет, пикабу. Потихоньку продолжаю учить Python и сегодня решил поделиться историей как я на гитхаб контрибьютил. Немного о себе: программирование изучаю с полного нуля, учусь самостоятельно, овладеваю Django. Самое моё крутое творение описано в первом посте на пикабу. Кто не поленится посмотреть поймёт, что я все еще начинающий. Осмелюсь предположить, что моя история покажется интересной тем, кто только собирается поучаствовать в open source проектах.

На гитхабе я сделал всего три pull requests в сторонние проекты, два из которых, о чудо, приняли. И потратил я на это столько времени, что лучше бы написал, какого-нибудь пакмена или, что-то вроде того. Пользы было бы для меня в разы больше. Но обо всём по порядку. Я, как и тысячи новичков искал способы применить и прокачать знания полученные из учебных материалов. И время от времени натыкался на статьи в, которых описывали open source как прекрасное место для этого. Я полез на github.com и листал страницы сайта в попытках найти не сложный и живой проект, желательно связанный с Django. Найти такой проект оказалось непростой задачей. Существуют целые каталоги репозиториев с пометкой 'Дружелюбный к новичку', но все живые являются уже достаточно большими и сложными проектами, разобраться в них было мне пока не по силам. И я возвращался к своему монотонному обучению.

В один прекрасный день я попал на сайт exercism.io Там можно выполнять задачки на куче языков программирования и получать фидбек от менторов. Оказалось, что проект имеет свою страницу на гитхабе и развивается целым сообществом. И вот решаю я там одну из задач, реализую решение через левую ногу, путаю метод со свойством, решаю, что нахожу баг и с дрожащими руками бегу на гитхаб и открываю pull request, толком даже не разобравшись с интерфейсом сайта. Конечно же я спорол фигню и мне в обсуждении это вежливо объяснили. Вот эта история https://github.com/exercism/python/pull/1781

Пережив разочарование, продолжил учиться на этом же сайте дальше. Однажды, я решал задачу, в которой по входным данным нужно было определить является ли треугольник равносторонним, разносторонним или равнобедренным. Решил я эту задачу написав алгоритм, который проходил тесты на сайте, но в него можно было подставить данные, с которыми ответ получался неверным. Короче, я обнаружил крайний случай, который тесты пропускали. Опять я с дрожащими руками побежал на гитхаб коммитить свой новый тест. Наделал косяков в оформлении pull request, так, как не читал как это правильно сделать в данном проекте и отправил всё это дело разгребать меинтейнерам. Все мои косяки разгребли, поправили, разжевали мне, что и, как и предложили согласиться с изменениями. Конечно же я согласился и стал гордым =) соавтором правок. После этого случая я осознал, что перед тем как лезть в чужой проект, нужно хорошо ознакомится с документацией и не заставлять людей тратить лишнее время на меня и мои глупые косяки. Вот эта история https://github.com/exercism/python/pull/1894

Всё время моего обучения, меня не покидало желание поучаствовать в open source более осознанно, чем в прошлые разы. И я продолжал копать гитхаб в поисках посильных мне задач. Нашел я такую задачу в одном из репозиториев Mozilla, вот она: https://github.com/mozilla/bedrock/issues/8217 Это репозиторий того самого сайта mozilla.org. Проблема заключалась в неправильном отображении заголовка страницы и сообщения об успешном выполнении действия. Нужно было поменять их местами. Сделать это было нетрудно. Гораздо трудозатратнее было разобраться с запуском проекта локально и правильно оформить pull request. Для этого пришлось разобраться с основами Docker и много читать документации в разделе 'how to contribute'. Но зато мои правки влили в мастер без лишних вопросов, написали только одно слово 'Thank!' Сказать, что я был доволен, значит ничего не сказать. Мне с трудом верилось, что мои правки были приняты в такой большой проект. Да, я там поменял местами всего пару строк, но почему-то до меня этого никто не хотел делать.

Но несмотря на маленький успех, я решил отложить затею с open source в далёкий ящик. Когда эйфория прошла, я осознал сколько времени потратил пока пришел к принятому pull request. Кучи часов копания на гитхабе в безуспешных поисках проектов для новичков, которых как мне кажется и нет. Чтобы контрибьютить в репозитории с пометкой 'Дружелюбный к новичку' необходимо обладать уже достаточно серьезными знаниями в программировании(ну как минимум не начальными). В противном случае получается только сидеть и тупить в монитор. И даже если получится найти, что-нибудь доступное для понимания, прежде, чем что-то отправлять в репозиторий необходимо ознакомиться с кучей дополнительных технологий, которые использует проект, ознакомится с правилами участия в проекте, правилами написания кода в проекте и возможно куче чего-нибудь ещё. На всё это надо много времени.

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

К посту добавлю ссылку на репозиторий, где можно безболезненно для себя и для окружающих полноценно поработать с гитхаб в качестве контрибьютера: https://github.com/firstcontributions/first-contributions В репозитории содержится подробная инструкция, что и куда нажимать с кульминацией в pull request. Русский язык поддерживается.

На этом все, всем удачи!