Привет, Хабр! Сегодня хотим представить подборку книг, которые было бы полезно прочитать любому программисту. Многие из них, вероятно, вами уже прочитаны, но если нет, рекомендуем ознакомиться. В подборке 7 книг — конечно, это субъективный выбор. Но если у вас есть любимые книги по разработке, которые вы можете рекомендовать, расскажите о них в комментариях, пожалуйста. Автор: Гейл Лакман Макдауэлл Это уже шестое издание популярной книги, в которой рассказывается о том, как подготовиться к собеседованию. Естественно, это не панацея, а, скажем так, возможность ознакомиться с тем, как проходят интервью с соискателями в крупных компаниях.  Книга будет полезна не только разработчикам, но и компаниям, а также специалистам, которые проводят интервью. Дело в том, что в книге раскрываются основы хорошего интервью, которое как нравится кандидатам на должность, так и оказывает пользу компании.  Издание подходит и новичкам, и опытным разработчикам, у которых не слишком большое количество собеседований на карьерном пути. Такое бывает частенько, так что не пропустите «Карьеру программиста».  Автор: Адитья Бхаргава Хорошая книга, которая помогает читателю войти в мир алгоритмов и структур данных. Она предназначена как раз для тех начинающих разработчиков, кто либо вообще не знаком с алгоритмами, либо знаком, но слабо.  В книге объясняются нюансы алгоритмов и структур данных, включая алгоритмы сортировок, поиска, алгоритмы работы с графами и т. п. Есть также немало иллюстраций и практических примеров, благодаря чему материал усваивается быстро. Для того чтобы получить и практический опыт, нужно выполнять упражнения, большинство которых хорошо продумано.  Несмотря на то, что тема книги достаточно сложная, она написана понятным и простым языком. Так что у читателя не должно возникнуть сложностей при прочтении этого издания. К слову, в этой книге могут найти что-то полезное для себя и опытные разработчики. Судя по отзывам, она помогла многим специалистам.   Авторы: Нил Форд, Марк Ричардс Разработчику стоит разбираться в основах проектирования и разработке программных архитектур. И книга позволяет это сделать. Это достаточно подробное руководство по проектированию и разработке архитектур с использованием как современных подходов, так и практик.  В ней рассматриваются главные концепции программной архитектуры, начиная от известных практически всем принципов SOLID и заканчивая микросервисами, облаками и распределёнными системами. Автор рекомендует практики и методики, которые позволяют разрабатывать гибкие и легко масштабируемые системы.  Большой плюс книги в том, что в ней много практических примеров, а не только лишь теория. Есть также советы от авторов, и эти советы просто работают. Пригодиться вся эта информация может как начинающим разработчикам, так и уже опытным профессионалам. Автор: Роберт Мартин Автор в этом издании рассказывает о роли архитектуры и проектирования в процессе разработки ПО. Кроме того, он также раскрывает нюансы паттернов проектирования архитектуры для решения общих проблем, которые возникают при разработке ПО. Также есть ответы на часто возникающие у новичков вопросы об архитектуре и дизайне ПО, подробно рассказывается о принципах SOLID. Есть как теория, так и примеры, которые показываются по ходу изложения, помогая лучше понимать прочитанное. Книга рекомендуется начинающим разработчикам, хотя она может пригодиться и их более опытным коллегам. Крайне полезной она будет для системных аналитиков, архитекторов и вообще разработчиков, которые хотят повысить свой профессиональный уровень. Достоинство книги в том, что изложение простое, оно не перегружено специнформацией, нет и сложных примеров, доступных лишь избранным. К слову, книгу советуют не только разработчики для разработчиков, она может быть полезна всем, кто взаимодействует с группами разработки, для понимания происходящих процессов.  Автор: Джей Гивакс  Автор этой книги рассказывает о проблемах при разработке API, также даёт советы по оптимизации проектирования и обучает созданию качественного ПО, которое нужно пользователям. В книге изложен личный опыт автора, причём с самыми разными программными интерфейсами. Также в ней рассказывается о шаблонах при разработке API, включая использование определённых шаблонов для решения разных задач.  Книга пригодится широкому кругу читателей, рассчитана она, скажем так, на подготовленного новичка.  Автор: Пол Орланд  Без математики разработчики многих отраслей и направлений обойтись не могут. Бывают исключения, но их не так много, конечно. Эта книга помогает вспомнить или выучить основные математические алгоритмы, которые предназначены для использования в разработке ПО. Есть сразу несколько важных тем, которые раскрывает автор. Во-первых, это методы линейной алгебры для проведения матричных вычислений.  Во-вторых, методы исчисления для простого физического моделирования.  В-третьих, раскрытие основ алгоритмов, которые применяются в машинном обучении.  Книга пригодится многим, не только новичкам. Вероятно, специалистам по машинному обучению с большим опытом её можно уже не рекомендовать, начинающим разработчикам и более опытным их коллегам издание может оказаться полезным.  Автор: Дэвид Фарли  Наконец, ещё одна важная книга, автор которой помогает разработчикам оптимизировать свою работу, научиться более успешно управлять проектами и улучшать ПО. Основная тема книги — принципы эффективной разработки ПО. Они, по мнению Фарли, разделяются на две составных части. Первая — это изучение и исследование, в комплексе. Вторая — управление сложностью. Все принципы взаимосвязаны, ими стоит пользоваться как в ходе проектирования ПО, так и в процессе самого кодинга.  Опыт при прочтении этой книги не особо важен — любой читатель может найти для себя что-то интересное и нужное.  Что же, если у вас есть свои любимые книги, которые вы можете рекомендовать коллегам-разработчикам, расскажите о них, пожалуйста.