Пять полезных видеоигр для senior-разработчиков: используем геймификацию для прокачки скиллов

Привет, VC! Меня зовут Александр Сельдемиров, я сооснователь компании ITQuick. Недавно я с моим сеньором обсуждали компьютерные игры, которые помогают изучать языки программирования и прокачивать скиллы разработчика.

Для стажеров и джунов таких есть десятки, причем они помогают им развиваться в формате игры. А что для сеньоров? Я попросил свою команду поделиться информацией. Благодарю своего коллегу Олега Лукавенко, он подобрал несколько геймифицированных проектов, которые будут полезны и интересны даже им.

Содержание:

  • Языки, фреймворки и технологии: Python, TypeScript.

  • Можно прокачать: общее понимание ЯП и технологий, с ними связанных.

Разработчики утверждают, что CheckIO отлично подходит для новичков, которые только начинают учить Python или TypeScript. И это реально так. Но для спецов, которые уже что-то умеют, она также может предложить нечто интересное. Достаточно просто установить сложность на «Advanced» — и задачи магическим образом станут интересными. Правда, все равно нужно будет проскочить первые легкие уровни, чтобы добраться до нетривиальных вызовов.

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

Чисто субъективно, мы бы советовали CheckIO тем, кто учит Python как второй или переходит с JavaScript на TypeScript.

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

  • Языки, фреймворки и технологии: JavaScript.

  • Можно прокачать: оптимизация алгоритмов.

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

Но если поначалу задача занимает три строки кода, то дальше алгоритм становится все сложнее. Ведь у лифта есть лимит загрузки, а люди появляются на этажах рандомно.

К примеру, на уровне 17 игроку нужно переместить 100 людей за 15 секунд, а в его распоряжении будет пять лифтов. И просто зациклить движение подъемников по каждому этажу уже не получится. Чтобы пройти уровень, нужно тщательно рассчитывать нагрузку, потому что только один тик движения лифта занимает 2-3 секунды, а самих этажей уже двадцать.

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

  • Языки, фреймворки и технологии: CSS.

  • Можно прокачать: CSS.

Эта игрулька здесь только потому, что один из наших тимлидов с ее помощью вспоминал, как делать фронтэнд после длительного периода работы над бэкенд фичами.

Создана она в стиле tower defence. В ней нужно правильно расположить башни, чтобы орды врагов не дошли, куда им нужно. Размещать башенки нужно с помощью строк в CSS.

Если объективно, то это развлечение на полчаса — именно столько времени нужно сеньору, чтобы вспомнить основы CSS и правильно расположить все башенки. Но если честно, я тоже залип. Никогда не был сильным в CSS, но прошел все 12 уровней.

В отличие от предыдущей, эта игра может быть не только залипательной, но и реально полезной. Каждый ее уровень буквально прогоняет по отдельной особенности CSS. К примеру, селектор следующего элемента, селектор атрибутов или псевдокласс :first-of-type.

На каждую особенность есть отдельное задание, которое оформлено как поднос с тарелками и едой на них. У каждого элемента есть свои зависимости и каскадность, а игроку нужно правильно выбрать нужный элемент и правильно выполнить задание.

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

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

  • Языки, фреймворки и технологии: Java, внешние интегрированные среды разработки (IntelliJ IDEA, Eclipse, NetBeans, Visual Studio Code).

  • Можно прокачать: навыки разработки ИИ и автоматизированных алгоритмов.

А вот это мой личный фаворит. Залипательная игра, в которой нужно написать скрипт действий и реакций для виртуального робота. И этот бот будет сражаться на арене с противниками, которых написали другие разработчики.

У игроков есть высокая вариативность действий и осложнений. Роботы могут передвигаться по арене, прыгать, находить противника радаром, прицеливаться и стрелять, но при этом робопушки перегреваются от постоянной стрельбы, машины дезориентируются от сильных столкновений или вообще перестают двигаться, если кончилась энергия. А в самом начале они респавнятся в случайных координатах, что полностью исключает заранее прописанные атакующие заготовки в начале матча.

Интересно, что игрок может запрограммировать робота любой сложности: потратить десять минут на двадцать строк кода или заморочиться на несколько месяцев, оптимизируя пути движения, механики поиска противников и прицеливания.

Во время боя роботы действуют только по написанным алгоритмам — игрок не может влиять на ход сражения. Выглядит это примерно так:

Чтобы запрограммировать робота, нужны крепкие знания Java, а также механик и принципов построения машинных алгоритмов. Раньше была возможность также создавать скрипты для роботов с помощью .NET, но в 2021 году ее отключили.

Несмотря на внешнюю примитивность, игра ни разу не простая. Чтобы написать более-менее боеспособного робота, нужны глубокие знания алгоритмов машинного обучения и логики ИИ. Но это все равно очень весело и затягивает.

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

***

Геймифицированные проекты для прокачки навыков программирования в основном рассчитаны на полных новичков или джунов, которым нужен стимул для изучения. Как ни крути, выполнять квесты намного интереснее, чем зубрить особенности переменных, циклов и ООП.

Но для сеньоров и тимлидов такие игры тоже могут принести пользу.

  • В соревновательных проектах вы не решаете задачи, а боретесь с другими разработчиками. Это одновременно и сложно, и весело.
  • Во многих играх есть отдельные уровни сложности или градация уровней по возрастающей сложности. И некоторые из задач могут серьезно напрячь даже сеньора с 10-летним опытом.
  • Интерактивные обучалки могут быть очень полезными, если нужно быстро выучить язык программирования или определенную технологию на базовом уровне или чуть выше. Сеньоры и тимлиды такое не любят, но у всех такое хотя бы раз, но было.

А как вы относитесь к прокачке навыков программирования с помощью интерактивных игр? Пишите свое мнение в комментарии — обсудим. И обязательно делитесь своими любимыми проектами, с удовольствием их заценим.

0
8 комментариев
Написать комментарий...
Помощник Гугла

еще из прикольных - https://store.steampowered.com/app/605230/Grey_Hack/?l=russian&curator_clanid=32281579
вот она, кмк, для прокачки скиллов очень даже

Ответить
Развернуть ветку
Александр Курицын

Для обучения SQL такую пробовал, очень залипательно: https://mystery.knightlab.com/

Ответить
Развернуть ветку
Николай Фролов

CheckIO как-то привлекательнее остальных выглядит

Ответить
Развернуть ветку
David Agiyan

Забрал в закладки, чтобы поиграть как-нибудь)

Ответить
Развернуть ветку
Dmitry Eliseev

Как-нибудь это когда вы будете на работе?😂

Ответить
Развернуть ветку
David Agiyan

ага, в том числе))

Ответить
Развернуть ветку
Ярослав Цымбал

залип на елеватор саге, прикольная игрулька

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
Aleksandr Seldemirov (ITQuick)

Разверните, пожалуйста, логику.

Ответить
Развернуть ветку
5 комментариев
Раскрывать всегда