Почему участие в Open Source проектах это интересно и полезно

ae9521d1e9ef47a1ab6b7b240b330af6.png

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

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

Впервые я узнал про мир открытого ПО где-то в году 2009, когда начал серьёзно заниматься программированием и зарабатывать этим.
Но впервые отправил pull request в open-source проект году только в 2012. Это было попытка добавления Redis в качестве провайдера для кэша в Joomla Framework. Скажем так, попытка была не самая удачная, но попробовать очень хотелось.

Вернулся я к open-source позже — в 2015.
Я долгое время пытался придумать и реализовать с друзьями и коллегами разные идеи, «замутить стартап» и тд. Но всё почему-то захлёбывалось, лично мне не хватало мотивации.
Тогда я попытался взглянуть на эту ситуацию и понять почему это происходит.
Я понял, что всё дело в том, что меня интересовали не сами идеи, стартапы, бизнес, мне была интересна разработка и программирование.
И поняв это, я решил что если мне интересно программирование как таковое, то почему бы не направить это в полезное русло и не помочь улучшить инструменты, которыми я пользуюсь. Так я начал периодически отправлять pull request’ы в проекты, которые мне нравятся (Yii2, Design Patterns, Django)

Почему это интересно?

1. Знакомство с новыми людьми
За всё время, что я контрибьютил в открытый код, я познакомился с большим числом отличных людей. Все они невероятные профессионалы, с которыми приятно общаться, делиться, узнавать новое. У каждого из нас есть возможность пообщаться с создателями любимых продуктов, получить от них отзыв. В целом коммьюнити — одна из самых важных составляющих таких проектов. 2. Участие во всемирно известных проектах
Вы можете работать в маленькой компании или жить где-то очень далеко, но у каждого есть возможность поучаствовать в развитии проектов, которыми пользуется весь мир. Facebook, Google, Ebay и другие выкладывают свои разработки во всеобщий доступ и мы имеем отличный шанс стать частью сообщества разработчиков таких интернет-гигантов. 3. Это весело
На самом деле, разработка ПО с открытым кодом зачастую бывает очень весёлым занятием, сопровождающимся живым общением.
Вот несколько примеров.

https://github.com/jglovier/gifs
https://github.com/kristopolous/BOOTSTRA.386
https://github.com/lwe/whatthecommit
https://github.com/theonion/fartscroll.js

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

Почему это полезно?

1. Новый неповторимый опыт разработки
Тот опыт, который вы получаете при разработке ПО с открытым кодом, Вы вряд ли получите где-то ещё.
Я помню как я волновался, когда отправлял свой первый pull request. Я перечитывал каждую строчку кода, проверял code-style и т.д.
Осознание того, что Ваш код увидят тысячи других разработчиков, сами создатели проекта, заставляет вас думать, что Вы пишите в своём коде и это очень важно.

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

2. Возможность изучить что-то новое
Лично я люблю изучать новые языки программирования. Прочитав пару-тройку книг, хочется попровать язык в реальных условиях.
Но так как мне никогда в голову не приходят хорошие идеи (ха-ха :)), я ищу интересные проекты с открытым кодом на новом языке, и пробую контрибьютить в них.
Бояться показаться новичком не стоит, никто за это журить не будет, если будут какие-то недочёты, Вы всегда можете их исправить. А если Ваш код всё же вмержили, значит Вы действительно поняли ту или иную часть языка и проекта и можете гордиться собой.3. Отличная галочка в резюме
После того, как я начал контрибьютить, мне всё чаще и чаще пишут HRы со словами — «нам нравится Ваша активность на GitHub, приходите к нам на собеседование».
Я думаю для работодателя ссылка в Вашем резюме на Ваши pull request’ы, принятые в крупные проекты, скажет о том, что вы действительно пишите достойный код, если его одобрило большое количество людей.
Кроме того, намного круче вместо сухого, вырванного из контектста примера кода, прислать работодателю ссылку на принятый pull request.4. Знай свой инструмент
Участие в разработке продуктов, которыми Вы постоянно пользуетесь, помогает Вам лучше понять его — как он устроен внутри, как работает, какие люди в конце концов стоят за ним.
Кроме того, Вы всегда будете знать какие новые «фичи» появляются в проекте, какие есть нерешённые проблемы и многое другое.5. Персональное развитие
Open source разработка помогает развить не только навыки программирования. Вот, на мой взгляд, небольшой список того, какие персональные качества развиваются ещё:
  • Умение общаться
  • Внимательность и аккуратность
  • Уровень английского языка

