Как получить опыт и зарабатывать на Open Source проектах

В этой статье собрано все, что необходимо знать для участия в Open Source проектах: типичные ошибки и приобретаемые навыки.

Как получить опыт зарабатывать на Open Source проектах

Вопросы об Open Source движении часто возникают и у молодых специалистов, и у программистов, уставших от рутинных задач основной работы. Многих идея открытого программного обеспечения привлекает тем, что она перекликается с более широкой идеей «улучшения мира», одной из основных мотиваций деятельности человека.

Молодые программисты ищут в Open Source проектах необходимый опыт, а искушенные разработчики реализуют свои «проекты выходного дня» и улучшают качество используемых ими программ. При этом многих профессиональных разработчиков останавливает незнание «кухни» Open Source движения и боязнь раздражать сообщество очевидными для его членов вопросами и другими ошибками.

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

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

Опрос о новичках в open source проектах

А начать довольно просто – с поиска проекта, который вам симпатичен.

Поиск Open Source проекта

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

Программы для поддержки студентов

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

В течение 3-4 месяцев вы удаленно занимаетесь написанием и тестированием кода, составлением отчета. В ходе программы вы получаете стипендию, разделенную обычно на несколько платежей. Большинство спонсируемых программ проходят в летние месяцы, чтобы студенты не отвлекались от основной учебной деятельности. Однако регистрация заявок начинается раньше, обычно весной. Редакция proglib.io специально подготовила эту статью именно сейчас, так как большинство конкурсов принимает заявки студентов во второй половине марта.

Google Summer of Code

Google Summer of Code – самая известная глобальная программа, сфокусированная на привлечении молодых программистов в Open Source разработку. В 2018 году студенты могут выбрать один из проектов и подать свои заявки на участие в программе с 12 по 27 марта.

К 23 апреля студентов и менторов связывают в пары для начала планирования проекта. С середины мая до начала августа студенты работают над своим проектом, а в конце августа подводятся результаты. Стипендия зависит от страны проживания и разбита на три платежа: 30%, 30% и 40%. Например, для России сумма сейчас составляет $3600.

С общим планом вы можете ознакомиться на странице расписания. Правила участия в программе приведены на соответствующей странице. Прочитать подробности от участника Google Summer of Code на русском языке можно в серии статей awRabbit.

Другие стипендиальные программы

Кроме Google Summer of Code существует ряд не менее достойных программ поддержки студентов:

  • European Space Agency: Summer of Code in Space (SOCIS) – разработка систем для космоса, анализ данных, обработка изображений, визуализация и т.д. После утверждения проекта студент получает стипендию 1000€, после успешного завершения – еще 3000€. На написание кода дается три летних месяца.
  • OpenDaylight Summer Internship Program – в дополнение к стипендии программа оплачивают перелет в Кремниевую долину на OpenDaylight Event по завершении программы для презентации отчета.
  • The X.Org Endless Vacation of Code (EVoC) – программа, у которой нет дедлайна: вы выбираете проект и описываете что именно готовы делать в течение 3-4 месяцев. Стипендия в $5000 разбита на начальный ($500) и два последующих платежа по $2250, начисляемых после успешного прохождения ключевых точек.
  • Tor Summer of Privacy – очередной виток программы был объявлен в блоге Tor 2 марта. Программа связана с различными идеями относительно развития Tor. У студентов преимущество, но могут участвовать и не студенты. Суммы стипендий аналогичны Google Summer of Code. Подача заявок проходит с 12 по 26 марта, объявление победителей 20 апреля.
  • OWASP Summer Code Sprint – программа, посвященная системам безопасности, более скромная по стипендии (суммарно $1500), но интересная самими проектами.
  • Outreachy Program – программа, нацеленная на привлечение в Open Source людей из социальных групп, слабо представленных в разработке: женщин, трансгендеров и национальных меньшинств без ограничения по возрасту. Размер стипендии $5500 плюс дополнительные $500 в качестве трэвел-гранта. Проекты включают не только программирование, но и User Experience, документирование, иллюстрацию, графический дизайн и Data Science. Дедлайн подачи заявок 22 марта. Для оповещения о датах конкурса подпишитесь на лист рассылки.
  • Rails Girls Summer of Code: еще одна программа, нацеленная на привлечение девушек в IT. Здесь также нет ограничений по возрасту и не обязательно быть студенткой. В этом году прием заявок уже закончился, но продолжается краудфандинговая компания.

