Кто вы?
Закодили очередную фичу для продукта, который увидят пара тысяч пользователей вашей компании? Написали скрипт, который сэкономил кучу времени, но всем плевать? Чувствуете, что ваше имя как инженера теряется где-то между Jira-тасками и код-ревью?
Да-да, что-то такое я знаю: это примерно каждый первый программист. Оу, вам много платят? Вы настоящий-пренастоящий сеньор? Извините, ни разу о вас не слышал и вряд ли услышу.
А теперь прочтите имена этих людей:
Линус Торвальдс. Ричард Столлман. Гвидо ван Россум. Брэм Моленаар. Джеймс Гослинг.
Они вам о чём-то говорят? Вы слышите их не первый раз? Ещё бы. Ведь это люди, изменившие, без сомнения, целый мир.
Что их всех объединяет? Они не стали знаменитыми, потому что удачно устроились в FAANG (ну или Съелбанк, Тындекс) и вовремя закрыли квартальный OKR. Нет. Они создали проекты с открытым исходным кодом, которые стали фундаментом всего, что мы используем сегодня. Вы бы узнали имя Линуса, если бы он просто тихо перекладывал JSON'ы для какой-нибудь корпорации? Вопрос риторический.
От ядра до картинки с котиком: Open Source вокруг нас
Прямо сейчас вы читаете этот текст, используя плоды десятков, если не сотен open source проектов.
Ваш браузер (Chrome, Firefox) работает на движке с открытым исходным кодом. Сайт Хабра, скорее всего, работает на nginx или Apache. Серверы, на которых всё это крутится, — на Linux. Вы написали сегодня код? Скорее всего, на Python, Java, JavaScript, Go — языках, чьи компиляторы/интерпретаторы и огромные кучи экосистемы открыты.
Итак, вопрос.
Вы когда-нибудь нажимали кнопку «Отправить» в Telegram? Поздравляю, вы использовали клиент с открытым исходным кодом! Смотрели фильм в VLC? Опенсорс. Работали с документами в LibreOffice? Снова он. Создавали 3D модели в Blender? ))))!
Open Source ≠ бесплатная работа
«Что за дичь? Я и так на работе код пишу, зачем мне делать это ещё и бесплатно? Это же благотворительность!».
Ха-ха, заблудился!
Опенсорс не про бесплатную работу. Это про инвестиции. Инвестиции в самого себя.
Вот что вы получаете взамен за свои «бесплатные» строки кода:
Невероятный скачок в скиллах. Попробуйте сделать пулл-реквест в проект, которым пользуются тысячи. В вашей компании *овнокод пройдёт без проблем, но на GitHub ваш код будут ревьюить самые токсичные приверженные чистоте и стилю кода разработчики. Это будет лучшее код-ревью в вашей жизни. Вы научитесь писать не «и так сойдет», а так, как должно быть.
Портфолио, которое говорит само за себя. Строка «Контрибьютор в Python» в резюме весомее, чем 5 лет опыта в «ООО Рога и Копыта». Вас начнут узнавать. Вам начнут писать HR'ы.
Нетворкинг. Вы знакомитесь не с HR'ами (хотя на митапах можете похвастаться своими проектами и контрибьютами даже им), а с теми самыми инженерами, на которых равняетесь. Вы становитесь частью сообщества. И эти связи часто приводят к самым крутым офферам и коллаборациям.
Репутация и признание. Те самые звёздочки и форки на GitHub — не просто цифры, но и кредит доверия в сообществе. Ваше мнение начинают учитывать.
Опенсорс vs Коммерция
Вечный холивар: «Зачем мне Maya, если есть Blender?» или «Зачем использовать GIMP, если есть Photoshop?» .
Истина, как всегда, посередине
Коммерческий софт часто предлагает отполированный UX, централизованную поддержку и решение «из коробки» для конкретных Enterprise-задач. Вы платите за время, которое сэкономили.
Опенсорс — это видение всего общества. Это свобода. Свобода посмотреть, как оно работает внутри. Свобода исправить то, что не нравится. Свобода адаптировать под свои нужды. Это экосистема, которая развивается не по дорожной карте продакт-менеджера, а по нуждам реальных пользователей.
Именно поэтому опенсорс делает технологии популярнее и доступнее. Все говорят о Blender, потому что он создан и продвигается сообществом для сообщества. Он стал культурным феноменом. Опенсорс демократизирует технологии.
Но это не взаимоисключающие параграфы! Мир давно это понял и смешал оба подхода. Почти вся коммерция сейчас строится на опенсорсе. Microsoft, главный «злодей» прошлого, теперь один из крупнейших контрибьюторов в open source. Они поняли: нельзя бороться с сообществом — нужно возглавить его и стать его частью.
Монетизация в Open Source
«Хорошо, — скажете вы, — а как на этом зарабатывают те, кто стоит за крупными проектами?». Отличный вопрос! Вариантов много:
Open Core: Базовая версия продукта бесплатна и открыта, а за дополнительные enterprise-функции, поддержку и облачные услуги (SaaS) платят деньги (GitLab, Docker, Redis).
Поддержка и консалтинг: Компания (часто основанная самими авторами) предлагает платную поддержку, обучение, доработку под нужды заказчика. Это модель Red Hat (для RHEL) и Canonical (для Ubuntu).
Хостинг и облака (SaaS): Предоставление готового, управляемого сервиса на основе открытого кода. Например, Elasticsearch имеет открытое ядро, но Elastic предлагает облачный Elasticsearch с кучей дополнений.
Пожертвования, спонсорство (GitHub Sponsors, Open Collective): Сообщество и компании напрямую финансируют разработку (Godot).
Двойное лицензирование: Проект распространяется под свободной лицензией для сообщества, но если вы хотите использовать его в проприетарном продукте и не открывать свой код — вы покупаете коммерческую лицензию. Так работает, например, Qt.
С чего начать свой путь в Open Source?
Шаг 1: Как найти проект для контрибьюта?
От проблем. Идите от своей боли. Используете какую-то библиотеку и нашли баг? Пофиксите его! Вам не хватает какой-то фичи — попробуйте её реализовать. Это лучший мотиватор.
По технологиям. Любите Go или какой-то другой язык? Ищите проекты на них. Ещё интереснее — использовать контрибьют как повод изучить что-то новое. Хотели попробовать Rust, но не было проекта? Найдите issue в Rust-проекте! Это лучшая мотивация разобраться.
Ищите метки. На GitHub есть специальные метки для новичков:
good first issue
,help wanted
,up-for-grabs
. Это идеальная точка входа.
Шаг 2: Как сделать первый вклад?
Внимательно прочитайте
CONTRIBUTING.md
иREADME.md
. Да, это скучно, но это уважение к правилам сообщества.Не лезьте с огромными архитектурными изменениями. Начните с документации, с мелкого бага, с перевода.
Перед тем как делать большую работу, создайте issue и предложите свое решение. Обсудите его с мейнтейнерами. Возможно, вашу идею уже отвергали 10 раз до вас, или она не вписывается в видение проекта. Сэкономите кучу времени.
Будьте готовы к критике. Не воспринимайте её как личное оскорбление. Это лучший способ обучения.
Шаг 3: Как найти контрибьюторов в СВОЙ проект?
Сделайте код и документацию чистыми и понятными. В хаос никто лезть не захочет.
Четко опишите, чем можно помочь, в файле
CONTRIBUTING.md
.Будьте открыты для общения. Отвечайте на issues и пул-реквесты быстро и вежливо.
Просите помощи на тематических форумах, в чатах (например, в Telegram-чате для опенсорс-энтузиастов: https://t.me/OpenSource_Chat).
Заключение
Напоследок хочу сказать, что для меня главный ресурс опенсорса — не строчки кода, а люди. Это то, что принципиально отличает его от любого корпоративного проекта. В компании вас собирают в команду сверху. В опенсорсе вы сами находите своё сообщество единомышленников, которые горят той же идеей, что и вы.
Здесь нет KPI и performance review. Есть только уважение, которое нужно заслужить качественной работой и готовностью помочь. Вы начинаете с мелкого бага, а через год вас уже знают в лицо на митапах, а ваш голос в дискуссиях имеет вес. Вы обретаете не просто коллег, а соратников и друзей по всему миру. Это та самая магия, которая превращает рутинный контрибьют в образ жизни. Когда ты знаешь, что твоя работа видна и важна не для одного менеджера, а для всего сообщества, это меняет ощущение от самого процесса.
Перестаньте просто использовать код. Начинайте писать его самостоятельно и делиться им. Ваше имя может быть следующим в том самом списке.