📕 25 лучших книг для программистов
В интернете можно найти бесчисленное множество списков «лучших книг о программировании». Однако у каждого своё мнение, и, как говорится, о вкусах не спорят. Саму же процедуру поиска можно попытаться объективизровать, например, использовать критерий цитируемости. Такую попытку предпринял французский разработчик Пьер де Вульф. Ниже мы кратко расскажем о его методологии. Если вам интересен только список книг, переходите к следующему разделу.
Для начала Пьер сделал несколько вариаций Google-запроса «Best Programming Books». Пропарсив топ поисковой выдачи и исключив дубликаты списков, Пьер получив 150 подходящих страниц. Далее из них были исключены ветки Quora и Reddit, а также списки, сфокусированные конкретной технологии или платформе, одном конкретном годе или бесплатных онлайн-книгах.
В итоге получилось 110 HTML-файлов, для которых были определены CSS-селекторы с названиями книг.
Используя Python, библиотеку BeautifulSoup и найденные CSS-селекторы, Пьер извлёк текст из необходимых DOM-элементов. Получился большой список книг, требующий дополнительной обработки.
Часть списка с книгами после парсинга страницЧтобы найти самые цитируемые книги, требовалось нормализовать результаты. Например, названия книг имели разные стили оформления:
{title} by {author},{title} – {author},{title}: {subtitle},{title},- или всё подряд, включая даже номер издания.
Для обработки различных вариантов оформления была написана следующая функция:
def clean_link(link):
link = link.encode().
decode('ascii', errors='ignore')
link = link.replace("'", '')
link = link.lower()
link = ' '.join([w for w in link.split(' ') if w not in ['the', 'a']])
link = link.split('by')[0]
link = link.split(':')[0]
link = link.split('(')[0]
link = ' '.join(link.split())
link = link.replace('-', '_')
link = ''.join([c for c in link if c.isalpha() or c == '_' or c == ' '])
link = link.strip()
link = link.replace(' ', '_')
link = ''.join([c for c in link if c.isalpha() or c == '_'])
return link
После её применения потребовалось немного ручной очистки. Список стал выглядеть так:
Часть списка после применения функцииclean_link().Для этого списка было уже легко вычислить наиболее часто рекомендуемые книги. Все данные, которые использовались для обработки, можно найти в GitHub-репозитории.
Для удобства наших читателей мы постарались найти переводные эквиваленты указанных Пьером книг.
Стоит оговориться, что не всегда у хороших книг бывают достойные переводы. Поэтому также мы указываем оригинальные названия изданий.
25. Хамбл, Фарли. Непрерывное развёртывание ПО (8.8% рекомендаций)
Хамбл, Фарли. Непрерывное развёртывание ПООригинальное название: Continuous Delivery by Jez Humble & David Farley.
В книге Джеза Хамбла и Дэвида Фарли приведены принципы и практические методы для сборки, автоматизации, тестирования и развёртывания высоконагруженных приложений. Авторы рассказывают о непрерывном интегрировании, разбиении проекта на компоненты и контроле версий. Книга ориентирована на программистов, имеющих опыт в корпоративной разработке. Рассматриваются следующие темы:
- автоматизация сборки, интеграции, тестирования и развертывания программного обеспечения;
- реализация конвейера развертывания на уровне команд и организаций;
- взаимодействие разработчиков, тестировщиков и администраторов;
- стратегии инкрементной разработки программных средств большими распределенными командами;
- эффективные стратегии управления конфигурациями;
- автоматизация приемочного тестирования – от анализа требований до реализации процессов.
Книга в телеграм-канале @progbook
24. Уэйн, Седжвик. Алгоритмы на Java (8.8% рекомендаций)
Уэйн, Седжвик. Алгоритмы на JavaОригинальное название: Algorithms by Robert Sedgewick & Kevin Wayne.
Книга Седжвика и Уэйна «Алгоритмы на Java» является классическим справочным руководством, содержащим необходимый объём знаний для программиста в области алгоритмов, накопленных за последние несколько десятилетий. Как следует из названия, сами алгоритмы реализованы на Java.
23. Кори Альтхофф. Сам себе программист (8.8% рекомендаций)
Кори Альтхофф. Сам себе программистКори Альтхофф – профессиональный self-made разработчик, на собственном опыте прошедший путь от новичка до инженера программного обеспечения в компании eBay.
Автор поможет пройти сложный путь от создания первой программы на Python до первого собеседования.
Книга состоит из нескольких разделов:
- основы Python 3 и разработка первых программ;
- основы объектно-ориентированного программирования;
- Git, Bash, регулярные выражения и базы данных. Использование приобретённых прежде навыков для разработки веб-скрапера;
- основы Computer Science, алгоритмов и структур данных;
- советы о работе в команде и получении первой работы.
Книга в оригинале в @progbook
22. Steve McConnell. Rapid Development (8.8% рекомендаций)
Steve McConnell. Rapid DevelopmentЕдинственное издание, для которого мы не нашли переводного эквивалента на русском языке. В этой книге Стив Макконнелл рассказывает о проблемах, связанных с общими стратегиями, конкретными лучшими практиками и полезными советами, которые помогают сократить и контролировать графики разработки и поддерживать стремительное развитие проектов.
21. Питер Сейбел. Кодеры за работой. Размышления о ремесле программиста (10.2% рекомендаций)
Питер Сейбел. Кодеры за работой. Размышления о ремесле программистаОригинальное название: Coders at Work by Peter Seibel.
Программисты – люди не очень публичные, многие работают поодиночке или в небольших группах. Самая важная и интересная часть их работы никому не видна, потому что происходит у них в голове.
Питер Сейбел взял интервью у 15профессионалов: Кена Томпсона, создателя UNIX, Берни Козелла, участника первой реализации сети ARPANET, Дональда Кнута, Гая Стила, Джейми Завински, Саймона Пейтон-Джонса, Питера Норвига, Дугласа Крокфорда, Джошуа Блоха, Брендана Айка, Джо Армстронга, Брэда Фицпатрика, создателя Живого Журнала, и других.
Все они «подсели» на программирование ещё в школе.
Тогда, на заре зарождения отрасли, лишь в немногих учебных заведениях читались курсы по компьютерным наукам. Поэтому будущим гуру приходилось покорять профессиональные вершины самостоятельно, но всех их отличает творческое горение и полная самоотдача любимому делу. Вы узнаете, что они думают о будущем программирования и как сами научились программировать, как, по их мнению, нужно проектировать ПО, как выбор языка программирования влияет на продуктивность и можно ли облегчить выявление труднонаходимых ошибок.
Книга в телеграм-канале @progbook
20. Эрик Эванс. Предметно-ориентированное проектирование. Структуризация сложных программных систем (10.2% рекомендаций)
Эрик Эванс. Предметно-ориентированное проектирование (DDD). Структуризация сложных программных системОригинальное название: Domain-Driven Design by Eric Evans.
Классическая книга Эрика Эванса освещает наиболее общий, стратегический круг вопросов, связанных с объектно-ориентированной разработкой программного обеспечения.
Подход автора строится на динамичном рефакторинге модели. Это позволяет достигнуть высокой степени гармонии между логикой предметной области и кодом программы, а также достаточной гибкости программной архитектуры для удобной доработки и интеграции программного обеспечения. Книга насыщена практическими примерами из реальных проектов.
Книга в оригинале в телеграм-канале @progbook
19. Дональд Кнут. Искусство программирования (10.2% рекомендаций)
Дональд Кнут. Искусство программированияОригинальное название: The Art of Computer Programming by Donald E. Knuth.
Фундаментальная монография известного американского математика и специалиста в области компьютерных наук Дональда Кнута, посвящённая рассмотрению и анализу важнейших алгоритмов, используемых в информатике. В 1999 году книга была признана одной из двенадцати лучших физико-математических монографий столетия.
Книга в телеграм-канале @progbook
18. Абельсон, Сассман. Структура и интерпретация компьютерных программ (13.2% рекомендаций)
Структура и интерпретация компьютерных программОригинальное название: Structure and Interpretation of Computer Programs by Harold Abelson / Gerald Jay Sussman / Julie Sussman.
Классическая книга Харольда Абельсона и Джеральда Сассмана о программировании. В Массачусетском технологическом институте использовалась как учебник для начального курса программирования. Помимо этого, книгу используют во многих американских учебных заведениях, имеющих курсы, так или иначе связанные с языком Scheme. Используя Scheme (диалект языка LISP), авторы описали основные концепции программирования, включая абстракцию (данных и исполнения), рекурсию и метаязыковую абстракцию.
Книга в оригинале в @progbook
17.
Мартин Фаулер. Шаблоны корпоративных приложений (14.7% рекомендаций)Мартин Фаулер. Шаблоны корпоративных приложенийОригинальное название: Patterns of Enterprise Application Architecture by Martin Fowler.
Автор, известный специалист в области объектно-ориентированного программирования, заметил, что с развитием технологий принципы проектирования и решения общих проблем остаются неизменными, и выделил более 40 наиболее употребительных подходов, оформив их в виде типовых решений.
16. Джон Бентли. Жемчужины программирования (16.1% рекомендаций)
Джон Бентли. Жемчужины программированияОригинальное название: Programming Pearls by Jon Bentley
Как настоящие жемчужины растут из песчинок, попавших внутрь раковины и раздражают моллюска, так жемчужины творчества программистов произрастают из задач, с которыми те сталкиваются.
Книга предполагает наличие у читателя опыта программирования. Рассматриваются:
- методы разработки алгоритмов;
- методы оценки производительности;
- методы оптимизации программ и экономии памяти;
- задачи сортировки, выборки, поиска.
15. ДеМарко, Листер. Человеческий фактор. Успешные проекты и команды (17.6% рекомендаций)
ДеМарко, Листер. Человеческий фактор. Успешные проекты и командыОригинальное название: Peopleware by Tom DeMarco & Tim Lister.
С юмором и мудростью, обретенной за годы руководства и консультирования, Демарко и Листер демонстрируют, что сложнейшие проблемы разработки программного обеспечения имеют человеческую, а не техническую природу. Авторы дают непростые – но подкрёпленные научными исследованиями – советы. Издание предназначено в первую очередь для руководителей проектов, хотя будет полезно и рядовым программистам.
14. Кормен и др. Алгоритмы. Построение и анализ (17.6% рекомендаций)
Алгоритмы. Построение и анализОригинальное название: Introduction to Algorithms by Thomas H. Cormen / Charles E. Leiserson / Ronald L. Rivest / Clifford Stein.
В книге «Алгоритмы. Построение и анализ» описаны самые разнообразные алгоритмы, сочетается широкий диапазон тем с глубиной и полнотой изложения; при этом изложение доступно для читателей самого разного уровня подготовки. Каждая глава книги относительно самодостаточна и может использоваться в качестве отдельной темы для изучения.
Книга в телеграм-канале @progbook
13. Чарльз Петцольд. Код: тайный язык информатики (19.1% рекомендаций)
Чарльз Петцольд. Код: тайный язык информатикиОригинальное название: Code by Charles Petzold.
Код – книга об эволюции компьютера, истории появления и становления вычислительных систем.
Каждая глава наполнена необходимыми примерами и понятными иллюстрациями. Автор последовательно переходит от одной темы к другой, подробно рассказывая о принципах работы компьютера, элементарной физике, системах счисления и многом другом, так что даже у самых любопытных не остаётся никаких вопросов.
Книга в телеграм-канале @progbook
12. Стив Круг. Не заставляйте меня думать. Веб-юзабилити и здравый смысл (19.1% рекомендаций)
Стив Круг. Не заставляйте меня думать. Веб-юзабилити и здравый смыслОригинальное название: Don’t Make Me Think by Steve Krug.
Книга посвящена юзабилити веб-сайтов и мобильных приложений. Автор популярно, с примерами и иллюстрациями, объясняет, как сделать сайт или мобильное приложение, которым будет удобно пользоваться всем.
Книга в телеграм-канале @progbook
11.
Джон Сонмез. Путь программиста (22.0% рекомендаций)Джон Сонмез. Путь программистаОригинальное название: Soft Skills by John Sonmez.
Для большинства разработчиков программного обеспечения самое интересное – кодинг, а самое сложное – иметь дело с клиентами, коллегами и менеджерами и оставаться продуктивными, достигать финансовой безопасности и поддерживать себя в форме.
Эта книга показывает, что требуется для выстраивания успешной карьеры программиста, помогает IT-специалистам лучше понять свою профессию и коллег, всегда оставаться востребованным на рынке труда, целенаправленно и результативно развиваться, а также получать от любимой работы подлинное удовольствие.
Книга в телеграм-канале @progbook
10. Г. Л. Макдауэлл. Карьера програмиста (22.0% рекомендаций)
Г.
Л. Макдауэлл. Карьера програмистаОригинальное название: Cracking the Coding Interview by Gayle Laakmann McDowell.
Приведённые в книге вопросы с интервью являются реальными вопросами с собеседований в различных компаниях. В книге вы найдёте
- советы о том, как решить каждый из 189 вопросов;
- пять проверенных стратегий для решения вопросов по алгоритмам;
- широкий охват основных тем: производительность, структуры данных, основные алгоритмы и др.
Книга в телеграм-канале @progbook
9. Приемы объектно-ориентированного проектирования. Паттерны проектирования (25.0% рекомендаций)
Приемы объектно-ориентированного проектирования. Паттерны проектированияОригинальное название: Design Patterns by Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides.
Простые и изящные решения типичных задач, возникающих в объектно-ориентированном проектировании. Демонстрируется роль паттернов в создании архитектуры сложных систем.
Издание предназначено как для профессиональных разработчиков, так и для программистов, осваивающих объектно-ориентированное проектирование.
8. Майкл Физерс. Эффективная работа с унаследованным кодом (26.4% рекомендаций)
Майкл Физерс. Эффективная работа с унаследованным кодомОригинальное название
: Working Effectively with Legacy Code by Michael Feathers.В деятельность программиста входит не только создание собственных приложений и программ, но и работа с чужим кодом. Часто такая работа приносит только страдания. Поскольку стандарты написания кода в разных компаниях отличаются, понять чужой код бывает непросто, а развивать уже существующий проект бывает ещё сложнее.
Автор книги научит, как работать с унаследованными системами, как их развивать и поддерживать. Вы познакомитесь с эффективными приёмами и стратегиями работы с крупными проектами.
В книге рассматриваются следующие темы:
- внутренний механизм изменений в коде;
- инструменты тестирования;
виды неправильных зависимостей;- использование преимуществ ООП;
- методы разрыва зависимостей и многое другое.
Книга в оригинале в @progbook
7. Роберт Мартин. Идеальный программист (27.9% рекомендаций)
Роберт Мартин. Чистая архитектураОригинальное название: The Clean Coder by Robert Martin.
В этой книге легендарный эксперт Роберт Мартин (более известный в сообществе как «Дядюшка Боб»), автор бестселлера «Чистый код», рассказывает о том, что значит «быть профессиональным программистом», описывая методы, инструменты и подходы для разработки «идеального ПО».
Книга насыщена практическими советами в отношении всех аспектов программирования: от оценки проекта и написания кода до рефакторинга и тестирования.
Книга в телеграм-канале в @progbook
6. Фредерик Брукс. Мифический человеко-месяц, или Как создаются программные системы (27.9% рекомендаций)
Фредерик Брукс. Мифический человеко-месяц, или Как создаются программные системыОригинальное название: The Mythical Man-Month by Frederick P. Brooks Jr.
Книга Ф. Брукса представляет собой сборник очерков, в которых последовательно обсуждаются узловые проблемы разработки крупных программных проектов: повышение производительности труда программистов, организация коллективной работы, планирование и выполнение графика реализации. Одной из главных тем книги стала идея, получившая впоследствии название «закон Брукса», о том что привнесение в проект новых сил на поздних стадиях разработки лишь отодвигает срок сдачи проекта.
Англоязычный журнал PC World поместил книгу Брукса на первое место в списке «Десять IT-книг, которые стыдно признать, что не читал» (Top Ten IT Books Never To Admit You Haven’t Read).
Книга в телеграм-канале @progbook
5. Фримен, Робсон. Head First. Паттерны проектирования (29.4% рекомендаций)
Фримен, Робсон. Head First. Паттерны проектированияОригинальное название: Head First Design Patterns by Eric Freeman / Bert Bates / Kathy Sierra / Elisabeth Robson.
В мире постоянно кто-то сталкивается с такими же проблемами программирования, которые возникают и у вас. Многие разработчики решают совершенно идентичные задачи и находят похожие решения. Если вы не хотите изобретать велосипед, используйте готовые шаблоны проектирования.
Паттерны появились, потому что многие разработчики искали пути повышения гибкости и степени повторного использования своих программ.
Найденные решения воплощены в краткой и легко применимой на практике форме.
Книга в телеграм-канале @progbook
4. Фаулер, Кент. Рефакторинг. Улучшение проекта существующего кода (35% рекомендаций)
Фаулер, Кент. Рефакторинг. Улучшение проекта существующего кодаОригинальное название: Refactoring by Martin Fowler.
Программирование привлекает множество людей своими большими возможностями в создании и распространении собственных программ и приложений. В то же время это привело к появлению большого числа плохо спроектированных программ, развитие которых трудно поддерживать из-за неудобочитаемого кода и плохой архитектуры. Мартин Фаулер описывает процесс рефакторинга, приводит замечания и показывает, где чаще всего можно найти возможности для оптимизации проекта.
Книга в телеграм-канале @progbook
3.
Стив Макконелл. Совершенный код (42% рекомендаций)Стив Макконелл. Совершенный кодОригинальное название: Code Complete by Steve McConnell.
Фундаментальная книга, в которой собраны наиболее эффективные методики и принципы проектирования программного обеспечения, а также уникальный практический и академический опыт самого автора.
Книга в телеграм-канале @progbook
2. Роберт Мартин. Чистый код (66% рекомендаций)
Роберт Мартин. Чистый кодОригинальное название: Clean Code by Robert C. Martin.
Даже плохой программный код может работать. Но если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика, отнимая значительные ресурсы на его поддержку и «укрощение».
Эта книга посвящена хорошему программированию.
Она полна реальных примеров кода. Прочитав книгу, вы узнаете много нового о коде. Более того, вы научитесь отличать хороший код от плохого.
Книга в телеграм-канале @progbook
1. Томас, Хант. Программист-прагматик (67% рекомендаций)
Томас, Хант. Программист-прагматикОригинальное название: The Pragmatic Programmer by David Thomas & Andrew Hunt.
Книга абстрагируется от возрастающей специализации и технических тонкостей разработки программ, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг.
Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.
Книга в телеграм-канале @progbook
***
Конечно, даже такой подход к выборке статей не позволяет включить все достойные книги.
Поделитесь в комментариях, какие издания вам особенно помогли на пути становления программистом.
Если вам понравилась подборка, у нас также есть списки книг по отдельным языкам и технологиям с отзывами читателей: Data Science, Python, C++, C# и JavaScript. Все они были подготовлены в 2020 году.
Больше полезной информации вы найдете на наших телеграм-каналах «Библиотека программиста» и «Книги для программистов».
Интересно, перейти к каналу «Библиотека программиста»
Топ-13 книг по программированию в 2022
Bubble
Пользователь Hacker News попросил форумчан порекомендовать книги по программированию. Айтишники советовали как конкретные книги, так и целые списки — а мы нашли это все на Amazon, выбрали лучшее и бонусом составили еще и топ рекомендаций от Bubble.
- Elements of Programming в соавторстве Александра Степанова и Пола Макджонса рассказывает о программировании с точки зрения математики и показывает, как алгоритмы, например, на С++ могут работать в математике.
- У книги Structure and Interpretation of Computer Programs три автора: профессор компьютерных наук и инженерии Массачусетского технологического института Гарольд Абельсон, профессор электротехники Джеральд Джей Сассман и Джулия Сассман. Вы узнаете про параллельное программирование, функциональное программирование, недетерминированное программирование и ленивое вычисление. В книге есть разделы с примерами процедур высшего порядка в графике и приложениями потоковой обработки в численном программировании. А еще есть и упражнения.
- How to Design Programs, second edition: An Introduction to Programming and Computing — еще одна книга из списка, которая подойдет тем, кто недавно начал изучать программирование. Ее авторы профессора компьютерных наук Маттиас Феллейзен, Роберт Брюс Финдлер, Мэтью Флэтт, Шрирам Кришнамурти описывают процесс разработки программ, советуют новичкам, как правильно анализировать постановку задачи и придумать схему решения.

