У большинства программистов наступает момент, когда работа/учеба уже не приносят такого удовольствия, как раньше. Хочется стать частью чего-то большего, сделать значимый вклад в сообщество и как-то заявить о себе. Кто-то идет с докладами на конференции, другие в Open Source, а некоторые совмещают обе деятельности. И если для опытных специалистов все вполне понятно и очевидно, то новички часто задаются вопросом: «А с чего начать?».
Новичкам в IT сложно найти свое место, их сковывает неопытность и страх совершать ошибки (многих еще и синдром самозванца поражает). Начать свой путь таким людям может помочь открытое к начинающим сообщество, которое не только поддержит инициативу и предоставит возможности для самореализации, но и позволит сделать действительно значимый вклад, результат которого можно будет увидеть и использовать.
Таким сообществом может стать (и стал для меня) Хекслет. Многие проекты Хекслета не только находятся в открытом доступе на GitHub, но и с радостью принимают пулл-реквесты от всех заинтересованных. Что может дать участие в таких проектах?
Возможность проявить инициативу
Как уже было описано выше, у многих есть энергия и желание поучаствовать в чем-то большем, чем рутинная работа или стандартные домашние задания для обучения. Вы получаете возможность поучаствовать в проекте, который вам интересен, и сделать его лучше.
Сообщество
Современный мир и IT в частности построены на коммуникации и взаимопомощи. Вы помогаете проекту, а взамен получаете новые знакомства, знания и опыт. В сообществе Хекслета можно найти множество интересных знакомств. Это также позволяет развивать полезные soft skills: уметь слушать, слышать и договариваться.
Опыт
В процессе работы вы далеко не всегда будете работать над проектами «с нуля». Скорее всего, это будет проект, разработанный гораздо раньше другими людьми. И вам придется разбираться в нем самому. Для этого необходимо развивать навык чтения чужого кода. И Open Source проекты могут стать отличным тренажером! Перед своим первым вкладом вам придется изучить не только техническую часть, но и различную документацию и правила.
Быть учителем, а не учеником
Специалисты уровня middle и senior часто становятся менторами для новичков. С большой вероятностью то же ждет и вас. Некоторые проекты научат вас грамотно доносить свои мысли до других. Например, вы можете сделать вклад в Code Basics: написать новый курс или улучшить существующий. Написать свой курс для начинающих — прекрасный способ научиться грамотно доносить свои мысли и учить других.
В каких проектах Хекслета можно поучаствовать:
- Codebattle
- CodeBasics
- Hexlet CV
Как правильно выбрать проект
Думаю, на этот вопрос нет однозначного ответа. Но я могу поделиться принципами, которыми руководствуюсь сам:
- Выбирайте проект, который интересен вам. Open Source может не только помочь вам получить опыт, но и быстро перегореть. Новые знания и технологии — это, конечно, хорошо, но какой от них толк, если они вас тяготят и не вызывают интереса.
- Оцените свои знания. Можно, конечно, сидеть неделю, решая задачу оптимизации на C++ после 10-ти часового введения в C++ по ролику на YouTube, но вы уверены, что эта задача вам по силам?
- Обращайте внимание на сообщество и контрибьюторов. Множество звезд на GitHub и популярность — не главные критерии. Если пулл-реквесты в проект принимают неохотно, а к новичкам относятся со снисхождением и не воспринимают их серьезно, то вы рискуете потратить свое время и нервы.
Как Хекслет помог мне
Я узнал про Хекслет уже закончив обучение в других местах и самообучение. Чуть позже, увидев твит основателя школы о добавлении новых языков в CodeBasics, я решил попробовать поучаствовать в создании нового курса. Из доступных языков я выбрал, пожалуй, один из самых необычных и не популярных — Prolog. Сначала был один пулл-реквест с hello-world уроком, потом второй, и понеслось. Я успел написать короткий курс по Prolog, поучаствовать в курсах по Java и Kotlin. А теперь развиваю свои собственные проекты :)
Был ли этот опыт полезен? Несомненно!
- Я впервые получил опыт общения с реальным разработчиком. И не о погоде, а реальном проекте. Смог обсудить, что и как сделать лучше. Для замкнутых людей, как я, это огромный шаг, который неплохо помог мне на собеседованиях и в первой работе.
- Я получил видимый результат от своего вклада. Не несколько строк кода в огромном проекте, которые потеряются и никто их не увидит. Нет! Теперь могу рассказывать о том, что у меня есть собственный курс.
- Я смог помочь людям с решением их задач. И это очень приятное чувство, когда ты понимаешь, что у тебя действительно есть знания и они работают.
- Я начал писать свои статьи и уроки, чтобы рассказывать другим об интересных решениях, которые я использовал и проектах, над которыми работал. Да, я джун. Ну и что?
- Я получил мотивацию заниматься своими проектами, что сейчас и делаю. Я развиваю свой фреймворк, небольшую полезную библиотеку и целую IDE для математиков.
P.S.: когда-нибудь я допишу курс по Prolog...