Найти в Дзене
Inreal Another-Reality

📚 Полка разработчика: книги, которые стоит прочесть программисту

Программирование – это процесс и искусство создания компьютерных программ с помощью языков программирования. Программирование сочетает в себе элементы искусства, науки, математики и инженерии. Сделали для вас подборку книг, которые будут полезны не только начинающим разработчикам, но и более опытным специалистам: они помогут освежить важные знания и посмотреть на уже знакомые вещи под другим углом. «Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих» – Адитья Бхаргава Алгоритмы – это всего лишь пошаговые инструкции решения задач, и большинство таких задач уже были кем-то решены, протестированы и проверены. Можно, конечно, погрузиться в глубокую философию гениального Кнута, изучить многостраничные фолианты с доказательствами и обоснованиями, но хотите ли вы тратить на это свое время? Откройте великолепно иллюстрированную книгу и вы сразу поймете, что алгоритмы –это просто. А грокать алгоритмы – веселое и увлекательное занятие. Эта книга предназначена для чит
Оглавление

Программирование – это процесс и искусство создания компьютерных программ с помощью языков программирования.

Программирование сочетает в себе элементы искусства, науки, математики и инженерии.

Сделали для вас подборку книг, которые будут полезны не только начинающим разработчикам, но и более опытным специалистам: они помогут освежить важные знания и посмотреть на уже знакомые вещи под другим углом.

«Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих» – Адитья Бхаргава

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

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

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀***

«Выразительный JavaScript. 3-е издание. Современное веб-программирование» – Марейн Хавербеке

-2

«Выразительный JavaScript» позволит глубоко погрузиться в тему, научиться писать красивый и эффективный код. Вы познакомитесь с синтаксисом, стрелочными и асинхронными функциями, итератором, шаблонными строками и блочной областью видимости.

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

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀***

«Вы не знаете JS» (серия книг) – Кайл Симпсон

-3

Серия состоит из 6 книг:

  1. «Познакомьтесь, JavaScript»
  2. «Область видимости и замыкания»
  3. «Замыкания и объекты»
  4. «Типы и грамматические конструкции»
  5. «Асинхронная обработка и оптимизация»
  6. «ES6 и не только»

В этой серии книг автор подробно и последовательно доносит до читателя особенности работы языка JavaScript. Все темы разбираются максимально детально и подкрепляются примерами. Первые книги серии вышли в 2014 году, последние были написаны в 2021. Руководства подойдут новичкам и тем, кто хочет освежить или закрепить знания. Если вы только начинаете знакомиться с языком программирования, читайте книги в представленной последовательности.

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀***

«Чистый код. Создание, анализ и рефакторинг» – Роберт Мартин

-4

Плохой код может работать, но он будет мешать развитию проекта и компании-разработчика, требуя дополнительные ресурсы на поддержку и «укрощение».
Каким же должен быть код? Эта книга полна реальных примеров, позволяющих взглянуть на код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Вы узнаете много нового о коде. Более того, научитесь отличать хороший код от плохого, узнаете, как писать хороший код и как преобразовать плохой код в хороший.
Книга состоит из трех частей. Сначала вы познакомитесь с принципами, паттернами и приемами написания чистого кода. Затем приступите к практическим сценариям с нарастающей сложностью – упражнениям по чистке кода или преобразованию проблемного кода в менее проблемный. И только после этого перейдете к самому важному – концентрированному выражению сути этой книги – набору эвристических правил и «запахов кода». Именно эта база знаний описывает путь мышления в процессе чтения, написания и чистки кода.

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

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀***

«Идеальный программист. Как стать профессионалом разработки ПО» – Роберт Мартин

-5

Всех программистов, которые добиваются успеха в мире разработки ПО, отличает один общий признак: они больше всего заботятся о качестве создаваемого программного обеспечения. Это – основа для них. Потому что они являются профессионалами своего дела.

В этой книге легендарный эксперт Роберт Мартин (более известный в сообществе как «Дядюшка Боб»), автор бестселлера «Чистый код», рассказывает о том, что значит «быть профессиональным программистом», описывая методы, инструменты и практики разработки «идеального ПО». Книга насыщена практическими советами в отношении всех аспектов программирования: от оценки проекта и написания кода до рефакторинга и тестирования. Эта книга – больше, чем описание методов, она о профессиональном подходе к процессу разработки.

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀***

«Чистая архитектура. Искусство разработки программного обеспечения» – Роберт Мартин

-6

«Идеальный программист» и «Чистый код» – легендарные бестселлеры Роберта Мартина – рассказывают, как достичь высот профессионализма. «Чистая архитектура» продолжает эту тему, но не предлагает несколько вариантов в стиле «решай сам», а объясняет, что именно следует делать, по какой причине и почему именно такое решение станет принципиально важным для вашего успеха.

В книге рассказывается о роли архитектуры и проектирования в процессе разработки ПО, а также про паттерны проектирования архитектуры для решения общих проблем, возникающих при разработке ПО. Автор дает множество четких и понятных ответов на ключевые вопросы архитектуры и дизайна. Много внимания уделяется раскрытию и объяснению принципов SOLID.

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀***

