День триста двадцать седьмой. #Оффтоп
Все выходные зависал на Codewars. Не то, чтобы я не знал раньше об этом сайте, просто как-то не доходили руки. А тут, как обычно, наткнулся в ютубе на видео парня, который работает в Гугле. Так вот, он рассказывал про то, как попал в Гугл, начав кодить за полгода до этого. Да, я тоже сначала не поверил, пока он не показал свой рейтинг на Codewars в почти 4500. Впрочем, про этого парня чуть позже напишу. А пока я решил проверить, насколько тяжело столько набрать.
Я уже писал про подобный сайт. Проблема в том, что там тебе сначала даются элементарные задачи, которые «щёлкаешь» и вроде даже входишь в раж, но в итоге их столько, что это быстро надоедает. Понятно, что начинающим это помогает «набить руку», но опытным после дцатой задачи на поиск элемента в массиве становится скучно. А поскольку прогресс построен на «пути от простого к сложному», то сложные задачи закрыты, пока не решены простые. Поэтому я заниматься там как-то быстро забросил. Да и Codewars тоже не спешил пробовать по этой же причине: пока доберёшься до интересных заданий, потратишь кучу времени.
Однако, всё оказалось совсем не так. При регистрации можно указать свой уровень: начинающий/джун/мидл/сениор, - и задачи выдаются соответственно уровню. То есть рейтинг то твой, конечно, сначала нулевой, и самый низкий 8kuy (ку? кю? куй?) уровень, короче, но задачи система даёт уже не элементарные, а чуть более сложные, и можно быстро добраться до более высокого уровня и более интересных задач. Кроме того, можно в принципе взять любую задачу любого уровня (хоть самого высокого 1го) и решать её.
Задачи построены по методу разработки через тестирование. Вам даётся задача и открытый список из 2-3 тестов, которые программа должна пройти, и собственно поле для написания кода. Хотя, без IntelliCode и автоформатирования писать там довольно грустно, поэтому писал в VS, а потом туда копировал. Да, испорчен, признаю. Что интересно, после этого можно попытаться отправить своё решение, и тогда код будет протестирован расширенным списком тестов, которые от вас скрыты. То есть вы не видите, что не так, просто факт, что какой-то тест выдал false вместо true. Это позволяет не подгонять решение под ответ, а действительно решать задачу.
За выходные набрал 185 баллов рейтинга и дошёл до 6 уровня. На задачи, как мне кажется, я тратил уйму времени. Дело в том, что в веб-разработке, которой я занимаюсь, довольно редко приходится развивать «мелкую моторику» (парсить строки, работать с байтами, писать низкоуровневые алгоритмы и т.п.). Зачастую это всё уже давно решено, написано в библиотеках, и ты просто вызываешь метод одной библиотеки, второй библиотеки, коллекции обрабатываешь LINQом и складываешь приложение, как паззл. А тут приходится попотеть: например, написать упрощённый интерпретатор для языка BrainFuck или разбить квадрат числа на сумму квадратов. И оказывается, что то, чем редко пользуешься, забывается очень быстро. Так что поставил себе цель периодически практиковаться там, а то даже стыдно перед собой.
Кстати, если вы ищете, какую бы программу написать себе для портфолио или просто для практики, Codewars, по-моему, идеальный вариант. Берёте задания 1-2го уровня – а это зачастую уже полноценные приложения - и вперёд. Языков программирования там, кстати, целая куча, поэтому подкачать скиллы можно почти в любом. А вот сам сайт, конечно, только на английском.
Post #386
1.06K