Все статьи | Развитие

Codebattle, или Как опенсорс-проект даёт опыт программирования и помогает строить карьеру

Codebattle, или Как опенсорс-проект даёт опыт программирования и помогает стр... главное изображение

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

Что такое Codebattle: краткий обзор возможностей

На Codebattle проходят поединки программистов. Участники решают задачи. Побеждает тот, кто первым справился с заданием.

Во время поединка пользователь одновременно видит свой код и код соперника. То есть каждый из участников битвы в режиме реального времени наблюдает за действиями соперника. Это делает соревнование драйвовым и эмоционально насыщенным.

Интерфейс поединка программистов

Часть интерфейса страницы поединков: редактор, список участников и зрителей, комментарии


Пользователь может выбрать для соревнований следующие языки:

  • JavaScript;
  • PHP;
  • Python;
  • Ruby;
  • Perl;
  • Haskell;
  • Elixir;
  • Clojure.

Чтобы участвовать в поединках, необходимо авторизоваться через GitHub.

В ожидании живого соперника можно посоревноваться с ботом. На Codebattle есть виртуальные противники с уровнем скиллов от elementary до hard.

В разделе Tournaments проходят турниры. Создать турнир может любой пользователь. Чтобы другие игроки присоединились к соревнованию, достаточно отправить им ссылку.

Промежуточный итог: платформа Codebattle позволяет пользователям соревноваться друг с другом в написании кода на нескольких языках, включая JavaScript, PHP, Python и другие. На сайте есть рейтинг игроков, возможность наблюдать за поединками в качестве зрителя и играть с ботами.

Слово команде: как Codebattle помогает расти и строить карьеру

Codebattle — проект с открытым исходным кодом (open source или «опенсорс»). Контрибьюторы проекта поделились своими историями, рассказали, как участие в проекте повлияло на их развитие и карьеру.

Виталий Миляков: благодаря Codebattle я расширил стек, превратился из рельсовика в универсального специалиста

С Виталием Миляковым поговорили о технологиях, которые используют разработчики Codebattle, и о команде. Также Виталий рассказал свою историю.

«На фронтенде используем JavaScript и React. На бэкенде используем фреймворк Phoenix, написанный на Elixir. Подробнее о технологиях написано в репозитории проекта.

Список контрибьюторов также можно увидеть в репозитории проекта.

Ядро системы накидали Виталий, Вадим и Ула где-то год назад. Был спринт с Игорем, Андреем и Димой. Много полезного сделала Валя. Большой вклад в проект сделал Abbath. Он добавил в проект языки Haskell и Perl. Сейчас проект ждёт новых героев.

Участие в опенсорс-проекте помогает разобраться в технологиях, получить опыт работы с теми или иными инструментами. Отличительная черта проекта Codebattle — новичков сразу же вовлекает комьюнити. Общаемся в канале #codebattle в Slack, часто созваниваемся. Сообщество у нас дружелюбное.

Проект прокачивает людей, даёт опыт командной работы. Участники получают важные навыки работы с проектом. Узнают о Git, учатся релизить, правильно переписывать код. Новички получают бесплатные консультации, общаются с опытными разработчиками.

Такой опыт нужен и важен для трудоустройства. Многие люди приходили в Codebattle без работы, а потом устраивались в коммерческие проекты. Конечно, все знания и умения можно получить самостоятельно. Но командная работа ускоряет этот процесс, делает его эффективным.

Я работал разработчиком, писал на Ruby on Rails. Мой уровень был junior+. Увидел Codebattle и захотел участвовать в проекте. Сразу начал изучать Elixir, JavaScript, React, Clojure. То есть благодаря Codebattle я расширил стек, превратился из рельсовика в универсального специалиста.

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

Участие в опенсорсе дало мне уверенность, позволило получить работу с более высокой зарплатой. Я научился планировать архитектуру и ощутил умение делать проекты. По сути, Codebattle превратил меня из джуниора в миддла.

С работой получилась интересная история. Известная компания открыла вакансию, искали разработчика на Elixir. Откликнулся, прошёл тесты, показал опыт участия в разработке Codebattle. Интервьюерам проект понравился, а я прошёл собеседование. Но на работу в эту компанию я так и не вышел, так как получил более интересное предложение от другого работодателя.

Полгода назад устроился в arena.tech. Опыт участия в Codebattle помог получить эту работу, а также решать рабочие задачи. Даже использовал в коммерческом проекте часть кода, написанного для Codebattle.

«На собеседовании показал опыт участия в проекте, это заменило тестовое задание».

Важный момент, который нужно понимать. Codebattle — opensource-проект. Код далёк от идеала, есть косяки, есть легаси. Это надо учитывать, на это надо обращать внимание интервьюеров во время собеседования».

Валентина Чемякина: я стала более уверенной, появилась решительность

Валентина рассказала, как участие в Codebattle мотивировало её изменить карьеру.