Этот список можно продолжать ещё.
Кроме того, я считаю, что в каждом человеке присутствует желание помогать другому человеку, и как раз-таки Open Source разработка даёт такую возможность.

Заключение


В конце я хотел бы сказать вот о чём — единственное о чём я жалею, что мне не всегда хватает свободного времени участвовать в open-source разработке. Замечательно, когда компания, в которой Вы работаете, понимает важность такого участия для разработчиков и самой компании и выделяет для этого часть рабочего времени (а я такое встречал).
Тем не менее, даже если Ваша компания не делает этого, старайтесь хоть иногда участвовать в разработке открытого ПО, это сделает Вас настоящим профессионалом и подарит отличный опыт.

Спасибо!

Комментарии (11)

  • 4 июля 2016 в 14:10

    0

    Open Source конечно не панацея, но начинать лучше именно с таких проектов, а уж потом…
    • 4 июля 2016 в 14:13

      0

      как я писал, это очень полезно при изучении новых языков, вам всегда укажут на ваши недочёты и огрехи, что вряд ли будет при написании собственного проекта, который может остаться «вещью в себе».
  • 4 июля 2016 в 14:14

    0

    Пилю на Гитхабе свои проекты, иногда сабмичу баг-репорты в чужие. Не совсем то, что имелось в статье, но ответил «Да» :)
    • 4 июля 2016 в 14:58

      0

      А я контрибьютил и вмерживал чужие pull-request’ы раньше, но ответил «Нет» :) Поскольку вопрос был поставлен в настоящем времени.
  • 4 июля 2016 в 14:16

    0

    на самом деле баг-репорты это тоже участие, это уже не пассивное использование продукта и приносит свои плоды, так что спасибо Вам!
  • 4 июля 2016 в 14:35

    +2

    Мне вот интересно, где люди находят время на участие в open source? Я когда с работы прихожу либо мысли заняты текущим проектом, либо совершенно ничего не хочется делать. На выходных же охото погулять и все такое, а не сидеть перед монитором.
    • 4 июля 2016 в 14:40

      0

      Я когда с работы прихожу либо мысли заняты текущим проектом

      в принципе как раз вот в это время я и нахожу час-другой для этого.
      т.е. я стараюсь не думать о работе уже не в рабочее время, чтобы заняться своими делами, будь то участие в open-source или отдых
      • 4 июля 2016 в 14:51

        0

        , но ведь проект на работе это тоже «твой» проект, особенно если ты занимаешь в нем одну из ключевых ролей. Я в такие моменты всегда вспоминаю сотрудников, работающих под управлением Джобса, которые были полностью увлечены создаваемыми продуктами.
        • 4 июля 2016 в 14:56

          0

          тут уже скорее вопрос об эффективности работы. если 24 часа в сутки думать о проекте, будь то рабочий или свой собственный, это разительно снизит производительность.
          проверено на опыте.
          необходимо периодически переключать контексты, задачи. не говоря об отдыхе.
          иногда действительно можно работать сутки напролёт, а иногда это вредит и тебе, и проекту
  • 4 июля 2016 в 14:51

    +2

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

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

    Он хорош как начало, чтобы было что показать работодателю/заказчику. Однако откинув романтику, и прочее «Миру-мир», кушать хочется сейчас, а не когда-то там возможно. Опыт можно и нужно получать с денежной мотивацией, пусть маленькой. А уж, когда есть свободное время, можно заняться «Хобби», т.е. безвозмездно. Тут тоже не все однозначно, когда человек начинает работать, время всегда нет, а если есть семья, и подавно.

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

    • 4 июля 2016 в 15:27

      0

      лично для меня участие в open-source — это профессиональное развитие, которое поможет мне вместо сегодняшних X получать завтра X + 10% и кушать больше)

      Но в общем и целом доля правды в Ваших словах есть

© Habrahabr.ru