Программы менторства проектов

Некоторые компании не имеют возможности обеспечить студентов денежными средствами, но готовы предоставить в качестве ресурсов своих менторов для аналогичных проектов:

  • Mozilla Winter Of Security – программа проводилась последний раз в 2016 году.
  • Season of KDE – в этот раз проходит с 10 декабря 2017 по 21 марта 2018, дедлайн подачи был 26 декабря 2017 года.
  • Free Software Foundation Interships – ближайший дедлайн для подачи заявки 27 апреля 2018. Программа проводится три раза в году: весной, летом и осенью и требует отдачи по 20 часов в неделю.

Обратите внимание, что в этих же сообществах вы можете найти проект и наставника вне обозначенных дедлайнов.

Программа для школьников Google Code-In

Из-за сложностей с перечислением денежных средств несовершеннолетним в стипендиальных программах обычно указывается возрастное ограничение: не младше 18 лет. Для подростков 13-17 лет проводится соревнование по открытому программному обеспечению Google Code-In. В результате конкурсов участники получают различные подарки, футболки и сертификаты. Отчеты русскоязычных школьников по этому конкурсу в 2012, 2013 и 2014 годах сподвигли и некоторых взрослых людей заняться Open Source :)

Другие варианты поиска ментора

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

Более общий сервис – сайт инициативы развития открытого программного обеспечения Open Source Initiative, содержащий множество различной актуальной информации об Open Source движении.

Наконец, вы можете просто писать администратору/менеджерам интересного Open Source проекта, например, владельцам соответствующего репозитория на GitHub.

Где еще можно найти проект или просто задачу

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

Множество проектов собраны на специальных сайтах сообществ. Например относительно Gnome работает программа GnomeLove, для новичков в Linux Kernel есть сообщество Linux Kernel Newbies, у Mozilla Foundation What Can I do For Mozilla и т.д.

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

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

С чего начать

Проекты бывают очень большими, а начать можно с малого. Люди, участвующие в Open Source проектах это в первую очередь сообщество единомышленников. Присоединитесь к e-mail рассылке, IRC-каналу или групповому чату. Выясните как общаются между собой участники проекта. В крупных проектах обычно для каждой составляющей делается отдельная рассылка.

Бывает, что создаются специализированные planet-порталы, аккумулирующие новости из разных каналов. Читайте документацию и комментарии в самом коде. Читайте блоги и twitter, чтобы быть в курсе новостей сообщества. Следите за обновлениями репозитория и баг-трекера.

Как в общих чертах выглядит процесс разработки

Рассмотрим на примере GitHub наиболее популярную модель совместной разработки fork & pull.

Представим, что какое-то сообщество создало нравящийся вам репозиторий. Вы клонируете (fork) его и вносите изменения в своей личной версии репозитория. Если вы думаете, что текущие изменения могут быть полезны для исходного проекта, вы отправляете pull request – запрос на включение изменений кода в репозитории. Контрибьюторы репозитория решают, будут ли предложенные изменения включены в оригинальный репозиторий или отклонены. Подробнее на русском языке вы можете прочитать об этом здесь.

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

Что делать в Open Source проектах

1. Тестируйте промежуточные версии и релизы

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

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

2. Пишите, корректируйте и переводите документацию

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

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

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

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

3. Ищите и исправляйте ошибки

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

Если вы обнаружили еще не оформленный баг, пишите issue. Если вы сами сумели его исправить, оформляйте pull request и указывайте, что он исправляет определенный issue. Или найдите чужой issue, в котором описывается баг и устраните его в коде. Некоторые проекты требуют, чтобы баг-фиксы сопровождались тестами.

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

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

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

4. Пишите тесты

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

5. Пишите примеры и демо-приложения

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

Хороший пример с ясным описанием позволяет, не читая документации, понять пользователю подходит ли проект для решаемой им задачи.

6. Пишите новый код

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

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

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

7. Делайте дизайн

Разработчики в основном думают о реализации какого-то технического замысла, но часто в Open Source проектах материализованной идее не достает красивой обертки. Броское качественное оформление привлечет к проекту и новых пользователей, и участников сообщества.