«До знакомства с Codebattle я уже работала, занималась фронтенд-разработкой. Первая работа была не очень удачным выбором. Пригласили в Codebattle, согласилась.

Здесь я начала изучать новый язык — Elixir. Работа с этим языком изменила моё восприятие программирования. Сильным драйвером развития стала командная работа. Практиковали созвоны, парное программирование.

В Codebattle получила реальный опыт работы с продакшен-кодом. Работала с разными инструментами, которые вряд ли потрогала бы самостоятельно, например, с Docker. Это не какой-то пэт-проект для себя и друзей, а платформа для людей.

Опенсорс-проект мотивировал меня изменить карьеру. Я стала более уверенной, появилась решительность, стала ходить на собеседования. Когда искала новую работу, показывала участие в Codebattle. Потенциальные работодатели расспрашивали о проекте, смотрели ссылки на GitHub в резюме. В итоге устроилась в известную компанию.

Codebattle стал хорошей строчкой в резюме, дал тему для разговора с любым интервьюером.

«Да, на собеседованиях я рассказывала про свое участие в Codebattle, обсуждали фичи, которые я делала. Да и в целом когда говоришь, что на эликсирчике писала, положительно смотрят на это».

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

Игорь Инковский: Codebattle изменил вектор моего развития

До Codebattle Игорь уже работал программистом, и не где-нибудь, а в «Хекслете». Тем не менее участие в проекте помогло Игорю вырасти. Вот его история.

«Работал в IT менеджером, решил стать программистом. В 2017 году прошёл обучение на «Хекслете». В 2018 году Кирилл Мокевнин позвал работать в «Хекслет». Здесь я отработал около 8 месяцев.

Сменил работу. До выхода на новое место у меня было около месяца. Пошёл в Codebattle, чтобы получить новый опыт. Стал изучать Elixir и фреймворк Phoenix. Эти инструменты мне понравились.

На новом рабочем месте разговаривал с CTO. Разговор зашёл о BEAM — виртуальной машине Erlang. Надо понимать, что Elixir — надстройка над Erlang, он использует BEAM. Рассказал CTO об опыте работы с Elixir в Codebattle. В итоге меня взяли на Erlang.

«На текущую свою работу я устраивался Ruby-разработчиком, делал тестовое на Ruby. Но упомянул опыт разработки Codebattle с Elixir, и мне предложили участвовать в проектах на Elixir, так что теперь я Elixir-разработчик. Это фан и опыт совместной разработки с более опытными программистами. Проект дал возможность пощупать новые технологии: Elixir, а для кого-то и React. Получилось пополнить свой аккаунт на GitHub и добавить в резюме опыт опенсорс-разработки».

Codebattle изменил вектор моего развития. В настоящее время 80 % рабочего времени пишу код на Elixir, остальные 20% на Ruby. То есть благодаря опенсорс-проекту я расширил стек.

Codebattle даёт опыт участия в полном цикле разработки. Учит работать с Git, самостоятельно настраивать окружение. Здесь найдётся место как для бэкенд-, так и для фронтенд-разработки, кроме Elixir тут можно поработать с React.

В Codebattle можно получить важные технические навыки, попробовать парное программирование. Эта практика стимулирует развитие».

Улугбек Туйчиев: благодаря участию в Codebattle понял, что язык — всего лишь инструмент, и для разных задач подходят разные языки. Есть задача, для решения которой нужен Python? Дайте две недели, и я смогу работать

Улугбек поделился своей историей.

«На момент старта проекта я был безработным. Было свободное время, решил поучаствовать. Познакомился с новым для меня языком Elixir и фреймворком Phoenix. Сразу окунулся в проект, уже второй комит в нём мой.

Потом сбережения иссякли, стал искать работу. Пришёл на собеседование, рассказал интервьюеру об участии в Codebattle. Потенциальный работодатель оценил мой интерес к функциональной парадигме. Было тестовое задание, я его выполнил. Так устроился на работу.

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

Когда закрылся проект на Python, встал вопрос о новой работе. Но он быстро решился благодаря социальным связям. Меня, Виталия и Вадима позвали в новый проект.

Участие в Codebattle научило меня работать в команде. Это знакомство с Виталием и Вадимом, опыт парного программирования, социализация. Проект расширил мои технические горизонты, позволил получить прибавку к зарплате».

Вадим Сафонов: ответственность — повод для роста

Вадим рассказал, что ему дало участие в разработке Codebattle, а также о правдивом лозунге для привлечения контрибьюторов с фразой о трёхкратном росте зарплаты. Слово Вадиму.

«Узнал о проекте, когда руководитель «Хекслета» Кирилл Мокевнин объявил в Slack, что нужен мейнтейнер для Codebattle. Я вызвался, хоть и не представлял, что от меня требуется. Нужно было решить, готов ли я принять ответственность.

Я не знал экосистему. Понимал, что нужно будет помогать другим участникам проекта. В итоге я решился, так как ответственность — повод для роста. Когда начали работать над проектом, я занимался фронтендом. Также занимался менеджментом. Создавал задачи, контролировал процессы. Потом в проект пришёл Виталий и стал мейнтейнером.

