can3p (can3p) wrote,
can3p
can3p

Из прочитанного. Выпуск 31. Алгоритмы

Как-то один из моих коллег уехал в гугл и посоветовал книжку про подготовку к интервью, а потом я прочитал статью Стива Йегге про подготовку к интервью и выловил там другую. Я довольно долго мусолил обе, так как чтиво на любителя, как детективный роман не читается, но думаю, что уже пора про них написать, так как все хорошие.

1) Cracking the coding interview, Gayle Laakmann McDowell

5 / 5

Предельно конкретная книжка. Никаких особых растеканий по древу, только практические советы, начиная с того, в каком виде приходить на интервью, как рассказывать о себе и т.п. и продолжая уже задачами. Книга построена по тематическим разделам - массивы, строки, графы, сортировка, бинарные операции, вопросы по языкам и т.д., в каждом разделе дается краткое описание, что нужно знать по предмету и про что обычно спрашивают. После этого идет список задач, к каждой из которых в конце книги приложено одна или больше подсказок, что помогает решать задачу, не читая сразу ответ.

Книжка толстая, но две трети ее - это как раз ответы, поэтому при нехватке времени ее проглотить довольно быстро, указанные задачи вполне реалистичны.

2) The algorithm design manual, Steve Skiena

5 / 5

Только заметил, что у всех людей в этом посте фамилии примечательные.

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

Текст разделов идет вперемешку с боевыми историями (war stories), в которых рассказывается, как автор ловко распознал необходимость использования алгоритма в той или иной ситуации.

Судя по комментариям в интернете, многих бесит немного фамильярный тон автора, но мне лично показалось, что лучше написать книгу подобного плана почти невозможно. Материал местами зубодробительный, и я могу представить, что любой другой учебник легко скатиться в безумно скучные доказательство и описание всех возможных алгоритмов в каждой области, но меня, как читателя без формального CS образования формат книги устроил более чем полностью, и пусть все академические зануды идут лесом.

3) Seven concurrency models in seven weeks, Paul Butcher

5 / 5

Эта не про алгоритмы, но раз я с ней разделался, то решил упомянуть и ее. С точки зрения расширения кругозора легко попадает в компанию к Designing Data-Intensive Applications, хоть и не настолько фундаментальная. Содержание полностью соотвествует названию, разве что семи недель для ознакомления с текстом точно не нужно, если плотно взяться.

Начинается с прозаичных тредов, но далее по тексту автор разбирает другие возможные варианты concurrent и parallel программирования (как по-русски?). Для меня было интересно все, особенно понравились главы про Actor model на примере эликсира и про CSP на примере clojure.async.

Автор разжевывет концепты предельно четко, заодно рассказывает про их слабые и сильные стороны.

Tags: из прочитанного
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments