Развитие через OpenSource
Я уже многократно об этом говорил и за годы этот совет не только не потерял актуальность, но и стал еще более актуальным.
Обучение и развитие навыков через участие в OpenSource проектах – это отличная возможность вырасти как начинающим, так и опытным разработчикам.
Начинающим
Опытные разрабы не хотят нянчиться с новичками, особенно бесплатно, особенно нянчиться.
С чего начать? Какие проекты делать? А правильно ли я делаю? А что учить дальше? А что мне писать в резюме? Найти ответы на эти вопросы можно, участвуя в разработке OpenSource проектов.
Ну, не прямым текстом, само собой, а вот так:
С чего начать?
Выбираете любой проект, который вам интересен, на нужном языке из миллионов проектов на Github.
Только смотрите, чтобы проект не был заброшен, чтобы сообщество, которое над ним работает было... просто было. И чтобы вы могли найти точку с которой начать – сейчас многие проекты прямо в README размещают ссылки для контрибьютеров.
А правильно ли я делаю?
Тут все просто – если не правильно, то ваш pull-реквест не примут, да еще и напишут, почему. Вот вам и код ревью...
А что учить дальше?
На каждом серьезном проекте настолько много технологий используется, что если продолжать выполнять таски для него и изучать его структуру, то вопрос отпадет сам.
А что мне писать в резюме?
Вот и пишите, какие задачи решали и на каких проектах. Главное – чтобы это не было простым исправлением пунктуации и грамматических ошибок в доках, это мало связано с программированием...
Опытным
Во-первых – опыт не означает наличие окружения, которое имеет более высокий уровень, и уж тем более не значит, что они будут делиться знаниями с вами.
Соответственно – OpenSource проекты с его коммьюнити, которое заинтересовано в том, чтобы проект рос и развивался, с большой долей вероятности обладают большим количеством очень хороших программистов, которые еще и готовы делиться опытом, ну или как минимум – просматривать и отвечать на ваши pull-реквесты.
А если вам повезет, то вы сможете еще и советы выхватить - как лучше организовывать код, делать вызовы, что почитать и т. п. Помимо этого – в случае долгой работы над популярным проектом у вас появляется возможность еще и предложения о работе получить через этот канал.