До 30 ноября

Скидки до 81 000 руб и вторая профессия в подарок!

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

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

Время чтения статьи ~9 минут 23
Как выбрать свой первый опенсорс проект: инструкция от Хекслета главное изображение

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

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

Аватар пользователя Maxim Skripov
Maxim Skripov 05 августа 2022
23
Рекомендуемые программы
профессия
Осваивайте разработку веб-страниц, оживляйте дизайн макетов, публикуйте сайты и приложения. Отслеживайте ошибки в интерфейсе и устраняйте их
10 месяцев
с нуля
Старт 21 ноября
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 21 ноября
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 21 ноября
профессия
Научитесь разработке веб-приложений, сайтов и программного обеспечения на языке Java, программируйте и используйте структуры данных
10 месяцев
с нуля
Старт 21 ноября
профессия
новый
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
9 месяцев
с нуля
Старт 21 ноября
профессия
Занимайтесь созданием сайтов, веб-приложений, сервисов и их интеграцией с внутренними бизнес-системами на бекенд-языке PHP
10 месяцев
с нуля
Старт 21 ноября
профессия
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 21 ноября
профессия
Обучитесь разработке визуальной части сайта — фронтенда, а также реализации серверной — бэкенда. Освойте HTML, CSS, JavaScript
16 месяцев
с нуля
Старт 21 ноября
профессия
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 21 ноября
профессия
новый
Организовывайте процесс автоматизации тестирования на проекте, обучитесь языку программирования JavaScript, начните управлять процессом тестирования
8 месяцев
c опытом
Старт 21 ноября