Если вы хотите больше практических заданий и владеете английским (или хотя бы умеете гуглить перевод), то у меня для вас хорошая новость! Пару дней назад Кирилл подсказал неплохой сайт-тренажер-задачник. Я его опробовал, и теперь опишу свои мысли. Ах да, сервис называется codewars и наверняка кто-то из вас уже слышал о нем.
Коротко о коудворс
Для меня лично codewars стал местом, где можно попрактиковать технику написания кода + узнать чужие, более интересные техники. Сервис реализован в стиле "восточных единоборств". Сам сайт уже не просто сайт, а – додзё; задачки – ката; вы – солдат, воин, а не просто студент-программист, а код-ревью – кумите, спарринг. Восточная тематика создает специфическую атмосферу – здесь хочется непрерывно развиваться и становиться искуссным мастером. Порадовала сегментация задачек-ката по сложности. В общем, заходи и развивайся, самурай!
Что такое ката?
Если по-простому, ката – это практическая задачка. Есть несколько уровней сложности: от 8 kyu до 1 kyu (возможно есть и другие, пока что мне не известные). Причем чем ниже кью, тем сложнее задача. Вот так выглядит страница с выбранной катой:
Верхний блок: Уровень сложности, название, статистика, выбор языка, "Приступить", "Пропустить". Нижний блок: Детали (условие задачи), Решения (открывается после того, как вы решите задачу), Форк каты, Обсуждения, Добавить в коллекцию (Избранное), кнопки расшаривания.
Как выглядит ката?
Ката выглядит вот так:
Слева – уровень сложности, название, статистика. Чуть ниже условия задачи и окошко вывода. Сверху справа можно выбрать язык, переключиться на дневной/ночной режим, режим редактора Vim или Emacs, полноэкранный режим. Ниже – окошко для написания решения, часть тестов (да-да, это не все тесты, их на самом деле больше).
Кстати, заметил только что, у меня на 12-дюймовом экране поползла верстка. И кнопки "Запустить Sample tests" и "Подтвердить решение" уплыли вниз за экран, и прокруткой их не достать =( Помогает небольшое сужение экрана по ширине.
Альтернативные решения задачи
Очень классно, что после прохождения каты можно увидеть решения других бойцов. Также интересна сортировка: Лучшая практика – рекомендуем использовать эти решения; креативность – красиво, интересно, но в продакшн лучше такое не писать; новые – новые решения вперед, старые – вначале старые решения. Т.е. сразу учимся и практичности, и креативности.
Кланы
При регистрации можно вступить в определенный клан. У нас он тоже есть - Hexlet. Для чего вступать в клан? Чтобы гордиться тем, что ты часть чего-то большего, а не просто одинокий самурай. Чтобы видеть прогресс других воинов в твоем клане и не отставать. Чтобы потом обсуждать решения ката с ребятами в Telegram-сообществе (чаще всего ники и там, и там одни и те же). А может чтобы посоревноваться и завоевать первое место в своем клане...
Регистрируйтесь на codewars, вступайте в клан Hexlet, практикуйтесь, развивайтесь, соревнуйтесь и становитесь мастерами, а возможно и сенсеями в будущем! Если вы знаете еще какие-то фишки codewars, напишите о них в комментариях.
P.S. Вообще ката, кумите и все остальное – это термины из карате-до, насколько я понял =)