Остаточний посібник зі сприяння відкритому коду

Я розповім вам усе, що я знаю про Open Source. Почнемо з чогось простого. Ви знаєте, що таке товар? Продукт - це те, що ви можете легко вживати, наприклад, бурріто в ресторані. Але щоб створити цей продукт, потрібно зробити кілька кроків. У ресторані у вас є шеф-кухар, який має рецепт цього бурріто. Вони завжди дотримуються одного і того ж рецепту і виготовляють його з одних і тих же інгредієнтів, щоб забезпечити відповідну якість кожного разу.

Сприяння відкритому коду може допомогти вам потрапити у сферу технологій, змінити кар’єру або вдосконалити свою нинішню. Усі допомагаючи громаді!

У більшості ресторанів, якщо ви зайшли до шеф-кухаря і запитали: «Вибачте, я люблю ваше буріто; я можу отримати рецепт? " вони відмовляться - це не відкритий код. З відкритим кодом - це коли, крім продукту, ви також маєте доступ до всіх інгредієнтів та рецептів, тобто ви можете відтворити ціле буріто прямо вдома.

А тепер уявіть, що ви починаєте робити це буррито, але прийшли до висновку, що хочете скоротити м’ясо. Тож ви заміните його авокадо. У такому випадку ви берете рецепт, обмінюєте м’ясо на авокадо, виконуєте решту кроків до листа і перевіряєте, що вийде.

Може виявитись, що ваша страва смачніше смаку їжі в ресторані. Якби ресторан працював як проект з відкритим кодом, ви могли б піти до шеф-кухаря і сказати: «Гей, твоє буріто чудове, але я додав авокадо, і тепер це навіть краще! Ви можете додати його до свого меню ".

Роль шеф-кухаря полягає в підтримці продукту. Вони можуть прийняти зміни або можуть прийняти рішення

що авокадо - погана ідея і не відповідає концепції ресторану. У будь-якому випадку, поділившись своїми змінами до проекту, ви щойно стали співавтором.

Вітаємо!

Що робить проект?

Браузер Firefox є прикладом проекту з відкритим кодом. Він складається з тисяч рядків вихідного коду та інструкцій щодо того, як перетворити цей вихідний код на придатний для використання продукт, такий як веб-браузер. Цей код доступний для всіх, тому кожен може отримати його, прочитати, перевірити або побудувати. Кожен, хто хоче змінити поведінку Firefox, може внести зміни до вихідного коду та створити спеціальну версію. Крім того, кожен може надіслати ці зміни назад співробітникам проекту.

Але у проектах з відкритим кодом є не тільки код. У нас також є користувальницький інтерфейс та графічний дизайн. І так, навіть термінальні програми, такі як редактор Vim, мають графічні інтерфейси.

Вам не потрібно кодувати, щоб брати участь у відкритому коді!

Окрім інтерфейсу, є також взаємодія користувачів, зручність використання та щось, що називається User Experience (UX) - все це набирає популярності в останні десятиліття. Якщо ви маєте досвід у галузі дизайну, образотворчого мистецтва чи психології, ви можете знайти свою нішу за допомогою UI / UX. Наступне, що містить продукт, - це засоби масової інформації, включаючи звуки, графіку чи відео. Не у всіх проектах вони є, але вони не такі вже й рідкісні.

Однак документація є однією з частин, на яку часто не звертають уваги. Найпростіший спосіб внести свій внесок - це вдосконалення документації. Копірайтери повинні почуватись як вдома з цими темами. Текстові ресурси та переклади також легко вводяться.

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

І нарешті, є юридична частина, досить рідкісна складова, яка стосується переважно величезних проектів. Є юристи, які займаються переважно проблемами з відкритим кодом, і більшість із них добровільно витрачають свій час.

Якщо ви вмієте писати прозу, малювати, робити музику, хороший маркетолог або юрист: Ви потребуєте спільноти Open Source!

Якщо ви відчуваєте нездатність проектувати, вносити зміни, писати ліцензії, не лякайтеся. Ви можете зробити інший внесок. Ви можете повідомити про помилку або запропонувати зміни у поведінці чи зовнішньому вигляді.

Ви знаєте, що найкраще? Якщо кожен член спільноти вносить трохи часу, трохи зусиль та трохи особистого досвіду, ціла спільнота отримує приголомшливий продукт, часто безкоштовний.

Не відчуваєте себе творцем? Надішліть звіт про помилку або надішліть запит на функцію!

Чому це варто мого часу?

Чому варто сприяти відкритому коду? Чому ви витрачаєте свій час на написання пропозицій чи коду чи переклади, а не на прогулянку? Існує кілька причин. Усі вони випливають з передумови, що внесок у відкритий код є загальнодоступним. Кожен може бачити, що роблять усі інші. І це чудово!

Ви збільшуєте свої компетенції

Якщо ви пишете фрагмент коду, розробляєте інтерфейс або створюєте графіку, ви навчаєтесь. Це чудова вправа для тих, хто хоче змінити кар’єру. У відкритому коді нікого не цікавить, працювати ви старшим розробником чи садівником. Важливим є якість внеску, який ви можете внести. І як тільки ви проявите себе в проекті з відкритим кодом, ви отримаєте цінний досвід. Більше ти не повинен почувати себе самозванцем, який щойно закінчив табір для завантаження. Ви станете членом спільноти з послужним списком, який кожен може перевірити.

Це працює, навіть якщо ви застрягли в одній технології, але уявіть своє майбутнє з чимось іншим. Скажімо, ви розробник COBOL, який мріє влаштуватися на роботу UX? Просто починайте вдосконалювати UX у Firefox і надсилайте свої внески. Після їх прийняття ви можете додати до свого резюме нову посаду: дизайнер UX для проекту Firefox. Ви щойно дізналися щось корисне та покращили свої повноваження.

Ви покращуєте свою видимість

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

Друга перевага від приєднання до такої спільноти полягає в тому, що всі ваші інші канали автоматично стають помітнішими. Наприклад, відвідувачі проекту з відкритим кодом, до якого ви берете участь, можуть дізнатися про ваш канал YouTube або знайти вас у LinkedIn, щоб запропонувати вам роботу.

Це підводить нас до наступного пункту.

На сьогоднішній день звичною практикою для ІТ-рекрутерів є перевірка GitHub у пошуках нових талантів. Оприлюднюючи свій код, ви фактично створюєте реальне резюме, яке кожен може перевірити. Не потрібно зв’язуватися зі своїми колишніми роботодавцями чи клієнтами. І якщо ваш профіль GitHub посилається на ваш профіль LinkedIn або домашню сторінку, ви легко доступні, тож шанси отримати роботу вашої мрії зростають.

Майте на увазі, вам навіть не потрібно мати комерційний досвід у цій конкретній галузі. Для цих рекрутерів ваші внески з відкритим кодом так само дійсні!

Ви знайдете роботу або нових клієнтів

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

Ви знаходите нових співробітників

Це працює і в інший бік - ви можете знайти потенційних працівників. Якщо ви робите щось приємне та корисне для інших, опублікуйте це як проект з відкритим кодом! Є ймовірність того, що хтось захоче вдосконалити ваш проект або працювати для вас.

Ви робите щось для інших

Ще однією перевагою участі в цих проектах є можливість зробити щось для інших та отримати їхню вдячність. Усі отримані нотатки з подякою зроблять ваш час більш ніж вартим уваги - - і ви, можливо, навіть внесли свій внесок у чудовий проект.

Ви отримуєте доступ до приємної статистики

Ви шанувальник гейміфікації? Тоді ця для вас. Деякі люди дуже люблять статистику, і для них GitHub пропонує щось особливе. Кожна дія, яку ми робимо в GitHub - найбільшій спільноті з відкритим кодом - позначена зеленим квадратом у величезному календарі. Чим більше справ ми робимо в той чи інший день, тим світліше буде квадрат. Коли ми робимо свій внесок протягом декількох днів поспіль, GitHub зараховуватиме це до серії і зберігатиме ваш рахунок для подальшого використання. Це виступає мотивацією перемогти найкращі бали на сьогодні.