Найти дизайнера или предложить свои услуги можно при помощи сайта Open Source Design.

8. Ведите блог/YouTube-канал и помогайте другим пользователям

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

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

Все это зарекомендует вас как специалиста и поможет собрать благожелательную аудиторию.

Типичные проблемы новичков

Проблемы, с которыми сталкиваются новички в open source проектах, можно объединить в следующие категории:

  • Неуверенность в собственных силах. Код в Open Source проектах пишут в большинстве своем не гении разработки, а такие же программисты, как вы. И даже у них есть ошибки и просто опечатки. Нужно понимать, что крупным проектам требуются разработчики разного уровня подготовки, навыков и опыта. Открытость никак не гарантирует качества кода и часто даже неопытный новичок лучше, чем отсутствие специалиста.
  • Пугающая величина проекта. Да, проекты могут состоять из сотен и тысяч файлов, миллионов строк кода. Но никто не читает все эти файлы подряд. Чаще всего есть какая-то проблема, которая становится для вас точкой входа в проект – вы постепенно «разматываете» код от этого отправного пункта.
  • Боязнь задавать вопросы и раздражить сообщество своим непониманием. Если вы будете кого-то раздражать, вам скорее всего на это мягко намекнут, в этом нет ничего страшного. Такое происходит крайне редко, так что нужно постараться – многие проекты живут исключительно за счет энтузиазма создателей, и хорошие пулл-реквесты подстегивают их к продолжению работы.
  • Попытки решить множество проблем ондим пулл-реквестом. Обычное правило: один баг – один pull request, одна фича – один pull request. Так тем, кто получает ваши исправления гораздо проще их принимать или отклонять и аргументировать решение.
  • Вопросы сразу лично авторам проекта. Получить ответ гораздо быстрее из чата или мейлинг-листа, так как его одновременно читает множество людей.
  • Вы безоговорочно соглашаетесь с тем, что вам говорят ревьюеры. Ревьюер может быть тоже не прав. Старайтесь аргументировать свою позицию, если вы считаете ее правильной. Это очень полезный навык для того, чтобы работать в команде. Обратная сторона – умейте принять позицию, если вы действительно не првы.
  • Вы сдаетесь. Спокойствие, только спокойствие. Даже об этом вы можете написать в сообщество. Что где-то застряли и не знаете как дальше продвинуться. С этой ситуацией сталкивался любой, и кто-то обязательно даст совет по вашей проблеме.

Чему вы научитесь

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

  • Разбираться в чужом коде.
  • Пользоваться системами контроля версий.
  • Понимать весь процесс разработки продукта.
  • Проводить ревью кода (читать и понимать код вне IDE).
  • Проводить тестирование.
  • Пользоваться инструментами: IDE, сиcтемы сборки, утилиты проверки стиля и логики кода (checkstyle/PMD) и т.д.
  • Работать в очень большой и очень распределенной команде, обсуждая идеи и принимая решения.

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

Как это поможет в работе/карьере

Разработка открытого программного обеспечения повлияла на карьеру многих разработчиков. Мы объединили отзывы разработчиков о работе в Open Source проектах относительно основной работы в следующие пункты:

  • Весомая строчка в резюме и опыт. В хорошем крупном проекте есть все, что обычно требуется от разработчика на собеседовании: грамотное проектирование, хорошее кодирование, навыки работы с системой контроля версий и баг-трекером, peer review, работа в команде и т.д. За два-три года непрерывной работы в такой атмосфере можно вырасти до уровня, соответствующего позиции Senior Developer. Такой опыт может оказаться эквивалентен соответствующей строчке в трудовой книжке.
  • Портфолио и набор программных решений. Вашу компетенцию становится легко оценить по профилю на GitHub. Всегда есть что показать и легко пройти первый этап собеседования при приеме на работу. Кроме того, есть шанс, что работодатель найдет вас по коммитам или профилю на Github. Зарубежом это становится все более распространенной практикой.
  • Репутация и востребованность. Если компания использует развиваемый вами открытый продукт в своем технологическом стеке, вы становитесь идеальным кандидатом на место соответствующего разработки. Кроме того в Open Source проектах вы можете пересечься с другими специалистами, которые предложат вам место в своей компании.
  • Самостоятельность. Можно не ждать выхода новой версии библиотеки, а исправить баг самостоятельно.
  • Стажировки в мировых компаниях.