«Программист-прагматик. Путь от подмастерья к мастеру» – Эндрю Хант, Дэвид Томас

-7

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

➥ бороться с недостатками программного обеспечения;

➥ избегать ловушек, связанных с дублированием;

➥ создавать гибкие, динамичные и адаптируемые программы;

➥ избегать программирования в расчете на совпадение;

➥ защищать вашу программу при помощи контрактов, утверждений и исключений;

➥собирать реальные требования;

➥ осуществлять безжалостное и эффективное тестирование;

➥ приводить в восторг ваших пользователей;

➥ формировать команды из программистов-прагматиков;

➥ с помощью автоматизации делать ваши разработки более точными.

Книга «Программист-прагматик» написана в виде последовательных законченных разделов и изобилует анекдотами, серьезными примерами и разнообразными аналогиями. В ней описываются самые интересные случаи из практики авторов и основные ловушки, относящиеся к разным аспектам разработки программ.

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

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀***

«Рефакторинг. Улучшение проекта существующего кода» – Мартин Фаулер

-8

Рефакторинг уже давно и прочно занимает свое достойное место среди технологий программирования, и не в последнюю очередь благодаря книге Мартина Фаулера – одной из тех книг, которые написаны «на все времена» и которые, как хорошее вино, со временем становятся только ценнее. Сам принцип рефакторинга прост: это последовательность небольших шагов, таких как перемещение поля из одного класса в другой, вынесение фрагмента кода из метода и его превращение в самостоятельный метод или даже перемещение кода по иерархии классов. Каждый такой шаг выглядит настолько просто и естественно, что кажется удивительным – о чем здесь можно писать? Однако кумулятивный эффект от таких малых изменений состоит в существенном улучшении проекта существующего кода.

Мартин Фаулер и другие высококлассные специалисты в области объектно-ориентированного программирования, принявшие участие в написании этой книги, изложили принципы и наиболее эффективные методики выполнения различных рефакторингов и показали, когда и как следует тщательно изучать код с целью его улучшения. В книге подробно описано более 70 методов рефакторинга, причем приведено не только их теоретическое описание, но и практические примеры на языке программирования Java.

Данная классическая книга достойна того, чтобы занять свое место на книжной полке каждого серьезного программиста – вне зависимости от используемого языка программирования.

По мере распространения объектных технологий – в особенности с использованием языка программирования Java – для сообщества разработчиков программного обеспечения становилась все более и более актуальной новая проблема.

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀***

«Эффективная работа с унаследованным кодом» – Майкл Физерс

-9

Учитесь извлекать максимум пользы из унаследованных систем, повышая их производительность, функциональность, надежность и сопровождаемость!

Можете ли вы без особого труда изменить код и тут же получить ответную реакцию на внесённые изменения? Насколько понятен этот код? Если вы ответите на эти вопросы отрицательно, значит, вы имеете дело с унаследованным кодом и понапрасну тратите время и средства на разработку.

В своей книге Майкл Физерс предлагает полноценные стратегические приемы эффективной работы с крупными базами унаследованного нетестированного кода. В основу этой книги положен материал, подготовленный автором к известным семинарам, организуемым компанией Object Mentor, включая приёмы, которым автор обучил сотни разработчиков, технических руководителей и тестирующих программное обеспечение подчинять себе непослушные унаследованные системы.

В этой книге освещаются следующие вопросы:

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

➥ Перенос унаследованного кода в средства тестирования.

➥ Написание тестов, препятствующих внесению новых ошибок в код.

➥ Применение методов, подходящих для любого языка или платформы, с примерами кода на Java, C++, C и C#.

➥ Точное выявление мест в коде, где требуется внести изменения.

➥ Работа с унаследованным кодом, который не является объектно-ориентированным.

➥ Обращение с приложениями, у которых, на первый взгляд, нет вообще никакой структуры.

Кроме того, в этой книге представлены 24 способа разрыва зависимостей, помогающих работать с элементами программного обеспечения обособленно, чтобы сделать внесение изменений в код более безопасным.

⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀***

«Head first. Паттерны проектирования» – Эрик Фримен, Элизабет Робсон, Кэти Сьерра, Берт Бейтс

-10

Больше 12 лет прошло с момента выхода первого издания книги, но она продолжает оставаться актуальной. Основные идеи не изменились, но изменился язык Java, например, появились лямбда-выражения. Поэтому авторы приняли решение обновить легендарную книгу и выпустить юбилейное издание.

В мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи и находят похожие решения. Если вы не хотите изобретать велосипед, используйте готовые шаблоны (паттерны) проектирования, работе с которыми посвящена эта книга.

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

Особенностью данного издания является уникальный способ подачи материала, выделяющий серию «Head First» издательства O’Reilly в ряду множества скучных книг, посвященных программированию. Книга будет интересна широкому кругу веб-разработчиков, от начинающих до профессионалов, желающих освоить работу с паттернами проектирования.

-11