metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2012-08-16 09:51 pm

Книжки и алгоритмы

Пост http://victorgr.livejournal.com/502847.html напомнил одну штуку.

Я ни разу не читал ни одной книжки сугубо по алгоритмам. Все алгоритмы, которые помню, знаю либо потому, что использую их каждый день, либо потому что были когда-то нужны и я их реализовывал самостоятельно, либо потому, что мне про них рассказали ЖЖ-френды, либо потому что они интересно реализуются на функциональных языках и их используют в качестве примеров.

Если по хорошему, то надо бы это дело поправить. Хотя бы для того, чтобы при необходимости реализовать что-то были базовые строительные блоки в памяти - тогда проще найти нужную ассоциацию или аналогию.
Но вообще 99% моих задач - это отчетность, вся производительность которой упирается в скорость работы БД (а алгоритмы, используемые в БД, я как раз помню лучше других), CRUD, который упирается в различные вариации на тему ORM и "как показать пользователю объект для редактирования наиболее удобным образом", или же интеграция с разного рода кромешной индусятиной, где знание алгоритмов не нужно, зато нужно умение чинить баги по фотографии.

[identity profile] falcrum.livejournal.com 2012-08-16 06:57 pm (UTC)(link)
Я бы даже по БД от сборника "100 алгоритмов, одобренных раввинатом" не отказался бы... :)

[identity profile] victorgr.livejournal.com 2012-08-16 06:59 pm (UTC)(link)
Так 90% всех задач -- это собрать что-то из готовых кубиков и соединить трубами. Обычное строительство, кирпичи ложить. Скучно же.

Какие-нибудь суровые обработки данных - это сейчас где-то глубоко внутри яндексов, гуглов и фейсбуках. Ну конечно ещё где-то, но открытые вакансии прямо там.

[identity profile] raydac.livejournal.com 2012-08-16 07:27 pm (UTC)(link)
значит тебя загомосячат на собеседованиях вопросами про сложность

[identity profile] freetiger.livejournal.com 2012-08-16 07:32 pm (UTC)(link)

[identity profile] blackyblack.livejournal.com 2012-08-16 07:35 pm (UTC)(link)
Знать алгоритмы, в общем, полезно. Можно внезапно освоить нишу рынка, просто грамотно применив нужный алгоритм. Другое дело, что работа это разовая и в развитых странах для этого применяют мозговой штурм и высокооплачиваемых консультантов™.
Если же нужно просто в работе что-нибудь заоптимизировать, без выпендрежа, то применяется поиск в гугле и реализация алгоритма оттуда же. Дешево и сердито.

[identity profile] nivanych.livejournal.com 2012-08-16 08:16 pm (UTC)(link)
Вот чиста любопытно, вот например, алгоритм Дейкстры тоже так прочитался?

[identity profile] vit-r.livejournal.com 2012-08-16 08:28 pm (UTC)(link)
Ага. Чтобы понять, какой алгоритм надо применять, надо сначала решить задачу. А потом выясняется, что улучшения и ускорения в конечном итоге ничего не дадут.

[identity profile] nicka-startcev.livejournal.com 2012-08-16 09:16 pm (UTC)(link)
Дональд Кнут, Искусство погромирования. Один из томов посвящен именно что классическим алгоритмам и их плюсам/минусам.

сортировка, ГСЧ, итп.

[identity profile] divine-assass1n.livejournal.com 2012-08-16 10:13 pm (UTC)(link)
На coursera.org начался курс по алгоритмам принстонского университета, недели не прошло. Вчера поимел fun с первым programming assignmet.

[identity profile] freiksenet.livejournal.com 2012-08-17 07:51 am (UTC)(link)
Корман - тоненькая книжка на 500 страниц. Вполне себе можете прочитать и все базовые алгоритмы у вас будут.