1️⃣ Программист-фанатик (Фаулер Чад)
В этой книге вы не найдете описания конкретных технологий, алгоритмов и языков программирования - ценность ее не в этом.
Она представляет собой сборник практических советов и рекомендаций, касающихся ситуаций, с которыми порой сталкивается любой разработчик: отсутствие мотивации, выбор приоритетов, психология программирования, отношения с руководством и коллегами и многих других. Подобные знания обычно приходят лишь в результате многолетнего опыта реальной работы.
По большому счёту перед вами - ярко и увлекательно написанное руководство, которое поможет быстро сделать карьеру в индустрии разработки ПО любому, кто поставил себе такую цель. Конечно, опытные программисты могут найти некоторые идеи автора достаточно очевидными, но и для таких найдутся темы, которые позволят пересмотреть устоявшиеся взгляды и выйти на новый уровень мастерства. Для тех же, кто только в самом начале своего пути как разработчика, чтение данной книги, несомненно, откроет широчайшие перспективы.
2️⃣ Думай как программист. Креативный подход к созданию кода. C++ версия (Антон Спрол)
Книга для всех программистов, желающих повысить свой уровень. Если вы испытываете трудности при создании кода, эта книга для вас!
Ее автор по-новому взглянул на проблемы программирования и создал эффективную программу, позволяющую развить в себе творческое мышление и научиться решать задачи любой сложности.
Эта книга прекрасно подойдет для тех, кто уже имеет опыт в программировании и хочет усовершенствовать свои навыки и продвинуться на следующую ступень. Впрочем и новички, только начинающие осваивать азы C++, найдут в ней много полезного. Книга снабжена множеством понятных примеров, написана легко и интересно.
3️⃣ Экстремальное программирование: разработка через тестирование (Кент Бек)
Изящный, гибкий и понятный код, который легко модифицировать, который корректно работает и который не подкидывает своим создателям неприятных сюрпризов. Неужели подобное возможно?
Чтобы достичь цели, попробуйте тестировать программу еще до того, как она написана. Именно такая парадоксальная идея положена в основу методики TDD (Test-DrivenDevelopment – разработка, основанная на тестировании). Бессмыслица? Не спешите делать скороспелые выводы. Рассматривая применение TDD на примере разработки реального программного кода, автор демонстрирует простоту и мощь этой методики. В книге приведены два программных проекта, целиком и полностью реализованных с использованием TDD.
За рассмотрением примеров следует обширный каталог приемов работы в стиле TDD, а также паттернов и рефакторингов, имеющих отношение к TDD. Книга будет полезна для любого программиста, желающего повысить производительность своей работы и получить удовольствие от программирования.
4️⃣ Совершенный алгоритм. Основы (Тим Рафгарден)
«Совершенный алгоритм» превратит вас в настоящего профи, который будет ставить задачи и мастерски их решать как в жизни, так и на собеседовании при приеме на работу в любую IT-компанию. Тим Рафгарден расскажет об асимптотическом анализе, нотации большое-О, алгоритмах «разделяй и властвуй», рандомизации, сортировки и отбора. Книга адресована тем, у кого уже есть опыт программирования. Вы перейдете на новый уровень, чтобы увидеть общую картину, разобраться в низкоуровневых концепциях и математических нюансах.
5️⃣ Машинное обучение. Наука и искусство построения алгоритмов, которые извлекают знания из данных (Петер Флах)
Перед вами один из самых интересных учебников по машинному обучению - разделу искусственного интеллекта, изучающего методы построения моделей, способных обучаться, и алгоритмов для их построения. Автор воздал должное невероятному богатству предмета и не упустил из вида объединяющих принципов. Читатель с первых страниц погружается в машинное обучение в действии, но без не нужных на первых порах технических деталей. По мере изучения предмета тщательно подобранные примеры, сопровождаемые иллюстрациями, постепенно усложняются. В книге описан широкий круг логических, геометрических и статистических моделей, затрагиваются и такие находящиеся на переднем крае науки темы, как матричная факторизация и анализ РХП.
Особое внимание уделено важнейшей роли признаков. Устоявшаяся терминология дополняется введением в рассмотрение новых полезных концепций. В конце каждой главы приводятся ссылки на дополнительную литературу с авторскими комментариями. Книга ясно написана и хорошо организована. Начав с основ, автор умело ведет читателя, знакомя его с полезными фактами и подробно описывая ряд методов машинного обучения. Приводится также псевдокод ключевых алгоритмов. Благодаря всему этому книга задает новый стандарт изучения такой сложной дисциплины как машинное обучение.