tgoop.com/plush_python/15
Last Update:
Как научиться хорошо решать алгоритмические задачи?
#py_basic #py_advanced
Мы уже говорили о важности решении задач для развития алгоритмического мышления и подготовки к собеседованиям. Затем я предложил вам пару задач разной сложности с последующим разбором, знаю, что некоторым из вас удалось их решить. Теперь поделюсь лайфхаками из своего опыта - надеюсь, что они помогут вам научиться хорошо решать алгоритмические задачи и чувствовать себя увереннее на собеседованиях.
1. Когда начинаете решать новую задачу, рекомендую сначала разобрать её на бумаге, нарисовать схему, диаграмму, таблицу и т.п. Я считаю, что это самый важный шаг (и навык) - так обычно получаются более эффективные решения, чем если сразу садиться писать код.
2. При этом часто помогает вопрос: "а как человек (а не компьютер) решал бы эту задачу?" Вручную пошагово разобрать несколько примеров ввода, от простых до более сложных.
3. Если за 10-15 минут не появилось идей (иногда полезно и дольше поломать голову для тренировки), нужно сесть за код и попробовать запрограммировать хотя бы неполное решение, начав с простых случаев. Обычно в процессе этого приходят новые идеи.
4. Если на одних примерах ваше решение работает, а на других нет, это уже большой прогресс. Дальше нужно просто разобрать сложные случаи и понять, как их включить в ваше решение, сделав его более общим.
5. Если задача "не поддалась" за час-два и вы устали, лучше сделать перерыв и отдохнуть. Мозг так устроен, что он не может очень долго напряжённо работать над одной сложной задачей. Возможно, задача пока что вам не подходит и нужно какое-то время порешать более простые задачи, либо вы её всё-таки решите за несколько дней в "фоновом" режиме. И то, и другое - хорошо.
6. Не нужно ругать себя, если не получилось решить, потому что это нормальный процесс саморазвития. Помните, что мозг лучше всего учится на неудачах. Настоящая цель - не решить задачу, а повысить свои навыки.
7. Рекомендуют подбирать себе задачи таким образом, чтобы было где-то 15% неудач. Это оптимальный уровень сложности, когда из, скажем, 20 задач вы можете решить 17, а остальные не можете. Если процент успеха выше, значит, вы недостаточно себя нагружаете и ваш прогресс идёт медленнее, чем мог бы. Если же процент успеха ниже, значит, вы выбираете слишком сложные задачи, а это опасно для вашей мотивации и самооценки.
Ну и достаточно пока о задачах) В ближайших постах поговорим на другие темы.
BY Плюшевый Питон
Share with your friend now:
tgoop.com/plush_python/15