25 лучших книг для программистов

25 лучших книг для программистов

В интернете можно найти бесчисленное множество списков «лучших книг о программировании». Однако у каждого своё мнение, и, как говорится, о вкусах не спорят. Саму же процедуру поиска можно попытаться объективизровать, например, использовать критерий цитируемости. Такую попытку предпринял французский разработчик Пьер де Вульф. Ниже мы кратко расскажем о его методологии. Если вам интересен только список книг, переходите к следующему разделу.

Для начала Пьер сделал несколько вариаций Google-запроса «Best Programming Books». Пропарсив топ поисковой выдачи и исключив дубликаты списков, Пьер получив 150 подходящих страниц. Далее из них были исключены ветки Quora и Reddit, а также списки, сфокусированные конкретной технологии или платформе, одном конкретном годе или бесплатных онлайн-книгах.

В итоге получилось 110 HTML-файлов, для которых были определены CSS-селекторы с названиями книг. При этом удалось исключить ещё около 40 нерелевантных страниц.

Используя Python, библиотеку BeautifulSoup и найденные CSS-селекторы, Пьер извлёк текст из необходимых DOM-элементов. Получился большой список книг, требующий дополнительной обработки.

Часть списка с книгами после парсинга страницЧасть списка с книгами после парсинга страниц

