Подумайте о структурах данных
после оплаты (24/7)
(для всех устройств)
(в т.ч. для Apple и Android)
Структуры данных и алгоритмы являются одними из наиболее важных изобретений за последние 50 лет и являются фундаментальными инструментами, которые должны знать инженеры-программисты. Но, на мой взгляд, большинство книг по этим темам слишком теоретические, слишком объемные и слишком «снизу вверх»: Слишком теоретический Математический анализ алгоритмов основан на упрощающих предположениях, которые ограничивают его полезность на практике. Многие презентации по этой теме замалчивают упрощения и сосредотачиваются на математике. В этой книге я представляю наиболее практичную часть этого материала и опускаю или преуменьшаю значение остальных. Слишком большой размер Большинство книг по этим темам составляют не менее 500 страниц, а некоторые - более 1000. Сосредотачиваясь на темах, которые, по моему мнению, являются наиболее Будучи полезной для инженеров-программистов, я ограничил объем этой книги 150 страницами. Слишком «снизу вверх». Многие книги по структурам данных фокусируются на том, как работают структуры данных (реализации), и уделяют меньше внимания тому, как их использовать (интерфейсы). В этой книге я иду «сверху вниз», начиная с интерфейсов. Читатели учатся использовать структуры Java Collections Framework, прежде чем углубляться в детали того, как они работают. Наконец, в некоторых книгах этот материал представлен вне контекста и без мотивации: это просто одна проклятая структура данных за другой! Я пытаюсь оживить его, организовав темы вокруг приложения — веб-поиска, — которое широко использует структуры данных и которое само по себе является интересной и важной темой. Это приложение мотивирует некоторые темы, которые обычно не освещаются во введении. Класс структур данных, включая постоянные структуры данных с Redis. Мне пришлось принять трудное решение о том, что исключить, но я пошел на некоторые компромиссы. Я включаю несколько тем, которые большинство читателей никогда не будут использовать, но о которых они, возможно, узнают, возможно, во время технического интервью. По этим темам я излагаю как общепринятые мнения, так и причины моего скептицизма. В этой книге также представлены основные аспекты практики разработки программного обеспечения, включая контроль версий и модульное тестирование. Большинство глав содержат упражнения, которые позволяют читателям применить полученные знания. В каждом упражнении предусмотрены автоматические тесты, проверяющие решение. А для большинства упражнений я представляю решение в начале следующей главы.
Характеристики
- Язык
- Английский