Как стать автором
Обновить

Комментарии 9

Алгоритмы — не самая важная часть CS. Название вводит в заблуждение, что вся CS к ним сводится.
Ну, довольно значительная. А для именно программистов так и одна из самых важнейших.
Разве что для прохождений собеседований. Основные алгоритмы давно реализованы в библиотеках, в реальности программисту достаточно уметь отличать C(n*log(n)) от O(N^2) и больше.
А вот умения (и даже понимания полезности) доказывать корректность программы и понимание способов композиции кода современным программистам (точнее пользователям их программ, программисты про это просто не думают) остро не хватает.
То что вы перечисляете (не считая доказательства корректности, но не уверен что вы имеете в виду всякие языки с верификацией, завтипами и т.п.) относится к software engineering а не computer science. Из computer science обычным программистам как раз практически только алгоритмы и нужны.

Не хочу влезать, но алгоритмы действительно не самая важная часть CS, а по факту, в CS настолько много разделов, что алгоритмы и структуры данных далеко не самый крупный раздел. О таких темах, как компиляторы, операционные системы, сети и т.д. написано не один десяток книг. В большей части все это опирается на математику (дискретная математика, реляционная алгебра, асимптотический анализ, теория типов, теория категорий, теория языков, автоматы, теория сложности вычислений, линейная алгебра, вычислительная геометрия, линейная алгебра и т.д.).
Просто сейчас стало модно проводить так называемые алгоритмические собеседования. В большинстве случаев это обусловлено тем, что если кандидат знает оптимальный алгоритм или достаточно находчив, чтобы найти такой самостоятельно, то в дальнейшем он сможет быстро и эффективно решать любые поставленные задачи. С другой стороны хватает собесов, где тебя оценивают по практическим навыкам (знания конкретного языка\фреймворка\инструментария, реальный опыт работы и т.д.).

Все таки computer science в первую очередь, про вычисления. Алгоритмы как раз в т.ч. про это. ОС и прочее конечно элементы computer science используют, но это прикладное применение. Естественно имхо. А теории типов, и прочие математики для прикладных программистов не очень нужны.

Впервые столкнулся с английским изданием этой книги в начале года. Думал, что здесь будет если не полное погружение в CS (такая книга заняла бы не одну тысячу страниц), то хотя бы систематический обзор фундаментальных концепций и направлений в CS с ссылками для дальнейшего погружения (например, Кормен/Седжвик — Алгоритмы и структуры данных, Ахо и Ульман — Компиляторы, Таненбаум — Сети и ОС, и т.д.). Оказалось, что эта книжка вообще ни о чем. Здесь нет систематического подхода ни к одной из представленных тем. Автор ожидает, что читатель уже знаком с CS и просто набрасывает темы а ля динамическое программирования и жадные алгоритмы, не утруждаясь нормально объяснить «что это». Подбор тем условный и произвольный. То, что есть, скомкано и не дает минимума общего представления темы. Для опытного разработчика эта книга станет пустой тратой времени. Для начинающего — только больше запутает и создаст кашу в голове.
Никого не зазываю, но я бы не стал рекомендовать эту книгу для погружения в профессию. Никогда.

НЛО прилетело и опубликовало эту надпись здесь
Да
Зарегистрируйтесь на Хабре, чтобы оставить комментарий