7 из 10 разработчиков вносят свой вклад в открытый исходный код, и вот несколько советов и предложений о том, как начать
Не секрет, что вклад открытого исходного кода - один из самых востребованных навыков в сфере технологий. Помимо пособий по трудоустройству, есть и другие преимущества, такие как
- Изучение и обмен знаниями
- Создавайте и улучшайте узнаваемость вашего бренда
- Сотрудничество и общение с другими разработчиками посредством обзоров и обсуждений кода.
- Возвращение сообществу ❤
- Общайтесь с единомышленниками, найдите своего сотрудника / сотрудников, соучредителя, наставника, подопечного
По данным Eclipse Foundation, в последние годы в Open Source были вложены огромные средства.
Почему тебе должно быть до этого дело?
Оглядываясь на опрос StackOverflow 2016 года, можно заметить, что открытый исходный код вообще не упоминается, однако в опросе 2017 года около 32,7% респондентов заявили, что они вносят свой вклад в открытый исходный код, и эта цифра увеличилась на почти 10% (до 43,6%) в опросе 2018 года, и что еще более интересно, % участников вырос на 20% в 2019 г. (до 63,3%).
Согласно Результаты исследования будущего открытого исходного кода 2016 года от BlackDuck, около 67% участников с открытым исходным кодом приходилось на
- исправить ошибки
- добавить новые функции
59% разработчиков используют открытый исходный код, чтобы получить конкурентное преимущество.
Принимая во внимание вышеперечисленные факты, цифры и тенденции, ИМО стоит рассмотреть вопрос о вкладе с открытым исходным кодом.
Будьте тем изменением, которое вы хотите увидеть в мире - Махатма Ганди
Причины, по которым мне не удалось внести свой вклад раньше?
Большинство из нас, разработчиков, любят вносить свой вклад в открытый исходный код, но в конечном итоге мы не делаем этого по ряду причин. Вот список причин для меня
- Большинство образовательных учреждений не признают вклад с открытым исходным кодом как эффективный способ обучения и не мотивируют учащихся к участию - ИМО, вклад с открытым исходным кодом должен быть частью учебной программы (как задание, проект, так далее).
- Ваше географическое положение - ИМО, страна, в которой вы живете, также играет жизненно важную роль, как подчеркивается в этой статье.
- Новогоднее обещание и обещания дня рождения - у меня их было бесчисленное количество, но они никогда не работали.
- Нереалистичные цели. Однажды я решил, что сделаю не менее двадцати (20) запросов на вытягивание в репозиторий, такой как docker (потому что я ❤ docker), не принимая во внимание тот факт, что что у меня не было достаточных знаний для этого.
- Работа, побочные проекты и жизненные оправдания. После каждого отказа я советовался с собой, что у меня все хорошо в других сферах.
Независимо от того, насколько мал ваш вклад, если вы делаете это на регулярной основе, это действительно имеет значение в долгосрочной перспективе.
- Недооценка моих способностей. Иногда я просматривал существующие запросы на вытягивание и проблемы и приходил к выводу, что «это сложно».
- Игнорирование проблем с документацией. В большинстве случаев я игнорировал все вопросы, связанные с документацией.
- Моему работодателю все равно - я хотел бы получить работу, которая требует внесения вклада в сообщество разработчиков ПО с открытым исходным кодом.
- Промедление - определенно фактор по разным причинам.
Это некоторые из основных причин, которые помешали мне начать работу с открытым исходным кодом на раннем этапе.
Моя мотивация
Для меня главной мотивацией внести свой вклад в развитие открытого исходного кода было то, что я стал достаточно осведомленным, чтобы писать об этом.
Я уделяю большое внимание обмену знаниями, и это то, что я пытаюсь делать как лично, так и во время работы в команде и на уровне организации.
В прошлом году я работал над второстепенным проектом и кое-что узнал о шифровании, поэтому написал об этом здесь. Через несколько месяцев я помог написать руководство по кодированию для нашей компании, а также использовал полученные знания, чтобы написать статью об этом.
После двух статей я хотел написать о том, что считал действительно важным для новых разработчиков и студентов.
Сообществу понравилась эта статья, она получила около 50 тысяч просмотров, много тысяч аплодисментов и благодарственных комментариев.
Следующей большой статьей для меня было написать о вкладах с открытым исходным кодом (эта статья), и для этого мне нужно было сначала сделать несколько вкладов с открытым исходным кодом.
Поэтому, если вы оказались в одной лодке с желанием внести свой вклад, но еще не сделали этого, ищите эту единственную причину, мотивацию, цель, стремление, что бы это ни было.
Моя стратегия участия с открытым исходным кодом
Я решил, что внесу свой вклад в Spring Framework, библиотеку, которую я использовал раньше. Я читал Правила участия, когда заметил несколько неработающих ссылок, поэтому создал запрос на перенос, чтобы исправить их.
Запрос на вытягивание был объединен, и это было настолько хорошо, что я решил продолжить, однако возникла проблема. Большинство проблем GitHub (например, ошибки, новичок, необходимая помощь, функция) будут выбраны другими участниками еще до того, как у меня появится возможность проявить интерес.
Всякий раз, когда процесс не дает желаемого результата для меня, я вношу изменения и переоцениваю результаты и продолжаю так, пока результаты не станут желательными.
Вот что я сделал
- Подписался (смотрел) на репозиторий Spring - много уведомлений
- По дороге на работу я просматривал уведомления по электронной почте и проявлял интерес, комментируя проблемы, с которыми я мог бы справиться.
В результате этой стратегии у меня появилось множество проблем, над которыми нужно было работать. Первое усовершенствование фича
Я продолжил в том же духе над несколькими другими проблемами типа улучшения, ошибки и новые функции, что привело к следующим PR
- Добавить поддержку заполнителя для атрибутов тега заголовка - Spring Security
- Добавить свойства конфигурации для оставшегося Undertow - Spring Boot
- Убедитесь, что квалификатор с именем bean-компонента оценивается при использовании SpyBean - Spring Boot - отклонено
- Преобразование PluginPropertiesExtension Groovy в Java - ElasticSearch
- Добавлена поддержка метаданных сервера авторизации RFC 8414 OAuth 2.0 - Spring Security
Итак, если вы изо всех сил пытаетесь найти проблемы, над которыми можно поработать, выберите другую стратегию.
Советы и предложения
На основе моих знаний и опыта на данный момент
- Обязательно прочтите руководство о том, как внести свой вклад
- Изучите основы Git
- Выберите язык, например Java, JavaScript.
- Определите репозитории, которые приветствуют вклады - используйте такие инструменты, как CodeTriage, Github Explore и this.
- Ознакомьтесь с политиками репозитория, то есть с инструкциями по внесению вкладов
- Изучите проект, в который вы хотите внести свой вклад
- Внесите свой вклад в виде кода, документации, ошибок и новых функций
- Отфильтруйте проблемы по таким ярлыкам, как требуется помощь, ошибка, впервые и т. Д.
- Будьте внимательны к другим специалистам по сопровождению, которые помогают вам
- Убедитесь, что у вас есть необходимые навыки и время для инвестирования
- Следите за обсуждениями проблем и запросов на вытягивание, смотрите изменения кода
- Будьте терпеливы и открыты для отзывов
Я выбрал проблему Elastic Search и проигнорировал тот факт, что мне нужно было немного узнать о Groovy и как работает сборка Elastic Search, как следствие, я потратил намного больше времени и усилий на доведение PR до стадии завершения. .
Всегда полезно провести небольшое исследование, прежде чем приступить к работе над проблемой.
Рекомендуемая литература
Я настоятельно рекомендую вам прочитать Руководство по открытому исходному коду, и эта статья содержит множество знаний о том, как начать работу. Эта статья содержит несколько полезных советов, и если вы визуальный человек, то эти видео Кента С. Доддса могут быть вам полезны.
Спасибо за чтение. Не стесняйтесь подписываться на меня на Medium, чтобы увидеть больше статей и подключиться к LinkedIn и другим платформам социальных сетей по вашему выбору.
Если эта статья каким-либо образом поможет вам внести свой первый вклад, вы можете поделиться своими идеями, предложениями, отзывами и запросами на вытягивание в качестве комментария.