Введение
Дополнительная практика, как ни крути, всегда несёт в себе дополнительную пользу. С каждой решенной задачей, понимание предмета увеличивается. Однако, есть такие задачи, которые могут полностью отбить желание программировать, в виду их кажущейся сложности.
Алгоритм действий при решении испытаний:
- Внимательно и вдумчиво прочитать техническое задание. Иногда задачу не получается решить только из-за того, что упущена какая-то малозначительная подробность, из-за неё может не пройти единственный тест, но его одного хватит чтобы запороть задание, а заодно и ваше нервы.
- Просмотреть файл с тестами, найти пограничные случаи работы функции (border cases) и начать с них. Но не стоит злоупотреблять тестами, а именно подгонять решение под каждый тест, вместо написания алгоритма. Это медвежья услуга. К тому же, подробное изучение тестов позволяет прочувствовать логику задачи в целом и разбить её на этапы.
- Если задача связана с математикой (например: умножение матриц или треугольник Паскаля), найти информацию об этом алгоритме в интернете. Не нужно заново изобретать велосипед.
- Почитать, с какими сложностями столкнулись другие пользователи Хекслета в обсуждениях испытания. Особенно актуально, когда все предыдущие пункты не помогают, и вы все ещё сидите с пустым экраном.
- Если все же задача никак не получается, оставить её на время, и решить схожее испытание из этого же курса.
- Не забывайте об отладочной печати!
- После успешного прохождения всех тестов, сравнить свой вариант с вариантом учителя и посмотреть другие ревью. Попробовать реализовать это же испытание в другой парадигме. Чем больше вариантов, тем выше понимание данной темы.
Заключение
Не бойтесь решать сложные задачи, это единственный путь к росту как специалиста. Для меня самыми сложными были испытания "без двух нулей" и "обратная польская запись". Помимо программирования для их решения, нужно еще подтянуть знание комбинаторики и систем счисления. Испытание с римскими цифрами я решил через switch-case, рассматривая каждый случай в отдельности. Сравнив с решением учителя, я понял всю красоту использования объектов.