Як ви знаходите свій перший проект?

Є кілька способів. Перш за все, такі великі гравці, як Firefox чи Android, мають високу базу користувачів і потребують великих змін та вдосконалень. Як тільки ви внесете зміни до такого проекту, ваші зміни стануть помітними для мільйонів. Ви можете відвідати GitHub і подивитися, які найпопулярніші сховища. Наприклад, на момент написання цього репозиторію номер один із зірочок - freeCodeCamp.

Я б не обов'язково рекомендував цей перший підхід, якщо ви новачок. Головною перевагою величезних проектів є також їх головне прокляття. Кожен хоче внести свій внесок, але існує обмежена кількість тих, хто підтримує, які можуть відповісти на ваші запити. Якщо ви дійсно хочете вплинути, ви можете замість цього спробувати менші проекти, які зростають. GitHub Trending - це місце, де можна знайти такі випадки.

Іншим підходом є вибір чудового проекту як першого учасника. Назвемо це енергоефективним підходом. Чудові проекти складаються та курируються списками посилань. Наприклад, awesome-shell перелічує круті висновки CLI, тоді як awesome-JavaScript має справу з усіма новими блискучими фреймворками, які з’являються щодня. Існує також приголомшливий список книг, що розширюють розум, і, звичайно, приголомшливі списки.

Чому це хороший підхід? Зусилля, необхідні для того, щоб внести фактичний внесок, досить низькі, тому існує велика ймовірність підвищення рівня дофаміну в результаті добре виконаної роботи. Це підвищення рівня дофаміну повинно спричинити наступний внесок тощо. Як тільки м’яч починає котитися, важко змусити його зупинитися.

Останнім підходом, який я рекомендую, є підключення до величезної події з відкритим кодом. Однією з таких подій, що відзначається щороку в жовтні, є Хактоберфест. Очікується, що учасники подадуть п’ять запитів на витяг на GitHub (тобто, подадуть п’ять внесків). Кожен, хто виконує це завдання, отримує приємні пільги від спонсорів (наприклад, футболки та наклейки). Щоб полегшити участь учасникам, деякі приклади проектів перераховані на веб-сайті.

Ще одна подібна подія - Google Summer of Code. Ви можете ознайомитися зі списком проектів минулого. Можливо, хтось надихне вас настільки, щоб зробити свій внесок! О, і тоді є дивовижний список перших можливостей для PR!

Якщо ви хочете постійно сприяти відкритому коду, знайдіть те, що ви регулярно використовуєте. Таким чином ваші внески також будуть на користь вам самим. Це, безумовно, найкращий спосіб забезпечити якісну роботу.

Що робить внесок цінним?

Тепер ми знаємо, чому робити внесок, і знаємо, де робити внески. А тепер зупинимось на тому, що робить наш внесок цінним? Нічого не вартий внесок не буде прийнятий, тому краще підготуватися!

Ми повинні поважати умови праці

Перш за все, ми повинні поважати умови праці інших. У багатьох проектах ви можете знайти такі документи, як такі, CONTRIBUTORS.mdщо представляють найкращий спосіб внесення внесків. Якщо проект, до якого ви бажаєте приєднатися, не має подібного документа, перевірте інші можливі місця, наприклад README.md, вікі-сторінку або проектну сторінку проекту. Ознайомтесь з правилами та переконайтеся, що ви їх розумієте та виконуєте.

Якщо ваша робота не відповідає умовам, викладеним у вказівках співробітників, можливо, вона буде відхилена ще до огляду. Ці вказівки та умови служать для захисту часу тих, хто їх обслуговує. Якщо ви не можете дотримуватися їх, супровідники можуть припустити, що ви настільки ж необережно ставитеся до іншої роботи, яку виконуєте.