Много общался с другими людьми из другого круга. Нужно было созваниваться и совместно решать задачи со специалистами с другим мышлением. Такое общение — ещё один драйвер роста. Хорошим фактором роста стал воркшоп Кирилла Мокевнина по DevOps.

Участие в Codebattle создало хороший фон для развития карьеры. Добавил в резюме опыт работы в опенсорсе, опыт контрибуции на разных языках, использование разных технологий.

«У меня была хитрая стратегия: так как я, в основном, занимаюсь фронтендом, то опыт в несвязанных сферах (Elixir) помогает развить эрудицию и играет на руку в собеседованиях: мало ведь кто ожидает на позицию фронтенд-разработчика человека с опытом на Elixir. Собеседующий фронтендер видит опыт, который он не может оценить в силу отсутствия компетенции в данной сфере, и это производит на него сильное впечатление. А если чуть более серьезно, то вспомню свой лозунг для привлечения контрибьюторов в Codebattle: благодаря участию в проекте некоторые контрибьюторы нашли работу и увеличили зарплату в три раза. Это чистая правда».

Стал увереннее в себе, это важнейшее приобретение по итогам участия в проекте. Переехал в Москву, устроился в коммерческую компанию».

Дмитрий Батаев: уверенность в своих силах — главный итог участия в разработке Codebattle

Дмитрий Батаев рассказал, что приобрёл благодаря участию в разработке Codebattle.

«Как Codebattle помог мне прокачаться? Очень короткий ответ на этот вопрос: участие в разработке проекта дало мне уверенность в своих силах. Это один из ключевых факторов успешного трудоустройства, развития карьеры и профессионального роста.

Работал с фронтендом, обеспечивал взаимодействие сервера с фронтендом с помощью сокетов. Познакомился с фреймворком Phoenix и языком Elixir. Это очень полезный опыт.

Участие в разработке проекта дало мне уверенность в своих силах.

Как участие в разработке Codebattle повлияло на карьеру? На собеседованиях я рассказывал о проекте. Интервьюеры задавали вопросы, интересовались деталями. Я объяснял, чем именно занимался, чему научился. Думаю, это сыграло роль: помогло мне пройти собеседование и устроиться на работу».

Сергей Кривцов: чтобы понимать Elixir, нужно разобраться в Erlang

Сергей Кривцов рассказал свою историю участия в Codebattle.

«Пришёл в Codebattle на старте проекта вместе с Улугбеком, Виталием и другими ребятами. В основном у всех был какой-то опыт, а я только начинал путь в разработку, опыта не было. Сразу же проявились пробелы в знаниях, я увидел, чего мне не хватает, над чем нужно работать. Например, совсем не знал базы данных.

Включился в работу, старался быть в курсе, участвовал в парном программировании. Смотрел на Elixir, но вынужден был сделать паузу. Весь 2018 год выпал из обучения по состоянию здоровья: сломал руку. Несмотря на это, записался на воркшоп Кирилла Мокевнина по Ruby.

Продолжил разбираться с Elixir, познакомился с Erlang. Этот язык понравился. Чтобы понимать Elixir, нужно разобраться с Erlang. На практике узнал Git. Очень понравилась командная работа. Познакомился с жизнью настоящего проекта, это очень важный опыт.

Во время работы над проектом нам помогал Кирилл: говорил, что интересно, что плохо. Это тоже важный опыт и ценные знания.

Устраивался на работу в качестве разработчика на Node.js. Показал в портфолио участие в Codebattle. Во время собеседования тимлид увидел репозиторий на GitHub. Разговорились, сошлись в любви к Erlang. В итоге меня взяли на работу. Уже прошёл испытательный срок».

Вместо заключения: как стать участником команды Codebattle и получить реальный опыт программирования

Слово членам команды.

Игорь Инковский: «Любой желающий может присоединиться, опыт может быть самый разный, задачки найдутся для каждого. Но нужен энтузиазм и некоторый навык самостоятельности. Тут помогут по конкретным вопросам, но вряд ли будут водить за руку и, например, делать подробное описание задачи. Недавно, кстати, в канал в слаке зашли два бразильца, чтобы написать о баге. Виталий их позвал поучаствовать в разработке, и они вроде как заинтересовались».

Вадим Сафонов: «Так как люди занимаются проектом в свободное время, качество кода не на высоте. Это осложняет онбординг для новичков, поэтому единственным ограничением является способность разобраться в технологиях и умение читать чужой код».

Ознакомьтесь с разделами репозитория о технологиях и правилах участия в проекте. После этого присоединяйтесь к каналу #codebattle в сообществе Хекслета. Обсудите с другими членами команды задачу и приступайте к работе.

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

Аватар пользователя Дмитрий Дементий
Дмитрий Дементий 14 ноября 2019
Рекомендуемые программы

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

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