Open source: что это, для чего и как начать

Смотреть

18.04.2021 Впервые с open source мне пришлось иметь дело еще в школе, когда я пробовал запускать Linux вместо очередной «переустановки Windows» у себя и своих близких. Впоследствии начал использовать его и в работе, однако не решался участвовать. Свой первый PR я открыл в Spree, с каким именно тогда работал и которому не хватало перевода. Его приняли, и вот тогда я понял, что, оказывается, это не только не так и сложно, но и можно сочетать работу с удовольствием.

Но эту статью пишу не для того, чтобы рассказать, что в Open Source делал. Моя цель - объяснить, почему open source нужны вы. Можно ли заработать на open source, как начать и для чего это надо?

Что такое open source и community

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

За каждым проектом open source стоит сообщество, то есть community, его разрабатывает, поддерживает и продвигает. Community - это разные люди с разными намерениями: кто хочет развить программный продукт, например потому, что использует его в работе или даже выполняет задание, которое оплачивает конечный заказчик; кто хочет усовершенствовать собственные навыки - так люди, которые длительное время работают в одном проекты, хотят разнообразить свой опыт, проверить знания и умения и получить фидбэк от комьюнити; кто вносит вклад в open source ради различных community-мероприятий - они и добавляют фана в работу; а кому-то просто интересно, можно сказать с исследовательского взгляда, понять, как работает то сложное (тот самый Virtual DOM в реа).

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

Как community может вести разработку продукта

Мы уже выяснили, что за разработку, поддержку, документацию и продвижение проектов соответствует сообщество. Но как? Кому принадлежит проект? Кто им управляет?

Есть два способа, с помощью которых можно организовать работу над проектом open source.

1. Проект полностью контролирует сообщество
Здесь принцип прост: каждый участник сообщества может сообщить о проблеме или решить ее, создать pull request и соединить его с определенной ветвью. В таких проектах open source есть один или несколько администраторов, просматривают каждый pull request, каждое зарегистрированное issue и наводят порядок.

Администраторы - это разработчики программного обеспечения, обычно основатели тех проектов, которые они администрируют. Например, Стив Клабник ( Steve Klabnik ) - это один из авторов языков программирования Ruby on Rails и Rust. Большинство из вас знают его как сверхактивной пользователя твиттера, но, кроме того, он еще и администратор такого проекту open source как Rust. Когда он писал, что более месяца занимался только тем, чтобы навести порядок в списке issues, о которых сообщали участники сообщества - удалить повторяющиеся, закрыть решены или собрать требования непонятно необъяснимых проблем. Уже упомянутый ранее Linux - это также проект, который полностью контролирует сообщество. Линус Торвальдс ( Linus Torvalds), Основатель этого проекту, отдал его на полную опеку сообществу open source, хотя он до сих пор остается тем человеком, который активно разрабатывает, поддерживает и администрирует Linux.

2. Сообщество контролирует проект только частично
Над проектом работает сообщество разработчиков, но есть определенная команда - центр сообщества, core, который принимает основные решения по проектов. Например, популярный javascript-фреймворк React поддерживает сообщество, но руководят им разработчики из компании Facebook. Другой пример - платформа для создания чатбот Botpress . Многие работают над этим проектом, и я горжусь быть среди них. Однако руководитель проекту - компания Botpress.

Можно ли заработать на open source

Заработать реально, но неоправданно трудно. Как обычный малоактивный участник определенной общности вы не сможете получить прибыль. Как владелец проекту или энтузиаст open source - возможно, хотя и маловероятно. Вот несколько способов, чтобы монетизировать эту инициативу:

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

Для владельцев проектов и некоторых участников сообщества:

Bug Bounty - это инициатива, которая позволяет разработчикам программного обеспечения получить награду от владельца проекту за нахождение и решение ошибок в коде. Такую инициативу поддерживают, например, Google, Microsoft, Reddit, Yahoo и Facebook. Довольно часто такие инициативы пересекаются с проэктам open source.
Bountysource - это платформа, где люди предлагают денежное вознаграждение, если вы решаете определенную программную проблему. Как это связано с open source? В некоторых GitHub-проектах можно отметить следующее предложение: «Want to back this issue? Post a bounty on it! We accept bounties via Bountysource ». Вот это и есть ваш шанс заработать!
Кроме того, можно попробовать найти спонсоров , которые будут поддерживать владельцев проекта, активных участников сообщества или программистов, которые будут решать самые сложные проблемы.
Так или иначе, а заработок - не основная цель участия в open source. Тогда возникает вопрос: зачем?

Для чего участвовать в open source