- Computer Systems: A Programmer’s Perspective от Рендала Брианта — преподавателя Калифорнийского технологического института. В книге описывается архитектура процессора и способы оптимизации программ, объясняется, что такое виртуальная память и как с ней работать. В конце есть упражнения — можно тренироваться самому.
- C Programming Language подойдет С-разработчикам. В ней Брайан Керниган рассказывает о наборе операторов ANSI C и показывает, как его использовать, а еще объясняет, как управлять данными и структурировать их. Это второе издание книги, в нем появилось больше актуальных примеров и задач.
- Think Python: How to Think Like a Computer Scientist от Аллена Дауни советуем тем, кто хочет начать программировать на Python. Книга ориентирована на новичков, в ней Дауни объясняет основы синтаксиса и семантики, дает определения значениям, переменным и операторам и рассказывает, как работать с файлами и базами данных.

- Operating System Concepts Авраама Зильбершатца, Грега Ганье и Пеера Галвина 10th Edition рассказывает в подробностях о том, как устроены операционные системы. Эта книга для студентов — поэтому в конце каждой главы есть вопросы и упражнения.
- Readings in Database Systems Джозефа Хеллерштейна и Майкла Стоунбрейкера для тех, кто хочет разобраться в базах данных. В книге есть статьи по разным темам, например, по истории моделей данных, языкам запросов, архитектуре баз данных и поисковых систем.
Книги по рекомендации Bubble
- A Programmer’s Guide to Computer Science: A virtual degree for the self-taught developer для тех, кто только начал изучать программирование, особенно для самоучек. В ней разработчик ПО Уильям Спрингер рассказывает об основах компьютерных наук, алгоритмах и структурах данных.
- Code: The Hidden Language of Computer Hardware and Software Чарльза Петцольда рассказывает об устройстве процессора и детально объясняет, как устроен компьютер.