Подумайте, наскільки цінним є ваш внесок для інших

Коли ми знаємо, як поводитися, давайте розглянемо, наскільки цінним є наш внесок для інших. Уявіть на мить компанію, яка виробляє костюми на замовлення. Ви купили костюм у його магазині, а потім пішли за пивом. Натхнення вражає, тому ви прикріплюєте до костюма сошник для пляшок вдома. Таким чином, кожного разу, коли ви підете за пивом, не буде проблем відкрити його.

Відкритим кодом ви йдете до кравця і представляєте свою чудову ідею прикріпити сошник до костюма. Зараз, незалежно від винахідливості вашої ідеї, кравець, який виступає в ролі супровідника проекту, може не вважати ваше додавання відповідним його концепції. Це не означає, що ваша робота слабка чи нікчемна; це просто означає, що деякі функції приваблюють лише невелику аудиторію. І оскільки кожна функція повинна підтримуватися та захищатися, додаючи до вартості проекту, супровідник проекту повинен подбати про те, щоб кожна функція мала вигідну суму.

Будьте багатослівним у спілкуванні

Якщо це не зміна, яку ви вносите, а звіт, будьте багатослівними. Запишіть все, що вам відомо, щоб детально пояснити контекст. Це особливо важливо при повідомленні про помилки. Чим більше контексту ви опишете, тим легше буде комусь виправити це так, як ви хочете. Пам’ятайте про можливі випадки використання та очікувану поведінку, але залиште будь-які деталі, не пов’язані із звітом. Сказати, що ви хочете, щоб елемент був зеленим, оскільки він відповідає іншим продуктам, що конкурують, - це нормально. Надання детальної історичної довідки про змагання - це занадто багато.

Запустити, протестувати, перевірити, а потім ще раз перевірити перед подачею

Перевірте все та протестуйте все, перш ніж подавати зміни. Переконайтеся, що ваші зміни стосуються вже розробленої, а не історичної версії. Майте на увазі, що запускати тести потрібно лише один раз. Багато хто з них виконують щодня, тому заощаджуйте час, переконуючись, що все на першому рівні. І в будь-якому випадку, це просто свідчить про те, що ви дбаєте і не подаєте неакуратну роботу.

Як уникнути пригнічення в Інтернеті

Запам’ятайте це: кожного разу, коли ви публікуєте щось у мережі, ви відкриваєтесь для критики. Незалежно від того, якщо це коментар, фотографія, стаття чи код, ви зараз вразливі. Вам слід привітати частину критики, оскільки це допоможе вам зростати.

Але є й інші види критики: токсичні та необґрунтовані. Найкраще навчитися боротися з різними видами критики, перш ніж розпочати ділитися своєю роботою з громадськістю. Таким чином ви будете готові до того, що вас чекає, і не будете сприймати все особисто.

Наші найкращі ідеї не найкращі для всіх

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

Наша найкраща робота може не відповідати стандартам

Як би важко це не було почути, ваша найкраща робота може не відповідати стандартам проекту. Я пережив це сам. В одному проекті, в якому я брав участь, я отримав розумний перелік вказівок щодо написання хорошого коду. Я вирішив зробити це ідеально (так я і думав) вперше. Зрештою, я знав, на що слід звернути увагу. Я надіслав свої зміни і через деякий час отримав відповідь. Майже кожен рядок коду був виділений. Цікаво, що всі коментарі були обґрунтованими та точними. Те, що я вважав ідеальним, бракувало майже у кожному окремому рядку.

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

Ми можемо отримати відмову, навіть якщо ми зробили все правильно

Іноді ти просто отримуєш "ні" за відповідь, і ти мало що можеш зробити, щоб це змінити. Ви все ще вважаєте, що костюми з сошниками є прекрасною ідеєю? Тоді починайте виробляти власні! У відкритому коді акт створення нового проекту на основі існуючого називається "форкінгом".