Все знают, как трудно найти работу человеку без опыта. Open source - это опыт, который вы можете смело вспомнить в своем CV. Если HR спросит вас, знаете ли вы React, то наносить поражение его и скажите, что принадлежите к сообществу разработчиков этого фреймворка! Или реалистичный пример: свяжитесь с кем-то из community и прилучиться к поддержке менее раскрученного проекту (например, Svelte) в месяц. Вы и пользу сможете принести проекту, и интересные знакомства получить, и, конечно, в резюме сможете это вспомнить.

Open source - это прекрасная возможность усовершенствовать свои знания и навыки программирования без курсов и без книг. Когда ваш pull request проверяет Дэн Абрамов ( Dan Abramov ) или тот же Стив Клабник ( Steve Klabnik ), то вы думаете о качестве кода и о замечаниях к нему куда больше, чем когда пишете код для себя или на курсах. И поверьте, эти ребята знают «немного» больше рядового тимлида из вашего города, а значит, есть и более вещей, которых можно и поучиться у них.

Open source - это социальная ответственность. Вы решаете один баг в проект open source и автоматически решаете его для всех, кто использует этот продукт. Например, решая одну проблему в Botpress, я еще добавил поддержку украинского языка на платформе.

Как можно присоединиться к Open Source

Приобщиться к open source просто. Сделать это хорошо - немного труднее, но вполне реально. Правила игры довольно просты:
Если вы используете определенный продукт open source (библиотеку, фреймворк, операционную систему, программу ...), поддержите мотивацию людей, которые к нему прилагают усилия. Поставьте им звездочку, оставьте несколько сообщений с имеющимися issue, выскажите благодарность кому-то из разработчиков. Не представляете, сколько открытых проектов это могло бы спасти от упадка.
Если вы находите ошибку в проект open source, который вы используете, - откройте GitHub проекту и сообщите о проблеме. Сообщить о проблеме можно хорошо, а можно плохо. Чтобы сообщить плохо, напишите, что проблема есть, но не описывайте ее, не рассказывайте детали и не добавляйте изображений. Более того, напишите это «на эмоциях» и обвинят администратора в плохой поддержке проекту «ВАША ПРОГРАММА НЕ РАБОТАЕТ !!! СДЕЛАЙТЕ ЧТО-ТО !!! » Так вы, конечно же, «повысите» мотивацию людей, работающих над проектом (обычно в свободное от работы время на безвозмездной основе) и заставите их потренировать свои детективные навыки в понимании ваших намеков на существование проблемы. Чтобы сообщить об ошибке хорошо, сделайте наоборот - добавьте идеальный описание того, что произошло и при каких условиях, а еще лучше, сделайте снимки экрана, на которых проблема будет видно.


Если можете решить проблему, которую нашли вы или кто-то другой, то разрешите ее и сделайте pull request. Pull request тоже можно сделать хорошо и плохо. Чтобы выполнить его плохо, проигнорируйте все инструкции и гайды, сделайте много немотивированных или необъяснимых изменений, игнорируйте стиль кода, не пишите тестов и не ведите документацию. В результате ваш PR висеть месяцами и отбирать энергию на общение и объяснение необходимости в соблюдении стандартов в команде. И, возможно, так и не будет принят. Чтобы сделать pull request хорошо, внимательно прочитайте и используйте Contribution Guidelines - описание основных принципов и правил работы с определенным проектом, а также обращайте внимание на то, в какую ветку вы мерджите свой pull request.
Еще один способ стать частью сообщества open source - это посещать мероприятия, она проводит. Например, Hacktoberfest - это движение, поддерживает open source и ежегодно проводит октябрьские хакатон во всем мире. Во Львове это событие уже происходило 2018 и 2019 годах при поддержке компании KeenEthics. Читайте в Прессрелизы о том, как это было.

как начать
Многие думают: «Я не такой квалифицированный, чтобы преподавать то GitHub». С чего же начать в таком случае?

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

Кроме того, можете организовать себе импровизированную менторскую программу. Среди друзей или коллег найдите кого-то опытного, кто уже поддерживает open source, и попросите его поделиться опытом. Попросите оценить ваши технические навыки, поработайте бок о бок с ними и вместе сделайте ваш первый pull request на GitHub.

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

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

(378 оценок, средняя 4,7 из 5)

Посмотрите похожие страницы:

Как не потерять «золотого» кандидата: 5 предостережений хедхантерам Как не потерять «золотого» кандидата: 5 предостережений хедхантерам
Открытые данные для HR: как они помогут проверить кандидата? Открытые данные для HR: как они помогут проверить кандидата?
T&D будущего. Тренд 1. Глобализация T&D будущего. Тренд 1. Глобализация
Open source: что это, для чего и как начать
  • Open source: что это, для чего и как начать
  • IT
  • 378
  • Дата публикации 30.04 20