- Software Engineering at Google: Lessons Learned from Programming Over Time написали инженеры-программисты Google Титус Титус Уинтерс и Хайрам Райт. В книге они рассказывают, как создавать и поддерживать ПО, говорят об инженерной культуре, процессах и инструментах Google и том, как это влияет на эффективность. Вы узнаете, как сделать код устойчивым и как масштаб влияет на жизнеспособность программных практик.
- Из книги Fundamentals of Software Architecture: An Engineering Approach Марка Ричардса и Нила Форда можно узнать о технической основе архитектурных решений, метриках и способах оценки ПО. Бонус: есть главы про soft skills: узнаете, как эффективно управлять командой, вести себя на переговорах и проводить презентации.
- Clean Code: A Handbook of Agile Software Craftsmanship консультанта по ПО Роберта Мартина — о том, как отличить хороший код от плохого и превратить плохой в хороший, как создавать хорошие имена, хорошие функции, хорошие объекты и хорошие классы.
Вы узнаете, как обрабатывать ошибки, проводить модульное тестирование и сделать код читабельным.
«Главная ошибка собеса — подгонять ответы». Рекрутеры рассказали о найме в IT
Откуда берутся IT-рекрутеры, с какими трудностями они сталкиваются в попытках закрыть позиции и какие ошибки сами совершают на интервью — полезно знать перед тем, как искать работу.
Размещение рекламы на Bubble
Размещение рекламы на Bubble
Телеграм-канал про Образование, карьеру и жизнь в IT
Телеграм-канал про Образование, карьеру и жизнь в IT
Расти в IT
«От IT уже тошнит»: истории бывших программистов, которые сменили работу
Bubble
Расти в IT
10 самых актуальных книг по Python для начинающих и более прокачанных
Bubble
Расти в IT
7 лекций на TED от разработчиков: ИИ, ZeroNet и программист-вундеркинд
Bubble
Расти в IT
10 книг по Java, которые должен прочесть каждый разработчик
Bubble
Расти в IT
О форме и смысле: 16 главных книг для каждого, кто интересуется веб-дизайном
Bubble
Расти в IT
Новый год — новые скиллы.
7 лучших подкастов для прокачки навыков в 2023 годуBubble
Расти в IT
Расти в IT
Как вырасти до сеньора и тим-лида — гид по карьерному росту в айти
Мир содрогнулся, когда узнал, что читают разработчики по ночам…
Ничего криминального — только полезная еженедельная рассылка от Bubble. Тренды в айти, лайфхаки и советы экспертов.
Подписывайся!
Ты — котик! Проверяй почту
Нам нужен настоящий адрес эл. почты
Спецпредложения
Курсы со скидками для пользователей Bubble
Выбрать курс
Освоить за выходные
Экспресс-курсы программирования
Выбрать курс
Баг пофиксил
Курсы для QA-инженеров
Выбрать курс
Звездочка к резюме
Курсы по карьерному росту
Выбрать курс
10 основных книг по программированию, которые должен прочитать каждый разработчик
Чтение книг — один из лучших способов приобрести или улучшить навыки.
Это не отличается, если вы писатель, учитель математики или разработчик. Итак, вот список из 10 книг по программированию, которые разработчики X-Team рекомендуют всем, кто хочет стать лучшим разработчиком.
Ни одна из этих книг не научит вас программировать на определенном языке. Некоторым из этих книг уже несколько десятков лет, и если бы это было так, они были бы безнадежно устаревшими. Вместо этого они улучшают ваше понимание и ваш подход к программированию, что в долгосрочной перспективе сэкономит вам гораздо больше времени, чем обновление ваших технических навыков.
The Pragmatic Programmer (A. Hunt & D. Thomas)
Классика жанра, часто используемая в качестве учебника на университетских курсах, The Pragmatic Programmer от Энди Ханта и Дэвида Томаса — это книга, хороший совет по программированию, который вы можете использовать в любом проекте разработки.
По сути, это серия статей, каждая из которых содержит передовой опыт, часто объясняемый метафорой.
Если вы новичок в программировании, эта книга поможет убедиться, что вы находитесь на правильном пути с самого начала проекта. Если вы опытный программист, эта книга укрепит некоторые убеждения, выработанные вами за годы программирования.
The Clean Coder (R. Martin)
Роберт Сесил Мартин, также известный как дядя Боб, был соавтором Манифеста Agile Software Development , текста, который запустил популярную среду разработки программного обеспечения Agile, которая теперь лежит в основе таких фреймворков, как Scrum и Kanban.
Чистый кодер не объясняет, как писать хороший код. Вместо этого он объясняет, как вы можете стать лучшим программистом или даже просто хорошим работающим профессионалом. В нем рассказывается, как лучше всего вести себя в сжатые сроки, как создать среду для процветания, как сказать «нет» определенным просьбам и многое другое.
Код завершен (С. Макконнелл)
Еще один классический фолиант. Книга Code Complete , первоначально опубликованная в 1993 году и постоянно обновляемая с учетом требований современного мира, обязательна к прочтению продуктивным прагматичным разработчикам.
Книга содержит советы высокого уровня по коду, от важности преодоления сложности до наблюдения за падающими камнями (т. е. предупреждающими знаками). В нем также есть большой раздел о том, как писать высококачественный код, который требует последовательных уровней абстракции, разделенных четкими границами. В общем, важный справочник с фантастическими советами.
Программисты за работой (П. Сейбел)
Питер Сейбел берет интервью у шестнадцати известных программистов в Кодеры за работой . Среди них Дуглас Крокфорд (основатель JSON), Питер Норвиг (директор по исследованиям в Google), Фрэнсис Аллен (первая женщина, получившая премию Тьюринга) и Кен Томпсон (изобретатель UNIX).
Книга посвящена тому, как эти программисты выполняют свою работу и как они видят себя. Это хорошо показывает, что эти знаменитые программисты часто ничем не отличаются от других программистов и борются с теми же проблемами, что и мы, простые смертные.
Чистый код (Р.
Мартин)Вторая классика Роберта Мартина в этом списке. Разделенный на три части, Чистый код фокусируется на том, как писать чистый код с помощью тематических исследований возрастающей сложности. Он завершается списком эвристик, которым нужно следовать, если вы хотите писать чистый код.
Например, в нем подчеркивается важность правильного именования вещей и структурирования кода, чтобы он отражал то, что он на самом деле делает. В целом, Clean Code поможет вам отличить хороший код от плохого и может существенно изменить то, как вы сами пишете код.
Мифический человеко-месяц (Ф. Брукс)
Получите это: Мифический человеко-месяц был впервые опубликован в 1975 году и до сих пор пользуется большой рекомендацией разработчиков. Это сборник эссе, центральной темой которого является то, что добавление рабочей силы к уже опаздывающему программному проекту сделает его позже, основываясь на наблюдениях его автора, Фреда Брукса, в то время руководителя проекта в IBM.
На 322 страницах, Мифический человеко-месяц читается короче, чем некоторые другие книги в этом списке. Это отличная книга для менеджеров проектов или менеджеров любого типа, чтобы лучше понять сложности программных проектов, которые отличают их от других типов проектов.
Искусство программирования для Unix (Э. Рэймонд)
При участии знаменитостей Unix Брайана Кернигана, Дэвида Корна и Генри Спенсера, Искусство программирования для Unix предлагает глубокое понимание секретов разработки программного обеспечения первоначальных программистов Unix.
В этой книге нет настоящего кода. Вместо этого он фокусируется на культуре, истории и философии Unix и ее сообщества, хотя он также преподает ценные уроки о важности открытого исходного кода и процесса разработки программного обеспечения.
Префакторинг (К. Пью)
Кен Пью Префакторинг охватывает основы программирования для написания высококачественного кода. Она считается обязательной к прочтению для новых разработчиков и для опытных разработчиков.
Префакторинг — это новый подход к рефакторингу. Он хочет, чтобы его читатели применяли хорошие методы проектирования с самого начала проекта, а не после написания кода. Таким образом, это сборник полезных передовых практик.
Психология компьютерного программирования (Г. Вайнберг)
Первоначально опубликованный в 1971 году, Психология компьютерного программирования обычно игнорируется и забывается. Но это скрытая жемчужина, которая по-прежнему удивительно актуальна сегодня. Это одна из первых книг, впервые предложившая подход к программированию, ориентированный на людей, а не математический, научный или технологический.
Психология компьютерного программирования не о компьютерном программировании (несмотря на название). Речь идет о программистах. В нем подчеркивается, что речь идет не только о том, как человек взаимодействует с программным обеспечением, но и о том, как проектная группа, создающая программное обеспечение, взаимодействует друг с другом.
Так хорошо, что они не могут вас игнорировать (К. Ньюпорт)
Эта невероятно популярная книга Кэла Ньюпорта не является книгой по программированию, но, тем не менее, ее с готовностью рекомендуют. Суть « настолько хороша, что они не могут вас игнорировать » заключается в том, что вы не должны следовать своей страсти. Вместо этого вы должны делать что-то ценное и стать действительно хорошим в этом деле. Страсть последует.
Это спорная точка зрения, но именно поэтому книга стала такой популярной. Даже если вы с этим не согласны, прочтение стоит того, чтобы понять, что делает Ньюпорт и как это может быть применимо к вашей карьере в разработке программного обеспечения.
9 лучших книг по программированию для программистов в 2021 году
Если вы прочитаете хотя бы одну из лучших книг по программированию в этом году, вы будете на шаг впереди почти всех вокруг вас. Это потому, что, по словам Стива МакКоннелла, автора Code Compete, одна книга — это больше, чем большинство программистов читают каждый год.
Еще в 2008 году писатель, блогер, инженер-программист и создатель Trello сделал смелое заявление:
Кажется, программисты перестали читать книги. Рынок книг по программированию ничтожен по сравнению с количеством работающих программистов. Вместо этого они с удовольствием программируют, используя метод проб и ошибок. Когда они не могут что-то понять, они вводят вопрос в Google.
Это похоже на тебя?
Несмотря на то, что поисковые системы и форумы сообщества, такие как Stack Overflow, незаменимы, вы никак не сможете получить такие же глубокие знания и точку зрения, как при чтении книг.
Лучшие книги по программированию — это те, которые не просто рассказывают вам, как это сделать, но объясняют, почему это делается . Они учат не только конкретным языкам или программированию, но и тому, как думать. Они выдержали испытание временем и помогут вам стать лучшим программистом, независимо от того, только начинаете ли вы или работаете в отрасли уже 30 лет.
Каждая из этих девяти книг особенно полезна, если вы хотите присоединиться к одному из учебных курсов по кодированию Coding Dojo. электростанция кодирования.
1. Coders at Work: размышления о ремесле программирования
>> купить на Amazon
Если вам интересно узнать о жизни программиста, то книга Coders at Work — это книга для вас. Он наполнен интересными интервью с 15 опытными программистами и компьютерщиками, включая Джошуа Блоха, Питера Норвига, Дональда Кнута, Кена Томсона и Джейми Завински. Автор, Питер Сейбел (программист, ставший писателем), попросил интервьюируемых рассказать об известных проектах, над которыми они работали, и о вдохновляющих историях, стоящих за ними. Coders at Work дает представление о том, что движет некоторыми из величайших программистов и как они думают.
2. Code Complete: Практическое руководство по созданию программного обеспечения
>> покупка на Amazon
Code Complete Стива МакКоннелла считается энциклопедией по практическому кодированию, которую должен прочитать каждый профессиональный программист.
Легко понять почему — это огромная литература на 900 страницах, но каждая глава наполнена предложениями и методами для улучшения повседневного программирования и создания кода, который удобочитаем и прост в управлении. МакКоннелл умеет представлять свой материал в формате рассказа, что делает книгу легкой для чтения и даже занимательной. Независимо от того, на каком уровне вы находитесь, Code Compete, несомненно, изменит ваше мышление и способ написания кода.
СОВЕТ: Если у вас нет времени, чтобы прочитать книгу целиком, перейдите к последним трем главам, так как они служат справочным пособием. Оттуда вы можете прочитать любые главы, о которых вам нужна информация. Пропустите издание Kindle и выберите печатную копию, так как на главы легче ссылаться.
3. Мифический человеко-месяц
>> покупка на Amazon
Идея этой книги построена на том факте, что компьютеры меняются, а люди — нет. Месяц мифического человека — это классика программирования, в которой обсуждаются человеческие элементы разработки программного обеспечения.
Несмотря на то, что книга была написана 30 лет назад (впервые опубликована в 1975) это выдержало испытание временем. Почему? Потому что создание вещей, включая программное обеспечение, было связано с людьми не меньше, чем с материалами или технологиями.
Если вы стремитесь стать руководителем проекта, эта книга поможет вам понять, что может пойти не так при разработке программного обеспечения, и даст вам практические советы по работе с командами, организации и управлению ими.
4. Не заставляйте меня думать, новый взгляд: подход к веб-юзабилити, основанный на здравом смысле
>> покупка на Amazon
Если вы собираетесь прочитать книгу о юзабилити, сделайте это! «Не заставляйте меня думать» — отличный ресурс для любого веб-разработчика, который хочет создавать веб-сайты, мобильные сайты или мобильные приложения, которые намного проще в использовании. Книга содержит полезную информацию, представленную в ясной и лаконичной форме, которая может быть понята как технической, так и нетехнической аудиторией.
5. Прагматичный программист: от подмастерья до мастера
>> покупка на Amazon
Еще одно старое, но хорошее, выдержавшее испытание временем. The Pragmatic Programmer — это сборник уроков и рекомендаций для разработчиков программного обеспечения. Книга содержит набор пронумерованных советов, около 70 из них, которые собраны на одной отрывной карточке, расположенной в конце книги. Одни только советы могут показаться очевидными, но они содержат некоторые удивительные аспекты, которые помогут укрепить вашу карьеру программиста и отточить ваше мастерство!
6. Чистый код: руководство по гибкому программному обеспечению
>> покупка на Amazon
Плохо написанный код может поставить проект на колени, поэтому разработка хорошего кода так важна! В «Чистом коде» «дядя Боб» Мартин делится советами и примерами того, как создавать лучший код. Книга погружается в принципы и лучшие практики написания чистого кода, а также представляет все более сложные тематические исследования, которые заставляют читателей задуматься о том, что в коде правильно, а что нет.
В то время как примеры в Clean Code приведены на Java, но применимы почти ко всем языкам программирования.
СОВЕТ: Прочитайте «Чистый код» после прохождения Code Complete, так как он затрагивает некоторые из тех же тем, но на более высоком уровне.
7. Programming Pearls
>> купить на Amazon
Это классическая книга для новичков, обучающая основам решения задач. Если вы будете работать над проблемами самостоятельно (не заглядывая вперед), вы многому научитесь и станете гораздо более сильным программистом с более глубоким пониманием алгоритмов и разработки алгоритмов.
8. Cracking the Coding Interview: 150 вопросов и решений по программированию
>> купить на Amazon
Это одна из самых популярных книг для интервью по программированию, если вы хотите получить работу в ведущей компании, такой как Amazon, Apple, Facebook, Google или Microsoft. Как следует из названия, книга содержит 150 вопросов по программированию, с которыми вы можете столкнуться на собеседованиях, а затем рассказывается, как их решать.
decode('ascii', errors='ignore')
link = link.replace("'", '')
link = link.lower()
link = ' '.join([w for w in link.split(' ') if w not in ['the', 'a']])
link = link.split('by')[0]
link = link.split(':')[0]
link = link.split('(')[0]
link = ' '.join(link.split())
link = link.replace('-', '_')
link = ''.join([c for c in link if c.isalpha() or c == '_' or c == ' '])
link = link.strip()
link = link.replace(' ', '_')
link = ''.join([c for c in link if c.isalpha() or c == '_'])
return link



Вы узнаете, как обрабатывать ошибки, проводить модульное тестирование и сделать код читабельным.