Как это поможет в учебе

Вернемся к студенческому вопросу. Что дают занятия открытым программным обеспечением студенты?

  • Опять-таки опыт: так как это открытое программное обеспечение, вы видите как в реальности решаются те или иные задачи. Кроме того, списков рассылки вы понимаете как это решение появляется в команде. То есть это настоящее подспорье для обучение практическому программированию.
  • Во многих институтах работа в подобных проектах оценивается преподавателями как показатель зрелости специалиста, в силу чего вам могут "автоматом" перезасчитываться лабораторные и курсовые, а свою дипломную работу при везении можно посвятить вашему вкладу в одном или нескольких Open Source проектах.
  • Результаты вашей работы могут служить материалами для научных статей и конференций, дающих бонусы или необходимых для поступления в магистратуру/аспирантуру.
  • Наконец, в результате общения вы поднимаете свой уровень владения английским языком.

Если вы студент, это также позволит вам претендовать на различные стипендии.

  • Стипендия по постановлению Правительства РФ #945.
  • Стипендия Президента РФ.
  • Стипендия Правительства Москвы.
  • Стипендия фонда Владимира Потанина.
  • Стипендия Аниты Борг.
  • Другие конкурсы гранты.

Собственный проект

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

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

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

Варианты развития

В дополнение к спонсорству возможны следующие варианты заработка для дальнейшей работы в Open Source:

  • Собственный бизнес. Сделайте проект, на основе технологии которого можно построить бизнес. Например, вы создаете бинарники для конечных пользователей. К технологии будет испытываться большее доверие в силу свободности кода –можно проверить проект на отсутствие закладок. Кроме того, вы можете создать более крупный программный продукт, который может применяться многими, и на собственном примере вы можете показать другим как работает проект и привлечь контрибьюторов.
  • Платная поддержка. Одна из самых популярных моделей: вы разрабатываете открытый код, но предоставляете клиентам платную поддержку своего решения. Таким образом, например, поступает Linux Red Hat.
  • Разработка на заказ. Фактически аутсорсинг для других фирм и платные доработки под нужды заказчика. Пример: компания Chronicle Software кроме свободных проектов Crhonicle выполняет заказы по разработке систем с использованием этих проектов.
  • Обучение клиентов. Проводите обучающие платные тренинги, на которых вы учите клиентов как использовать ваш продукт. Таким образом, вы одновременно продвигаете проект и зарабатываете деньги.
  • Двойное лицензирование. Лицензируйте свой проект двумя лицензиями. Например, бесплатной лицензией для одиночных пользователей и образовательных учреждений и платной лицензией для коммерческого применения. Примером является система виртуальной роботехники V-REP.
  • Платные вспомогательные сервисы. Стратегия, близкая к предыдущей, но более гибкая: зарабатывайте не на самом проекте, а на предоставлении платных вспомогательных сервисов, таких как хостинг, сервис резервного копирования или мониторинга.
  • Сбор пожертвований. Не самый популярный подход в Open Source проектах, примером может служить Linux Mint и ReactOS.
  • Краудфандинговые компании. Последний подход, совмещающий первый и предпоследний пункты данного списка заключается в целенаправленном сборе средств на создание продукта в ограниченные сроки. Такие компании регулярно объявляются на Kickstarter и c переменным успехом набирают необходимую сумму. Один из успешных примеров – клиент для MySQL mycli.

О чем нужно помнить

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

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

Как раскрутить свой Open Source проект

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

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

Когда вы посчитаете, что проект уже выглядит достойно, проведите рекламную кампанию: добавьте ссылки на проект в Reddit (в ветку reddit.com/r/{язык вашего проекта}), Hacker News, в профильных группах и форумах. Если ожидается, что проект станет достаточно крупным, заведите для него свой твиттер-аккаунт, в который будете выкладывать новости по работе над проектом и попробуйте его разрекламировать, попросив кого-то из близких по духу известных разработчиков.

Чем большему числу людей будет полезен ваш проект, тем больше пользователей вы сможете заинтересовать и привлечь к совместной работе в собственных Open Source проектах.

Другие материалы по теме

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