Чтобы найти самые цитируемые книги, требовалось нормализовать результаты. Например, названия книг имели разные стили оформления:

  • by <author>,</li> <li><title>– <author>,</li> <li><title>: <subtitle>,</li> <li><title>,</li> <li>или всё подряд, включая даже номер издания.</li> </ul> <p>Для обработки различных вариантов оформления была написана следующая функция:</p> <p>После её применения потребовалось немного ручной очистки. Список стал выглядеть так:</p> <p> <img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_2.png" alt="Часть списка после применения функции <code />Часть списка после применения функции clean_link() .</p> <p>Для этого списка было уже легко вычислить наиболее часто рекомендуемые книги. Все данные, которые использовались для обработки, можно найти в GitHub-репозитории.</p> <p>Для удобства наших читателей мы постарались найти переводные эквиваленты указанных Пьером книг. Стоит оговориться, что не всегда у хороших книг бывают достойные переводы. Поэтому также мы указываем оригинальные названия изданий.</p> <h2>25. Хамбл, Фарли. Непрерывное развёртывание ПО (8.8% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_8.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/7243884/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Хамбл, Фарли. Непрерывное развёртывание ПО</a>" />Хамбл, Фарли. Непрерывное развёртывание ПО</p> <p><b>Оригинальное название</b>: Continuous Delivery by Jez Humble & David Farley.</p> <p>В книге Джеза Хамбла и Дэвида Фарли приведены принципы и практические методы для сборки, автоматизации, тестирования и развёртывания высоконагруженных приложений. Авторы рассказывают о непрерывном интегрировании, разбиении проекта на компоненты и контроле версий. Книга ориентирована на программистов, имеющих опыт в корпоративной разработке. Рассматриваются следующие темы:</p> <ul> <li>автоматизация сборки, интеграции, тестирования и развертывания программного обеспечения;</li> <li>реализация конвейера развертывания на уровне команд и организаций;</li> <li>взаимодействие разработчиков, тестировщиков и администраторов;</li> <li>стратегии инкрементной разработки программных средств большими распределенными командами;</li> <li>эффективные стратегии управления конфигурациями;</li> <li>автоматизация приемочного тестирования – от анализа требований до реализации процессов.</li> </ul> <h2>24. Уэйн, Седжвик. Алгоритмы на Java (8.8% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_17.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/149059238/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Уэйн, Седжвик. Алгоритмы на Java</a>" />Уэйн, Седжвик. Алгоритмы на Java</p> <p><b>Оригинальное название</b>: Algorithms by Robert Sedgewick & Kevin Wayne.</p> <p>Книга Седжвика и Уэйна «Алгоритмы на Java» является классическим справочным руководством, содержащим необходимый объём знаний для программиста в области алгоритмов, накопленных за последние несколько десятилетий. Как следует из названия, сами алгоритмы реализованы на Java.</p> <h2>23. Кори Альтхофф. Сам себе программист (8.8% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_5.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/145232631/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Кори Альтхофф. Сам себе программист</a>" />Кори Альтхофф. Сам себе программист</p> <p><b>Оригинальное название</b>: The Self-Taught Programmer by Cory Althoff.</p> <p>Кори Альтхофф – профессиональный self-made разработчик, на собственном опыте прошедший путь от новичка до инженера программного обеспечения в компании eBay. Автор поможет пройти сложный путь от создания первой программы на Python до первого собеседования.</p> <p>Книга состоит из нескольких разделов:</p> <ul> <li>основы Python 3 и разработка первых программ;</li> <li>основы объектно-ориентированного программирования;</li> <li>Git, Bash, регулярные выражения и базы данных. Использование приобретённых прежде навыков для разработки веб-скрапера;</li> <li>основы Computer Science, алгоритмов и структур данных;</li> <li>советы о работе в команде и получении первой работы.</li> </ul> <h2>22. Steve McConnell. Rapid Development (8.8% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_1.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/1829475//?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Steve McConnell. Rapid Development</a>" />Steve McConnell. Rapid Development</p> <p>Единственное издание, для которого мы не нашли переводного эквивалента на русском языке. В этой книге Стив Макконнелл рассказывает о проблемах, связанных с общими стратегиями, конкретными лучшими практиками и полезными советами, которые помогают сократить и контролировать графики разработки и поддерживать стремительное развитие проектов.</p> <h2>21. Питер Сейбел. Кодеры за работой. Размышления о ремесле программиста (10.2% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_2.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/6252312/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Питер Сейбел. Кодеры за работой. Размышления о ремесле программиста</a>" />Питер Сейбел. Кодеры за работой. Размышления о ремесле программиста</p> <p><b>Оригинальное название</b>: Coders at Work by Peter Seibel.</p> <p>Программисты – люди не очень публичные, многие работают поодиночке или в небольших группах. Самая важная и интересная часть их работы никому не видна, потому что происходит у них в голове.</p> <p>Питер Сейбел взял интервью у 15профессионалов: Кена Томпсона, создателя UNIX, Берни Козелла, участника первой реализации сети ARPANET, Дональда Кнута, Гая Стила, Джейми Завински, Саймона Пейтон-Джонса, Питера Норвига, Дугласа Крокфорда, Джошуа Блоха, Брендана Айка, Джо Армстронга, Брэда Фицпатрика, создателя Живого Журнала, и других.</p> <p>Все они «подсели» на программирование ещё в школе. Тогда, на заре зарождения отрасли, лишь в немногих учебных заведениях читались курсы по компьютерным наукам. Поэтому будущим гуру приходилось покорять профессиональные вершины самостоятельно, но всех их отличает творческое горение и полная самоотдача любимому делу. Вы узнаете, что они думают о будущем программирования и как сами научились программировать, как, по их мнению, нужно проектировать ПО, как выбор языка программирования влияет на продуктивность и можно ли облегчить выявление труднонаходимых ошибок.</p> <h2>20. Эрик Эванс. Предметно-ориентированное проектирование. Структуризация сложных программных систем (10.2% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_6.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/5497184/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Эрик Эванс. Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем</a>" />Эрик Эванс. Предметно-ориентированное проектирование (DDD). Структуризация сложных программных систем</p> <p><b>Оригинальное название</b>: Domain-Driven Design by Eric Evans.</p> <p>Классическая книга Эрика Эванса освещает наиболее общий, стратегический круг вопросов, связанных с объектно-ориентированной разработкой программного обеспечения. Подход автора строится на динамичном рефакторинге модели. Это позволяет достигнуть высокой степени гармонии между логикой предметной области и кодом программы, а также достаточной гибкости программной архитектуры для удобной доработки и интеграции программного обеспечения. Книга насыщена практическими примерами из реальных проектов.</p> <h2>19. Дональд Кнут. Искусство программирования (10.2% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_3.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/149831755?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Дональд Кнут. Искусство программирования</a>" />Дональд Кнут. Искусство программирования</p> <p><b>Оригинальное название</b>: The Art of Computer Programming by Donald E. Knuth.</p> <p>Фундаментальная монография известного американского математика и специалиста в области компьютерных наук Дональда Кнута, посвящённая рассмотрению и анализу важнейших алгоритмов, используемых в информатике. В 1999 году книга была признана одной из двенадцати лучших физико-математических монографий столетия.</p> <h2>18. Абельсон, Сассман. Структура и интерпретация компьютерных программ (13.2% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_4.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/5322055/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Структура и интерпретация компьютерных программ</a>" />Структура и интерпретация компьютерных программ</p> <p><b>Оригинальное название</b>: Structure and Interpretation of Computer Programs by Harold Abelson / Gerald Jay Sussman / Julie Sussman.</p> <p>Классическая книга Харольда Абельсона и Джеральда Сассмана о программировании. В Массачусетском технологическом институте использовалась как учебник для начального курса программирования. Помимо этого, книгу используют во многих американских учебных заведениях, имеющих курсы, так или иначе связанные с языком Scheme. Используя Scheme (диалект языка LISP), авторы описали основные концепции программирования, включая абстракцию (данных и исполнения), рекурсию и метаязыковую абстракцию.</p> <h2>17. Мартин Фаулер. Шаблоны корпоративных приложений (14.7% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_9.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/4884925/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Мартин Фаулер. Шаблоны корпоративных приложений</a>" />Мартин Фаулер. Шаблоны корпоративных приложений</p> <p><b>Оригинальное название</b>: Patterns of Enterprise Application Architecture by Martin Fowler.</p> <p>Автор, известный специалист в области объектно-ориентированного программирования, заметил, что с развитием технологий принципы проектирования и решения общих проблем остаются неизменными, и выделил более 40 наиболее употребительных подходов, оформив их в виде типовых решений.</p> <h2>16. Джон Бентли. Жемчужины программирования (16.1% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_11.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/1039964/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Джон Бентли. Жемчужины программирования</a>" />Джон Бентли. Жемчужины программирования</p> <p><b>Оригинальное название</b>: Programming Pearls by Jon Bentley</p> <p>Как настоящие жемчужины растут из песчинок, попавших внутрь раковины и раздражают моллюска, так жемчужины творчества программистов произрастают из задач, с которыми те сталкиваются. Книга предполагает наличие у читателя опыта программирования. Рассматриваются:</p> <ul> <li>методы разработки алгоритмов;</li> <li>методы оценки производительности;</li> <li>методы оптимизации программ и экономии памяти;</li> <li>задачи сортировки, выборки, поиска.</li> </ul> <h2>15. ДеМарко, Листер. Человеческий фактор. Успешные проекты и команды (17.6% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_12.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/141703518?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">ДеМарко, Листер. Человеческий фактор. Успешные проекты и команды</a>" />ДеМарко, Листер. Человеческий фактор. Успешные проекты и команды</p> <p><b>Оригинальное название</b>: Peopleware by Tom DeMarco & Tim Lister.</p> <p>С юмором и мудростью, обретенной за годы руководства и консультирования, Демарко и Листер демонстрируют, что сложнейшие проблемы разработки программного обеспечения имеют человеческую, а не техническую природу. Авторы дают непростые – но подкрёпленные научными исследованиями – советы. Издание предназначено в первую очередь для руководителей проектов, хотя будет полезно и рядовым программистам.</p> <h2>14. Кормен и др. Алгоритмы. Построение и анализ (17.6% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_14.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/33769775/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Алгоритмы. Построение и анализ</a>" />Алгоритмы. Построение и анализ</p> <p><b>Оригинальное название</b>: Introduction to Algorithms by Thomas H. Cormen / Charles E. Leiserson / Ronald L. Rivest / Clifford Stein.</p> <p>В книге «Алгоритмы. Построение и анализ» описаны самые разнообразные алгоритмы, сочетается широкий диапазон тем с глубиной и полнотой изложения; при этом изложение доступно для читателей самого разного уровня подготовки. Каждая глава книги относительно самодостаточна и может использоваться в качестве отдельной темы для изучения.</p> <h2>13. Чарльз Петцольд. Код: тайный язык информатики (19.1% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_7.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/125884/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Чарльз Петцольд. Код: тайный язык информатики</a>" />Чарльз Петцольд. Код: тайный язык информатики</p> <p><b>Оригинальное название</b>: Code by Charles Petzold.</p> <p>Код – книга об эволюции компьютера, истории появления и становления вычислительных систем. Каждая глава наполнена необходимыми примерами и понятными иллюстрациями. Автор последовательно переходит от одной темы к другой, подробно рассказывая о принципах работы компьютера, элементарной физике, системах счисления и многом другом, так что даже у самых любопытных не остаётся никаких вопросов.</p> <h2>12. Стив Круг. Не заставляйте меня думать. Веб-юзабилити и здравый смысл (19.1% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_10.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/139556451?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Стив Круг. Не заставляйте меня думать. Веб-юзабилити и здравый смысл</a>" />Стив Круг. Не заставляйте меня думать. Веб-юзабилити и здравый смысл</p> <p><b>Оригинальное название</b>: Don’t Make Me Think by Steve Krug.</p> <p>Книга посвящена юзабилити веб-сайтов и мобильных приложений. Автор популярно, с примерами и иллюстрациями, объясняет, как сделать сайт или мобильное приложение, которым будет удобно пользоваться всем.</p> <h2>11. Джон Сонмез. Путь программиста (22.0% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_13.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/34792421/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Джон Сонмез. Путь программиста</a>" />Джон Сонмез. Путь программиста</p> <p><b>Оригинальное название</b>: Soft Skills by John Sonmez.</p> <p>Для большинства разработчиков программного обеспечения самое интересное – кодинг, а самое сложное – иметь дело с клиентами, коллегами и менеджерами и оставаться продуктивными, достигать финансовой безопасности и поддерживать себя в форме.</p> <p>Эта книга показывает, что требуется для выстраивания успешной карьеры программиста, помогает IT-специалистам лучше понять свою профессию и коллег, всегда оставаться востребованным на рынке труда, целенаправленно и результативно развиваться, а также получать от любимой работы подлинное удовольствие.</p> <h2>10. Г. Л. Макдауэлл. Карьера програмиста (22.0% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_15.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/135945302/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Г. Л. Макдауэлл. Карьера програмиста</a>" />Г. Л. Макдауэлл. Карьера програмиста</p> <p><b>Оригинальное название</b>: Cracking the Coding Interview by Gayle Laakmann McDowell.</p> <p>Приведённые в книге вопросы с интервью являются реальными вопросами с собеседований в различных компаниях. В книге вы найдёте</p> <ul> <li>советы о том, как решить каждый из 189 вопросов;</li> <li>пять проверенных стратегий для решения вопросов по алгоритмам;</li> <li>широкий охват основных тем: производительность, структуры данных, основные алгоритмы и др.</li> </ul> <h2>9. Приемы объектно-ориентированного проектирования. Паттерны проектирования (25.0% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_16.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/2457392/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Приемы объектно-ориентированного проектирования. Паттерны проектирования</a>" />Приемы объектно-ориентированного проектирования. Паттерны проектирования</p> <p><b>Оригинальное название</b>: Design Patterns by Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides.</p> <p>Простые и изящные решения типичных задач, возникающих в объектно-ориентированном проектировании. Демонстрируется роль паттернов в создании архитектуры сложных систем.</p> <p>Издание предназначено как для профессиональных разработчиков, так и для программистов, осваивающих объектно-ориентированное проектирование.</p> <h2>8. Майкл Физерс. Эффективная работа с унаследованным кодом (26.4% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_18.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/4311012/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Майкл Физерс. Эффективная работа с унаследованным кодом</a>" />Майкл Физерс. Эффективная работа с унаследованным кодом</p> <p><b>Оригинальное название</b>: Working Effectively with Legacy Code by Michael Feathers.</p> <p>В деятельность программиста входит не только создание собственных приложений и программ, но и работа с чужим кодом. Часто такая работа приносит только страдания. Поскольку стандарты написания кода в разных компаниях отличаются, понять чужой код бывает непросто, а развивать уже существующий проект бывает ещё сложнее. Автор книги научит, как работать с унаследованными системами, как их развивать и поддерживать. Вы познакомитесь с эффективными приёмами и стратегиями работы с крупными проектами.</p> <p>В книге рассматриваются следующие темы:</p> <ul> <li>внутренний механизм изменений в коде;</li> <li>инструменты тестирования;</li> <li>виды неправильных зависимостей;</li> <li>использование преимуществ ООП;</li> <li>методы разрыва зависимостей и многое другое.</li> </ul> <h2>7. Роберт Мартин. Идеальный программист (27.9% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_19.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/135465064/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Роберт Мартин. Чистая архитектура</a>" />Роберт Мартин. Чистая архитектура</p> <p><b>Оригинальное название</b>: The Clean Coder by Robert Martin.</p> <p>В этой книге легендарный эксперт Роберт Мартин (более известный в сообществе как «Дядюшка Боб»), автор бестселлера «Чистый код», рассказывает о том, что значит «быть профессиональным программистом», описывая методы, инструменты и подходы для разработки «идеального ПО». Книга насыщена практическими советами в отношении всех аспектов программирования: от оценки проекта и написания кода до рефакторинга и тестирования.</p> <h2>6. Фредерик Брукс. Мифический человеко-месяц, или Как создаются программные системы (27.9% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_20.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/83760/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Фредерик Брукс. Мифический человеко-месяц, или Как создаются программные системы</a>" />Фредерик Брукс. Мифический человеко-месяц, или Как создаются программные системы</p> <p><b>Оригинальное название</b>: The Mythical Man-Month by Frederick P. Brooks Jr.</p> <p>Книга Ф. Брукса представляет собой сборник очерков, в которых последовательно обсуждаются узловые проблемы разработки крупных программных проектов: повышение производительности труда программистов, организация коллективной работы, планирование и выполнение графика реализации. Одной из главных тем книги стала идея, получившая впоследствии название «закон Брукса», о том что привнесение в проект новых сил на поздних стадиях разработки лишь отодвигает срок сдачи проекта.</p> <p>Англоязычный журнал PC World поместил книгу Брукса на первое место в списке «Десять IT-книг, которые стыдно признать, что не читал» (Top Ten IT Books Never To Admit You Haven’t Read).</p> <h2>5. Фримен, Робсон. Head First. Паттерны проектирования (29.4% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_21.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/144233005/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Фримен, Робсон. Head First. Паттерны проектирования</a>" />Фримен, Робсон. Head First. Паттерны проектирования</p> <p><b>Оригинальное название</b>: Head First Design Patterns by Eric Freeman / Bert Bates / Kathy Sierra / Elisabeth Robson.</p> <p>В мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи и находят похожие решения. Если вы не хотите изобретать велосипед, используйте готовые шаблоны проектирования.</p> <p>Паттерны появились, потому что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ. Найденные решения воплощены в краткой и легко применимой на практике форме.</p> <h2>4. Фаулер, Кент. Рефакторинг. Улучшение проекта существующего кода (35% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_22.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/141508653/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Фаулер, Кент. Рефакторинг. Улучшение проекта существующего кода</a>" />Фаулер, Кент. Рефакторинг. Улучшение проекта существующего кода</p> <p><b>Оригинальное название</b>: Refactoring by Martin Fowler.</p> <p>Программирование привлекает множество людей своими большими возможностями в создании и распространении собственных программ и приложений. В то же время это привело к появлению большого числа плохо спроектированных программ, развитие которых трудно поддерживать из-за неудобочитаемого кода и плохой архитектуры. Мартин Фаулер описывает процесс рефакторинга, приводит замечания и показывает, где чаще всего можно найти возможности для оптимизации проекта.</p> <h2>3. Стив Макконелл. Совершенный код (42% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_23.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/138437220/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Стив Макконелл. Совершенный код</a>" />Стив Макконелл. Совершенный код</p> <p><b>Оригинальное название</b>: Code Complete by Steve McConnell.</p> <p>Фундаментальная книга, в которой собраны наиболее эффективные методики и принципы проектирования программного обеспечения, а также уникальный практический и академический опыт самого автора.</p> <h2>2. Роберт Мартин. Чистый код (66% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_24.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/142429922/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Роберт Мартин. Чистый код</a>" />Роберт Мартин. Чистый код</p> <p><b>Оригинальное название</b>: Clean Code by Robert C. Martin.</p> <p>Даже плохой программный код может работать. Но если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение».</p> <p>Эта книга посвящена хорошему программированию. Она полна реальных примеров кода. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого.</p> <h2>1. Томас, Хант. Программист-прагматик (67% рекомендаций)</h2> <p><img src="/wp-content/uploads/2021/10/25-luchshih-knig-dlja-programmistov_25.jpg" alt="<a href="https://www.ozon.ru/context/detail/id/3353337/?partner=proglib&amp;utm_content=link" target="_blank" rel="noopener noreferrer nofollow">Томас, Хант. Программист-прагматик</a>" />Томас, Хант. Программист-прагматик</p> <p><b>Оригинальное название</b>: The Pragmatic Programmer by David Thomas & Andrew Hunt.</p> <p>Книга абстрагируется от возрастающей специализации и технических тонкостей разработки программ, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг.</p> <p>Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.</p> <p>Конечно, даже такой подход к выборке статей не позволяет включить все достойные книги. Поделитесь в комментариях, какие издания вам особенно помогли на пути становления программистом.</p> <p>Если вам понравилась подборка, у нас также есть списки книг по отдельным языкам и технологиям с отзывами читателей: Data Science, Python, C++, C# и JavaScript. Все они были подготовлены в 2020 году.</p> </div> <div class="html-after-content"></div> <div class='social_share clearfix'><p class='socshare-title'></p> <a rel="nofollow" class="psb fb" target="_blank" href="http://www.facebook.com/sharer.php?u=https://remont-komp.ru/25-luchshih-knig-dlja-programmistov/&t=25+%D0%BB%D1%83%D1%87%D1%88%D0%B8%D1%85+%D0%BA%D0%BD%D0%B8%D0%B3+%D0%B4%D0%BB%D1%8F+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%BE%D0%B2&src=sp" title="Поделиться в Facebook"></a> <a rel="nofollow" class="psb vk" target="_blank" href="http://vkontakte.ru/share.php?url=https://remont-komp.ru/25-luchshih-knig-dlja-programmistov/" title="Поделиться во ВКонтакте"></a> <a rel="nofollow" class="psb ok" target="_blank" href="https://connect.ok.ru/offer?url=https://remont-komp.ru/25-luchshih-knig-dlja-programmistov/&title=25+%D0%BB%D1%83%D1%87%D1%88%D0%B8%D1%85+%D0%BA%D0%BD%D0%B8%D0%B3+%D0%B4%D0%BB%D1%8F+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%BE%D0%B2" title="Поделиться в Одноклассниках"></a> <a rel="nofollow" class="psb gp" target="_blank" href="https://plus.google.com/share?url=https://remont-komp.ru/25-luchshih-knig-dlja-programmistov/" title="Поделиться в Google+"></a> <a rel="nofollow" class="psb tw" target="_blank" href="http://twitter.com/share?url=https://remont-komp.ru/25-luchshih-knig-dlja-programmistov/&text=25+%D0%BB%D1%83%D1%87%D1%88%D0%B8%D1%85+%D0%BA%D0%BD%D0%B8%D0%B3+%D0%B4%D0%BB%D1%8F+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82%D0%BE%D0%B2" title="Поделиться в Twitter"></a> </div> </div> <aside class="meta"></aside> <!-- Schema.org Article markup --> <div class="markup"> <meta itemscope itemprop="mainEntityOfPage" content="https://remont-komp.ru/25-luchshih-knig-dlja-programmistov/" /> <div itemprop="image" itemscope itemtype="https://schema.org/ImageObject"> <link itemprop="url" href=""> <link itemprop="contentUrl" href=""> <meta itemprop="width" content=""> <meta itemprop="height" content=""> </div> <meta itemprop="datePublished" content="2021-10-06T23:35:31+03:00"> <meta itemprop="dateModified" content="2021-10-06T23:35:31+03:00" /> <meta itemprop="author" content="RemontPC"> <div itemprop="publisher" itemscope itemtype="https://schema.org/Organization"> <meta itemprop="name" content="Ремонт-комп"> <meta itemprop="address" content="Russia"> <meta itemprop="telephone" content="+7 (000) 000-000-00"> <div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject"> <link itemprop="url" href="https://remont-komp.ru/wp-content/themes/basic/img/logo.jpg"> <link itemprop="contentUrl" href="https://remont-komp.ru/wp-content/themes/basic/img/logo.jpg"> </div> </div> </div> <!-- END markup --> </article> </main> <!-- #content --> <!-- BEGIN #sidebar --> <aside id="sidebar" class=""> <ul id="widgetlist"> <li id="search-2" class="widget widget_search"><form method="get" class="searchform" action="https://remont-komp.ru//"> <input type="text" value="" placeholder="Поиск" name="s" class="s" /> <input type="submit" class="submit search_submit" value="»" /> </form> </li> <li id="recent-posts-2" class="widget widget_recent_entries"> <p class="wtitle">Свежие записи</p> <ul> <li> <a href="https://remont-komp.ru/ustanovka-parrot-security-os/">Установка Parrot Security OS</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-oracle-linux-7-3/">Установка Oracle Linux 7. 3</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-opera-v-ubuntu/">Установка Opera в Ubuntu</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-openvz-v-ubuntu/">Установка OpenVZ в Ubuntu</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-opensuse-leap-42-1/">Установка OpenSUSE Leap 42. 1</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-openoffice-ubuntu/">Установка OpenOffice Ubuntu</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-onlyoffice-v-ubuntu/">Установка OnlyOffice в Ubuntu</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-nginx-v-centos-7/">Установка Nginx в CentOS 7</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-nginx-ubuntu/">Установка Nginx Ubuntu</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-nextcloud-na-ubuntu/">Установка NextCloud на Ubuntu</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-mc-v-centos-8/">Установка mc в CentOS 8</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-netbeans-v-ubuntu/">Установка Netbeans в Ubuntu</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-mysql-v-ubuntu/">Установка MySQL в Ubuntu</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-mysql-v-debian-10/">Установка MySQL в Debian 10</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-minecraft-na-linux/">Установка Minecraft на Linux</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-maven-v-ubuntu/">Установка Maven в Ubuntu</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-mariadb-v-ubuntu/">Установка MariaDB в Ubuntu</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-mariadb-centos-7/">Установка MariaDB CentOS 7</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-lxqt-v-ubuntu/">Установка LXQt в Ubuntu</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-lubuntu/">Установка Lubuntu</a> </li> <li> <a href="https://remont-komp.ru/ustanovka-linux-rjadom-s-windows-10/">Установка Linux рядом с Windows 10</a> </li> </ul> </li> </ul> </aside> <!-- END #sidebar --> </div> <!-- #main --> <footer id="footer" class=""> <div class="copyrights maxwidth grid"> <div class="copytext col6"> <p id="copy"> <!--noindex--><a href="https://remont-komp.ru/" rel="nofollow">Ремонт-комп</a><!--/noindex--> © 2022 <br/> <span class="copyright-text"></span> <br><a class="privacy-policy-link" href="https://remont-komp.ru/100-krutyh-proektov-sozdannyh-s-pomoshhju-python/">100 крутых проектов, созданных с помощью Python</a> </p> </div> </p> <div class="footer-counter"></div> </div> </div> </footer> </div> <!-- .wrapper --> <a id="toTop">➤</a> <!--[if lt IE 9]> <script type='text/javascript' src='https://remont-komp.ru/wp-content/themes/basic/js/html5shiv.min.js?ver=3.7.3' id='basic-html5shiv-js'></script> <![endif]--> <script type='text/javascript' src='https://remont-komp.ru/wp-content/themes/basic/js/functions.js?ver=1' id='basic-scripts-js'></script> <!-- Yandex.Metrika counter --> <script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(62214091, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/62214091" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> </body> </html>