Эта статья была написана Саидом Ахмадом и Амандой Фосетт в рамках проекта Educative, посвященного доступному программному обеспечению и демократизации технического образования.

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

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

Мы обсудим:

  • Что такое программное обеспечение с открытым исходным кодом?
  • Почему открытый исходный код важен?
  • Почему вы должны внести свой вклад?
  • Ключевые термины, которые нужно знать
  • Как начать?

Что такое программное обеспечение с открытым исходным кодом?

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

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

Авторы проприетарного программного обеспечения решают, является ли программа с открытым исходным кодом или нет. В случае закрытого исходного кода пользователю должно быть разрешено право собственности на изменение исходного кода. Например, Adobe Photoshop или Google Cloud не дают разрешения сторонним разработчикам на использование или изменение этого кода.

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

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

Совет для профессионалов. Вы не уверены, что что-то является открытым? Вы можете легко проверить его API на api.opensource.org

Популярные лицензии и технологии программного обеспечения с открытым исходным кодом

  • Стандартная общественная лицензия GNU: любой исходный код, написанный под этой лицензией, должен быть выпущен как открытый исходный код.
  • Лицензия Apache 2.0. Если вы выдали лицензию Apache, вы можете бесплатно запускать, изменять и распространять программный код, если он соответствует правилам лицензирования Apache.
  • Лицензия MIT. Лицензия MIT не имеет ограничений, и ее можно повторно лицензировать в соответствии с другими лицензиями.
  • Язык программирования Swift: Apple создала эту замену Objective C и выпустила ее как технологию с открытым исходным кодом.
  • Kubernetes. Эта технология devops популяризировала использование оркестрации контейнеров с использованием принципов открытого исходного кода.
  • Flutter. Решение Google с открытым исходным кодом для создания нативных пользовательских интерфейсов упростило разработчикам во всем мире создание потрясающих приложений.
  • TensorFlow: эта сквозная платформа с открытым исходным кодом теперь является неотъемлемой частью набора инструментов машинного обучения. Именно работа сообщества сделала это программное обеспечение полезным.
  • Linux: эта платформа с открытым исходным кодом предоставила нам глобальный веб-поиск и доступ к технологиям ОС.
  • Android. Эта операционная система популярна благодаря своему открытому исходному коду, открывающему доступ к службам Google.

Почему открытый исходный код важен?

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

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

Некоторые утверждают, что Интернет сегодня выглядел бы совсем иначе без программного обеспечения с открытым исходным кодом. Ранние разработчики Интернета использовали программное обеспечение с открытым исходным кодом (Linux и веб-сервер Apache), поэтому ценности общей информации были заложены в основу.

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

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

Почему вы должны внести свой вклад в открытый исходный код?

Итак, мы знаем, что такое открытый исходный код, и знаем, почему это важно. Как разработчик, читающий эту статью, вы можете задаться вопросом: «Но почему я должен вносить свой вклад?» Рассмотрим несколько важных причин:

Получите реальный опыт

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

Заслужить признание

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

Техническое повышение квалификации

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

Вернуть сообществу

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

Ключевые термины с открытым исходным кодом, которые нужно знать

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

  • Сопровождающие: это инженеры, которые создают проекты с открытым исходным кодом и управляют ими.
  • Репозиторий, где хранится кодовая база. Здесь вы найдете историю и ход выполнения данного проекта, хранящиеся в файлах.
  • Проблема: усовершенствование или исправленная ошибка в исходном коде. Участники работают над решением проблем.
  • Fork: создает копию репозитория под вашим именем пользователя. Это используется для внесения изменений в код, когда вы работаете над проблемой.
  • Commit: сохраненная версия кода, упорядоченная по сообщениям фиксации. Так мы отслеживаем изменения, внесенные в код, и узнаем, какая версия самая последняя.
  • Pull request (PR): отправка ваших изменений в разветвленный репозиторий по сравнению с исходным. Это предпочтительный способ внесения вклада после его рецензирования и объединения.
  • Объединить: импортирует предложенные PR в исходный репозиторий с открытым исходным кодом. Это делает сопровождающий
  • Git: система контроля версий, в которой мы можем сохранять версии кода. Думайте об этом как о хранилище или банке
  • GitHub: самый популярный сайт для размещения репозиториев Git.

Как начать?

Шаг 1. Соберите свои идеи и навыки

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

После того, как вы укажете язык, над которым хотите работать, вы должны сузить проект. GitHub объединяет проекты в витрины, где вы можете просмотреть тему. Оттуда проанализируйте объем этого проекта. Если вы новичок, не стоит лезть в большие программные проекты. Некоторые проекты даже помечены как «только для новичков» или «простые».

Шаг 2. Ознакомьтесь с GitHub и Git

GitHub — самая популярная и широко используемая платформа для хостинга проектов с открытым исходным кодом. Если у вас его еще нет, вам необходимо создать учетную запись. Прочтите их руководство, чтобы ознакомиться с платформой. Вам также необходимо ознакомиться с Git. Основные навыки, которые вам необходимо освоить:

  • Клонирование репозитория
  • Отправка запросов на включение (PR)
  • Просмотр изменений
  • Обсуждение изменений
  • Назначение коммитов

Шаг 3: Присоединяйтесь к сообществу, которое вам подходит

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

Шаг 4: Наставляйте других

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

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

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

Известные соревнования с открытым исходным кодом:

Многие разработчики начинают работу с открытым исходным кодом через онлайн-соревнования по программированию. Эти соревнования по кодированию обычно организуются известными технологическими компаниями, поэтому вы получаете опыт и признание. Вот некоторые из известных соревнований:

  • Hacktoberfest: Hacktoberfest — это онлайн-мероприятие, организованное Digital Ocean в октябре каждого года. Вы должны внести свой вклад в проекты с открытым исходным кодом, по крайней мере, с 4 объединенными PR. Если вы не знаете, как внести свой вклад в реальную кодовую базу, вы также можете внести свой вклад в улучшение их документации.
  • Google Summer of Code. Google Summer of Code (GSoC) – это международная ежегодная программа, в рамках которой Google присуждает стипендии студентам, успешно завершившим проект по программированию бесплатного программного обеспечения с открытым исходным кодом в течение лета.
  • Конкурс IBM Call for Code. Глобальный конкурс Call for Code — это возможность поработать над решением проблем с помощью кода и программных решений. Он также поддерживается благотворительным партнером Организации Объединенных Наций по правам человека. Вместе с The Linux Foundation лучшие решения открываются и развертываются.
  • Microsoft Imagine Cup: Imagine Cup — это ежегодное соревнование, спонсируемое и проводимое Microsoft. Он объединяет студентов-разработчиков со всего мира, чтобы помочь решить некоторые из самых сложных мировых проблем.
  • Кубок хакеров Facebook: Кубок хакеров Facebook – это ежегодное международное соревнование, которое началось как способ определить лучших инженеров для работы в Facebook.

Подведение итогов

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

Не бойтесь начинать — открытый исходный код для всех, даже для вас!