Все статьи | Мотивация

Как выбрать свой первый опен-сорс проект: инструкция от Хекслета

Как выбрать свой первый опен-сорс проект: инструкция от Хекслета главное изображение

Все и везде говорят, что Open-Source — лучшее место, где начинающие разработчики могут набираться опыта. Проджект-менеджер Хекслета Максим Скрипов рассказывает, как выбрать первый опен-сорс проект, на что обращать внимание новичку и для чего это вообще нужно.

Что такое опен-сорс проект?

Опен-сорс — это проекты с открытым исходным кодом, в разработке и развитии которых может принять участие любой желающий. Такие проекты чаще всего развивает сообщество, выстроенное вокруг них. Одним из таких примеров является GIT, а фронтенд разработчикам известна опен-сорс библиотека JQuery. Сюда же относится и операционная система Linux, которой каждый день пользуются миллионы людей по всему миру.

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

С чего начать и где искать проекты с открытым публичным кодом

Новичкам я советую присмотреться к задачам на сайте GoodFirstIssue. Здесь публикуются задачки для тех, у кого нет никакого опыта в разработке. Чаще всего у таких Issue есть тег “good first issue". По этому же тегу можно найти себе первые задачи и через поиск на GitHub.

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

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

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

Опен-сорс проекты Хекслета

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

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

Общение по проекту происходит в канале #codebattle внутри Slack-комьюнити Хекслета.

Читайте также: Как присоединиться к работе над опенсорсом, что такое PS1 и другие вопросы: отвечает разработчик Хекслета Андрей Мошков

Другой наш важный проект — Hexlet-Editor. Это встроенный редактор для написания и исполнения кода, который в дальнейшем мы сможем использовать во всех наших образовательных платформах. Этот проект очень важен для нас, потому что такие сервисы, как Replit и Codepen могут вести себя непредсказуемо или сломаться. Например, один из сервисов начал вставлять свою рекламу и потом вовсе отвалился. Обсудить задачки для развития этого проекта можно в канале #hexlet-volunteers в Slack-сообществе.

Еще одним важным проектом в жизни Хекслета является Code-Basics — ​​это открытый бесплатный проект для изучения основ программирования. Цель этого сервиса — дать базовые знания языков программирования для разработчиков, которые только начинают свой путь. Этот сайт абсолютно бесплатен и развивается благодаря нашему дружному сообществу.

  • Улучшение существующих уроков. Список уроков и языков есть на GitHub
  • Улучшения самого сайта. Задачи по улучшению появляются в Issues
  • Создание уроков для новых языков
  • Перевод уроков на английский язык
  • Популяризация проекта.

Еще есть Хекслет СИКП — трекер прохождения SICP. Участники отмечают пройденные материалы, отслеживают прогресс других пользователей. Проект работает на Laravel. Этот проект мы очень любим и активно развиваем.

Обсудить задачи можно в канале #hexlet-volunteers в нашем Slack-сообществе.

Читайте также: Навыки командной разработки, опыт с GitHub и умение читать чужой код: зачем нужна стажировка

Хекслет-резюме — другой опен-сорс проект для соискателей и HR-специалистов. Кандидаты публикуют свои резюме на сайте, а опытные HR помогают их улучшить. В проекте используется Ruby on Rails. Благодаря ему множество ребят получили свой первый оффер на работу, а работодатели нашли себе разработчиков.

Задачи к нему тоже можно обсудить в канале #hexlet-volunteers в Slack-сообществе.

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 не принимают слишком долго или отклонили, то не расстраивайтесь, такое бывает.
  • Никогда не стесняйтесь задавать вопросы другим людям. Задавая вопросы, вы учитесь искать ответы для своих задач. В дальнейшем вы сами будете помогать новичкам.
  • Чем больше вы будете работать с чужим кодом, тем проще вам будет включаться в новые проекты.
  • Для потенциального работодателя важно, чтобы у вас в портфолио были не только учебные проекты, но и живые.

Никогда не останавливайтесь: В программировании говорят, что нужно постоянно учиться даже для того, чтобы просто находиться на месте. Развивайтесь с нами — на Хекслете есть сотни курсов по разработке на разных языках и технологиях

Аватар пользователя Maxim Skripov
Maxim Skripov 05 августа 2022
Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов для веб-приложений
18 августа 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
18 августа 10 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
18 августа 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
18 августа 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов для веб-приложений
18 августа 10 месяцев
Иконка программы Верстальщик
Профессия
Верстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
18 августа 16 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создание веб-приложений со скоростью света
18 августа 5 месяцев