Відповідно, новий проект вважається “розвилкою” оригіналу. Наприклад, Ubuntu є форком Debian. Якщо супровідники проекту відмовляються включати вашу роботу в свій продукт, ви можете розглянути питання про відмову від проекту та самостійно стати супровідником. Це слід практикувати лише в крайніх випадках. Це не лише навантаження на обидві групи тих, хто їх підтримує, це також бентежить громаду. Якщо ви випадково почули "ні", варто дізнатися причини, що лежать в основі цієї відповіді.

Це може бути цінним уроком на майбутнє.

Тролі скрізь

Тепер тролі.

Оскільки Інтернет створює ілюзію анонімності, з’явилася субкультура, яка із задоволенням знищує інших людей. Цю субкультуру називають Інтернет-тролями. Я ще не мав можливості битися з кимось таким. Але я б порекомендував вам прочитати «Повний посібник з розуміння та роботи з онлайн-тролями» Реджена Честейна. Це допоможе вам підготуватися до такої неприємної зустрічі.

Заробіток на відкритому коді

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

Звичайно, це так!

Хоча саме програмне забезпечення, як правило, безкоштовне, існують інші способи заробляти на життя за допомогою відкритого коду. У цьому відношенні це дуже нагадує мистецтво. Як і у випадку з мистецтвом, деякі методи можуть працювати для вас, а інші - ні. Це неточна наука.

Постійні методи

Мій улюблений метод - кнопка Пожертви. Ви можете побачити це під час роботи над одним із моїх проектів: Songcorder. Залежно від розміру чайових, які ви очікуєте, серед варіантів, які варто розглянути, є Paypal (якщо ви плануєте отримувати чайові більше 15 доларів) та „Купи мені каву” (для чайових менше 15 доларів).

Кнопка "Купи мені каву" виглядає так (ви можете натиснути її, якщо вважаєте, що я цього заслуговую):

Окрім загальних кнопок, існують методи, присвячені проектам з відкритим кодом, такі як Gittip / Liberapay (цей любить міняти імена досить часто). Як не дивно, одне з популярних сховищ, яке підтримує Liberapay, є ... чудовим.

Припущення схоже на положення Flattr. Ви вибираєте щомісячну суму грошей, яку ви хочете витратити на творіння, і коли ви схвалюєте якусь роботу, автор роботи отримує частку вашого бюджету. Скажімо, ви вирішили, що можете дозволити собі платити 5 доларів щомісяця за проекти з відкритим кодом. Якщо ви схвалите чотири проекти за певний місяць (позначивши їх зірочкою або натиснувши кнопку Flattr), кожен з авторів проектів отримує 1,25 дол. США. Досить просто.

Замість підтримки цілих проектів, ви також можете робити пожертви (майже) безпосередньо вкладникам. Tip4Commit працює таким чином. Прихильники вносять певну кількість біткойнів у проект, і кожен, хто бере участь у проекті, отримує частку від депозиту.

Інший можливий підхід - Патреон. Тут замість рівномірно розподіленого бюджету прихильники дають фіксовану суму готівки будь-якому творцеві, якого вони обрали. Якщо ви хочете дізнатись, чи це правильний підхід для вас, Еріка Сотер прекрасно пояснює: «Чому Patreon - це Dope AF для творців». Синдре Сорху з неймовірною славою є одним із видатних спеціалістів з відкритим кодом. Але більші проекти, такі як Homebrew або Linuxbrew, також використовують Patreon для фінансування.

Усі вищезазначені методи добре працюють, якщо ви ставитеся до відкритого коду як до хобі чи побічної суєти. Якщо вам пощастить, вони навіть можуть перетворити вашу пристрасть на щоденну роботу. Але насправді, якщо ви хочете зробити Open Source щоденною роботою, звичайним підходом є надання консультаційних послуг. Це може означати продаж професійних функцій корпоративним клієнтам або допомогу корпоративним клієнтам розгорнути та налаштувати ваші продукти. Багато підприємств не мають навичок, необхідних для адаптації проекту з відкритим кодом до своїх внутрішніх потреб. І хто краще підготовлений для цього завдання, ніж супровідник оригінального проекту?

Якщо ви можете допомогти іншим і отримати за це гроші, відважно!

Одноразові методи

Одним з популярних методів завантаження коштів на проект з відкритим кодом є краудфандинг. Існує безліч платформ, присвячених цій справі. Наприклад, Kickstarter допоміг запустити Mycroft Mark II, голосового помічника з відкритим кодом. Інший великий гравець Indiegogo провів кампанію для поштового клієнта Гірі. На жаль, проект не досяг своїх цілей. MediaGoblin навіть запустила власну кампанію без сторонніх розробників.

Якщо ви боїтесь, що не знайдете багатьох прихильників, необхідних для успішного краудфандингу, можете спробувати гранти. Мені відомо про принаймні два фонди, що надають такі гранти. Одним з них є Фонд Тревіса, за яким стоїть компанія, що стоїть за популярною програмою Travis CI. Інший - Mozilla Foundation, творці веб-браузера Firefox.

Більшість представлених на сьогодні інструментів зосереджені на програмах з відкритим кодом. Але автори можуть зробити трохи тіста, ставши також Мисливцями за головами. Щедрість - це функції, які вимагає третя сторона за фінансовою винагородою. Щоб полювати на них, потрібно виконати запит функції та вимагати винагороду. На даний момент найпопулярнішою платформою для полювання за головами є Bountysource.

Але якщо ви віддаєте перевагу приймати криптовалюту як платіж, Gitcoin працює на подібних принципах. Перегляньте “Все, що вам потрібно знати про Gitcoin” від Vivek Singh для деталей.

Іншим правильним підходом є платна практика. Доступні два популярні варіанти:

  • Google Summer of Code - орієнтована на студентів
  • Пропаганда - спрямована на меншини в галузі техніки

Або, якщо ви справді захоплені, чому б вам не приєднатися до компанії, яка займається розробкою програмного забезпечення з відкритим кодом? Є з чого вибрати. Як і при консультуванні, ви одночасно отримаєте зарплату і зробите щось для громади.

Це безпрограшна ситуація!

Подальші дослідження

Якщо ви шукаєте більше натхнення, ознайомтеся з проектом лимонадного стенду на GitHub. Або додайте туди власну ідею. З відкритим кодом все можливо!

Пошук рідних

Я не згадував про це дотепер, але продукти, проекти та технології - це лише крихітна частка всього руху з відкритим кодом. Перший і найголовніший компонент - це казкова спільнота! Як тільки ви починаєте робити внески, ви одразу отримуєте багато нових знайомств, людей, у яких можна вчитися, людей, яких ви можете наставником, і людей, з якими ви можете обмінюватися думками.

Кожен проект має свою спільноту, але є також місця, де ентузіасти з відкритим кодом спілкуються незалежно від їхнього походження.

Ви можете приєднатися до груп у соціальних мережах, таких як група Linux та Open Source на LinkedIn. Є також багато цікавих каналів Gitter, які можна перевірити. Gitter - це система обміну миттєвими повідомленнями для спільнот з відкритим кодом. Існують також групи розсилки, форуми або платформи, такі як GitHub, які дозволяють співпрацю та спілкування. Але якщо ви хочете особисто познайомитися з однодумцями, подумайте про відвідування або приєднання до Hackerspace.

Хакерські простори - це місця, які переносять любов до експериментів поза світом програмного забезпечення. Програмне, апаратне забезпечення, саморобка та рукоділля також вітаються. Сторінка Wiki містить перелік усіх Hackerspaces, тому знайдіть найближчий і просто відвідайте їх. Ви будете здивовані тим, що можливо, коли ідея відповідає виконанню!

Тобі сподобалося? Я допомогла тобі? Якщо так, не соромтеся приєднуватися до мого бюлетеня:

Якщо вам подобається публікація, підпишіться на мій бюлетень. Ви будете проінформовані про все, що я пишу та рекомендую (книги, статті, інструменти та, можливо, музику).