Setting Up
In this section you will learn how to set up your account to get the best training experience and tune your preferences for the Codewars site. There are two areas you can configure: Account Settings and Training Setup.
Account Settings
You can enter your account settings panel by navigating with this link, or using following menu:


You can find all options described in detail [here (TODO: insert link to actual documentation of UI)] , and below are listed ones useful to get you running as soon as possible:
Information
- Email, Username — authentication details entered by you upon registration
- Clan — fill this in if you'd like to team up with your friends, group, or organization. More on Codewars clans can be found here.
- Development Experience — select any option which you feel describes you the best. If you are making your first steps in the world of programming, just pick "Learning to Program". If you are a seasoned programmer who wants to train their coding-fu, improve their skills, and probably learn something new, you can choose "Senior Developer".
Preferences
- Email Notifications — select how often you would like to receive email notifications from Codewars about events like replies to your posts etc.
- Default Catalog List View — default setting for "Status" filter on kata [search page (TODO: link to docs on kata search page)] . Beginners are advised to set it to "Approved Only", but if you want to participate in beta evaluation process, you can set it to any value you like.
- Red Subscription — donating some money, you can support Codewars and get some great features. Check more information on Codewars RED.
Now you just need to click UPDATE to have your settings stored in the database. Anytime you need to change your settings, you can always come back to the Account Settings panel and perform the necessary changes.
Training setup
You can enter your training setup panel by navigating with this link, or using following menu:


Again, a detailed description can be found in [UI documentation (TODO: insert link to actual documentation of UI)] , but things needed to get you started are briefly explained below:
- Would you like to receive our newsletter with weekly challenges? — choose "Yes" to receive a weekly email with some suggested tasks to solve. The email contains a choice of Codewars problems of every difficulty, so you will be always able to find something that would suit you. Participating in the Weekly Coding Challenge is a great way to keep yourself motivated! If you do not want to receive the email, just pick "No".
- Choose the language you wish to train on — you can select from a large list of languages available on Codewars. You can select one, but if you want, you can select more. During your training, Codewars suggests you tasks which are available in languages you choose here. If you are not sure if you want to select some language or not, don't worry! You can always switch to any language available for the currently trained task.
Remember that if you would like to change your setting later, you will always be able to do so by navigating to your Training Setup panel. If you configured everything here, just click SAVE and you will be redirected back to your dashboard.
Регистрация Codewars
Я пытаюсь получить учетную запись в Codewars и был удивлен, что вы должны показать им, что у вас есть базовые знания в одном из предлагаемые языки программирования. Я выбрал Java, но застрял в одном упражнении. Код:
В нем говорится: «Исправьте этот код, чтобы функция greet вернула ожидаемое значение». Дело в том, что я не вижу ошибки, и на самом деле я скопировал код в Eclipse и после изменения компилятора Java и использования версии 1.6 работает код, нет ошибки, и если вы попробуете его с помощью основного метода, он возвращает ожидаемое значение.
Если только они скажут вам, какое ожидаемое значение. При отправке, независимо от того, что я пытаюсь, я всегда получаю «Код работает не так, как ожидалось».
Первый опыт на Codewars

На данный момент я прошла 2 курса по Python: Сode Basics и самые основы на Хекслете. Это дало мне базовое знание синтаксиса, знакомство с тремя типами данных (строковые, числовые и кортежи) и с некоторыми видами циклов. Все эти базовые вещи, мне казалось, я хорошо поняла и усвоила.
После этого я переключилась на изучение настройки окружения и работы с Git. Но чтобы Python не забывался, я зарегистрировалась на Codewars — англоязычном сервисе с задачами по программированию.
Общие впечатления
За пару часов я решила 6 задач и перешла с последнего восьмого ранга на седьмой (самым крутым считается первый ранг). Но это не единственное достижение. Всего 6 задач сильно скорректировали мои представления о том, что я уже успела освоить в Python.
Первые задачки я решала за 5-10 минут каждую. Но даже знакомые конструкции я не сразу могла воспроизвести по памяти. Хотя изучение синтаксиса я старалась растягивать во времени и проходила параллельно с другими курсами. Это нужно, чтобы изучаемое забывалось и его приходилось припоминать. Такой способ считается эффективным для долгосрочного запоминания. Но видимо нужно было еще и просто больше практиковаться.
Сложная задача
Одну из 6 задач я решала около часа. Решила при помощи кортежей (единственный составной тип данных, который я знала в Python на тот момент) и двух циклов в одной функции. Выглядело громоздко, но все работало, и тесты проходили успешно. После часа сражений я была определенно горда собой. Оставалось только окончательно отправить решение. Но при попытке сабмита Codewars стал ругаться, что выполнение кода занимает слишком много времени и нужно его оптимизировать.
Надо сказать, что моим первым языком программирования был R. И я его выбрала после довольно обширного чтения на тему, что лучше R или Python. И R победил тогда в том числе и за свою хорошую работу с векторами как базовым типом данных. Когда данные помещаются в оперативной памяти, векторным вычислениям нет равных по скорости.
При решении первых задач на Codewars мне случилось узнать, что в Python для работы с векторами существуют специальные библиотеки, которые нужно импортировать. А также, что вместо векторов можно использовать списки. В тему я не углублялась, но решила попробовать списки для оптимизации и посмотреть, что будет.
Я заменила кортеж в своем решении на список, сделала необходимые правки с переводом строковых и числовых данных и, вуаля, Codewars понравилась моя оптимизация — решение прошло. Я стала еще больше гордиться собой, чем просто после зеленых тестов: как же, соединила прошлые знания с новыми. Но снова сюрприз.
После отправки моего решения мне стали доступны решения других людей для этой задачи. И я увидела, что вместо громоздкой функции с двумя циклами в лучших решениях была всего одна(!) строка с арифметическим действием. Я не заметила элементарную закономерность в исходных данных задачи! Вот это был урок.
Обязательно попробуйте свои силы на Codewars или аналогичных сервисах. Сильные эмоции гарантированы. Плюс, вы сможете отработать синтаксис вашего нового языка и алгоритмы решения задач. И прочувствуете ограничения тех конструкций языка, которые знаете на данный момент. Ну и конечно, сможете сравнить свое решение с сотнями и тысячами других — и с лучшими, и с худшими (решения имеют рейтинг и сортировку). Все это поможет лучше понять ваш текущий уровень в программировании и конкретном языке и замотивирует узнавать больше и глубже.
PS. У Хекслета на Codewars есть собственный клан. Если в него вступить, то можно соревноваться не только со всем миром, но и в пределах клана.
Есть ли польза от codewars?

Синтетические задачки
Для начинающих — крайне полезно
Для средняков — полезно посмотреть на чужой код и понять как он работает
Для топов — развлечение на самое простое, короткое или однострочное решение
Просто куски кода оттуда никогда не юзал
Подходы — юзал
Не знаешь как решить. Сядь и нарисуй блоксхему алгоритма без привязки к ЯП
- Вконтакте

- Вконтакте

- Вконтакте



Скорее, там можно подсмотреть однострочники и дикую функциональщину
Что также полезно для развития


Вначале сам часто думал «а что так можно было?»

Когда решил что основным ЯП у меня теперь будет JS, надо было переформатировать мозги, для этого сотню-другую часов интенсивно что-то кодить, не важно что, важно чтобы на JS и в хорошем темпе.
Тут, как раз, Кодварс подвернулся. Прокачался до 2.5 qyu и подзабросил, но эффект получил должный, теперь на php кодить не так комфортно (иногда совсем не так).
Чужие решения смотреть тоже интересно, иногда думаешь вот ведь круто, но в прод я бы такое не выпустил.
Сами алгоритмы с кодварс в реале вряд ли понадобятся, а вот составные их части очень даже.
в общем для меня кодварс оказался весьма приятным и эффективным способом привыкнуть к ЯП.