не нужно знать алгоритмы наизусть, но нужно знать, что они есть и какие у них границы применимости.Я бы сказал по другому: программисту нужно знать основы алгоритмизации чтобы до написания кода и применения конкретных инструментов пошагово представлять как оно должно работать в итоге.
Это безусловно, понимание алгоритмов нужно. Но вот нужно ли учить существующие алгоритмы просто так? Нужно ли читать Кормена или Кнута (все 4 тома), чтобы знать как устроена быстрая сортировка, поиск остова графа или разворот связного списка? С одной стороны, надо бы знать хотя бы основы, чтобы не изобретать велосипеды. С другой - если на собеседовании спрашивают про алгоритм быстрой сортировки, я бы задал встречный вопрос - зачем им это нужно и как часто они пишут собственные реализации алгоритмов.
не нужно знать алгоритмы наизусть, но нужно знать, что они есть и какие у них границы применимости.Я бы сказал по другому: программисту нужно знать основы алгоритмизации чтобы до написания кода и применения конкретных инструментов пошагово представлять как оно должно работать в итоге.
Это безусловно, понимание алгоритмов нужно. Но вот нужно ли учить существующие алгоритмы просто так? Нужно ли читать Кормена или Кнута (все 4 тома), чтобы знать как устроена быстрая сортировка, поиск остова графа или разворот связного списка?
С одной стороны, надо бы знать хотя бы основы, чтобы не изобретать велосипеды.
С другой - если на собеседовании спрашивают про алгоритм быстрой сортировки, я бы задал встречный вопрос - зачем им это нужно и как часто они пишут собственные реализации алгоритмов.