Все и везде говорят, что Open-Source — лучшее место, где начинающие разработчики могут набираться опыта. Проджект-менеджер Хекслета Максим Скрипов рассказывает, как выбрать первый опенсорс проект, на что обращать внимание новичку и для чего это вообще нужно.
- Что такое опенсорс проект?
- С чего начать и где искать проекты с открытым публичным кодом
- Опенсорс проекты Хекслета
- Важные советы для тех, кто хочет работать с опенсорс проектами
- О работодателях
- Выводы
Что такое опенсорс проект?
Опенсорс — это проекты с открытым исходным кодом, в разработке и развитии которых может принять участие любой желающий. Такие проекты чаще всего развивают сообщество, выстроенное вокруг них. Одним из таких примеров является GIT, а фронтенд разработчикам известна опенсорс библиотека JQuery. Сюда же относится и операционная система Linux, которой каждый день пользуются миллионы людей по всему миру.
В опенсорс проектах начинающие разработчики могут улучшать свои навыки программирования, набираться практического опыта, а также прокачивать свои софт-скиллы в общении с живыми разработчиками. Успешно выполненные Issue — задачи, разработчики добавляют в свое портфолио — это особенно важно для тех, у кого совсем нет практического опыта в разработке. Это поможет при трудоустройстве, так как работодатель всегда смотрит в первую очередь на практические проекты.
С чего начать и где искать проекты с открытым публичным кодом
Новичкам я советую присмотреться к задачам на сайте GoodFirstIssue. Здесь публикуются задачки для тех, у кого нет никакого опыта в разработке. Чаще всего у таких Issue есть тег “good first issue". По этому же тегу можно найти себе первые задачи и через поиск на GitHub.
Студентам Хекслета мы рекомендуем приступать к опенсорс проектам после успешного завершения второго проекта. Это связано с тем, что к его завершению у вас уже появляется представление о том, какого рода задачи вы будете выполнять в дальнейшем. Наш учебный план построен так, что к началу третьего проекта студенты готовы брать простые задачи в продакшене.
При этом, если вы чувствуете, что первый учебный проект дался вам легко, то можете уже посмотреть в сторону наших опенсорс проектов. Для начала, независимо от проекта, рекомендую локально установить его на компьютер и разобраться в чужом коде. Потрогать его и понять, как и что в нем работает.
У Хекслета есть множество опенсорс проектов, в которых могут принять участие все желающие — как самые начинающие разработчики, так и программисты с опытом. Полный список наших опенсорс проектов мы раскрываем в нашем большом гайде «Как участвовать в жизни Хекслета».
Опенсорс проекты Хекслета
Если у вас мало практики в решении задач или вы хотите улучшить свои навыки алгоритмического мышления, то я очень советую обратить внимание на CodeBattle. Всем участникам дается определенная задача, и нужно ее решить на языке программирования, который они заранее выбрали. Например, вы пишете решение задачи на JS, а ваш оппонент решает ее с помощью Python. Процесс решения задачи всеми участниками виден в режиме реального времени — это очень хорошо прокачивает навыки работы в стрессовых ситуациях. Адреналин будет подниматься, а время на решение будет уменьшаться — такой подход поможет подготовится к собеседованию, где часто приходится решать задачи на время.
У Codebattle есть небольшая команда, которая рада активным участникам, есть активное сообщество вокруг проекта. Помогая ребятам улучшать проект, вы будете работать и с будущим пользователям этого проекта. Например, какие задачки сейчас открыты для контрибьюторов Codebattle:
- Участие в разработке сайта
- Добавление новых соревновательных задач
- Участие в разработке Chrome расширения
Общение по проекту происходит в канале #codebattle внутри комьюнити Хекслета.
Читайте также: Как присоединиться к работе над опенсорсом, что такое PS1 и другие вопросы: отвечает разработчик Хекслета Андрей Мошков
Другой наш важный проект — RunIT. Это встроенный редактор для написания и исполнения кода, который в дальнейшем мы сможем использовать во всех наших образовательных платформах. Этот проект очень важен для нас, потому что такие сервисы, как Replit и Codepen могут вести себя непредсказуемо или сломаться. Например, один из сервисов начал вставлять свою рекламу и потом вовсе отвалился. Обсудить задачки для развития этого проекта можно в канале #hexlet-volunteers в Telegram-сообществе.
Еще одним важным проектом в жизни Хекслета является Code-Basics — это открытый бесплатный проект для изучения основ программирования. Цель этого сервиса — дать базовые знания языков программирования для разработчиков, которые только начинают свой путь. Этот сайт абсолютно бесплатен и развивается благодаря нашему дружному сообществу.
- Улучшение существующих уроков. Список уроков и языков есть на GitHub
- Улучшения самого сайта. Задачи по улучшению появляются в Issues
- Создание уроков для новых языков
- Перевод уроков на английский язык
- Популяризация проекта.
Еще есть Хекслет СИКП — трекер прохождения SICP. Участники отмечают пройденные материалы, отслеживают прогресс других пользователей. Проект работает на Laravel. Этот проект мы очень любим и активно развиваем.
Обсудить задачи можно в канале #hexlet-volunteers в нашем Telegram-сообществе.
Читайте также: Навыки командной разработки, опыт с GitHub и умение читать чужой код: зачем нужна стажировка
Хекслет-резюме — другой опенсорс проект для соискателей и HR-специалистов. Кандидаты публикуют свои резюме на сайте, а опытные HR помогают их улучшить. В проекте используется Ruby on Rails. Благодаря ему множество ребят получили свой первый оффер на работу, а работодатели нашли себе разработчиков.
Задачи к нему тоже можно обсудить в канале #hexlet-volunteers в Telegram-сообществе.
Hexlet Friends — проект с открытым исходным кодом на Python. Сервис отслеживает опенсорсные проекты «Хекслета». Анализируется количество коммитов, пулл-реквестов, issue. Он автоматически строит рейтинг участников с «ачивками». Сейчас мы хотим добавить туда много нового функционала, поэтому очень рекомендую ознакомиться с Issues.
Если же вы уже более опытный разработчик, которому хотелось бы улучшить свои практические навыки, то предлагаю вам искать проекты на Github или CodeTriage. Обращайте внимание на количество Issues — обычно проекты, у которых их более 100, — это очень крупные опенсорсы, порог вхождения в которые может быть высок. Это чревато тем, что вы будете смотреть на сложные задачи, которые вам не под силу, и думать, что это не для вас. Старайтесь всегда начинать с малого.
Важные советы для тех, кто хочет работать с опенсорс проектами
- Прежде чем приступить к выполнению Issue, сначала ознакомьтесь с проектом и поймите, какие задачи он должен решать. Для начала откройте файл README — обычно здесь можно найти всю информацию о проекте, в том числе руководство, как развернуть его у себя на компьютере. После этого посмотрите на открытые задачи, которые требуются для проекта.
- Берите простые задачи, которые вам под силу. Дальше — больше, так вы сможете улучшать свои навыки в разработке.
- Если что-то не понятно, не стесняйтесь задавать вопросы в комментариях.
- Не переживайте, что ваши вопросы или Pull-Request заметили не сразу. Часто бывает, что вы запушили свои изменения, сделали PR, но его долго не принимают. Это нормально — люди, которые принимают Pull-Request, могут быть заняты на своей основной работе. И вполне может быть, что они уделяют опенсорс проекту несколько часов в неделю. Поэтому наберитесь терпения и ждите. Вы также можете написать контрибьюторам с просьбой посмотреть ваш Pull-Request, возможно, он даст вам комментарий по проделанной работе.
- Если ваш Pull-Request отклонили, не стесняйтесь спросить, почему. Такой фидбэк поможет вам в будущем. Если же разработчик проекта не отвечает вам слишком долго, то стоит задуматься, жив ли этот проект и нужно ли тратить на него свое время.
- Очень важно — вы будете работать с чужим кодом. Поэтому нужно помнить, что все разработчики пишут код по-разному, и научиться читать чужой код — большое дело. Нередко в проектах требуется писать код в определенном стиле, с этим можно ознакомиться в файле README или CONTRIBUTING. Новичку такой подход может показаться сложным. Но если вы разберетесь с этим и освоите этот пункт, то при трудоустройстве на работу вам будет значительно проще въехать в проект.
Читайте также: Как принять участие в работе Open Source проектов на GitHub. Краткое руководство для начинающих
О работодателях
Если посмотреть на наличие опенсорс проектов в резюме со стороны работодателя, то это дает огромный плюс перед другими претендентами на вакансию. Особенно это касается начинающих разработчиков.
При этом участие в опенсорс проектах работодателями ценится больше, чем собственные пет-проекты у начинающих разработчиков. У тех, кто принимал участие в опенсорсе, обычно больше опыта и им легче знакомиться с рабочими проектами.
Компании по-разному относятся к участию своих разработчиков в опенсорсе. Об этом подробно можно почитать в интервью с Александром Макаровым — одним из контрибьюторов опенсорс фреймворка Yii Framework для PHP.
Выводы
- Не бойтесь пробовать себя в новых проектах. Это улучшит ваши навыки и резюме. Выбрать свой опенсорс проект и внести первый PR совсем не сложно.
- Если ваш Pull-Request не принимают слишком долго или отклонили, то не расстраивайтесь, такое бывает.
- Никогда не стесняйтесь задавать вопросы другим людям. Задавая вопросы, вы учитесь искать ответы для своих задач. В дальнейшем вы сами будете помогать новичкам.
- Чем больше вы будете работать с чужим кодом, тем проще вам будет включаться в новые проекты.
- Для потенциального работодателя важно, чтобы у вас в портфолио были не только учебные проекты, но и живые.
Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях