Найти тему
GeekBrains

27 книг для программиста

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

Гайдар Магдануров, Вице-президент компании Acronis:
Гайдар Магдануров, Вице-президент компании Acronis:

Профессиональным разработчикам программного обеспечения важно не столько знание какого-то конкретного языка программирования, фреймворков и средств разработки, сколько понимание основных принципов, алгоритмов, процесса разработки и тестирования полученного результата. Тут будет уместна такая аналогия: умение программировать как умение писать. Одного только умения писать недостаточно, чтобы написать художественное произведение.

Для того, чтобы «научиться писать», рекомендую одну из книг Роберта Седжвика про алгоритмы — у него есть несколько книг для С++ и для Java. К умению писать код, важно добавить навык «писать качественный код». Про написание качественного кода существует множество книг и блогов, я рекомендую книгу «Защищенный код». Она позволяет хорошо прочувствовать, что у программного кода, помимо достижения конкретной цели, есть еще и задачи быть надежным, безопасным, тестируемым, легко поддерживаемым.

Чтобы быть успешным программистом, востребованным на рынке труда, важно понимать, для чего и как создается программный код. Конечная цель — продукт, и достигается она работой большого количества людей: разработчиков, тестировщиков, архитекторов и менеджеров продукта. Люди, умеющие создавать продукты, а не только «ставить скобки и точки с запятыми», всегда в цене. Классические книги Брукса «Мифический человеко-месяц», Купера «Психбольница в руках пациентов» и Рейнвотера «Как пасти котов» весьма полезны к прочтению.

Весьма увлекательным и полезным чтением для разработчиком будут еще и книги Кристенсена «Дилемма инноватора» и «Showstopper!» Закери — с реальными примерами того, как известные компании создают и решают сложности во время разработки программных продуктов.

Базовые знания:

  • Алгоритмы на C++, Роберт Седжвик — Современное и исчерпывающее описание важных алгоритмов и структур данных на C++;
  • Алгоритмы на Java, Роберт Седжвик, Кевин Уэйн — Необходимый объем знаний для программиста в области алгоритмов на Java;
  • Защищенный код, Майкл Ховард, Дэвид Лебланк — Практические советы и рекомендации по защите создаваемых приложений на всех этапах процесса создания ПО.

Специализация по менеджменту:

  • Мифический человеко-месяц, или Как создаются программные системы, Хилл Чапел, Фредерик Брукс — Настольная книга разработчика;
  • Психбольница в руках пациентов, Алан Купер — Менеджмент для программистов, часть 1;
  • Как пасти котов. Наставление для программистов, руководящих другими программистами, Хэнк Дж. Рейнвотер — Менеджмент для программистов, часть 2.

Специализация по Product management:

  • Дилемма инноватора. Как из-за новых технологий погибают сильные компании, Клейтон Кристенсен — Как замечать новые ниши и создавать успешные продукты;
  • Showstopper! the Breakneck Race to Create Windows NT and the Next Generation at Microsoft Paperback, by G. Pascal Zachary — Как создавать продукты.
Антон Енакиев, вице-президент Acronis по разработке: 
Антон Енакиев, вице-президент Acronis по разработке: 

Базовые знания:

  • Внутреннее устройство Microsoft Windows, Марк Руссинович, Дэвид Соломон — Руководство по внутреннему устройству и алгоритмам работы основных компонентов Windows;
  • Programming Applications for Microsoft Windows, Jeffrey Richter — Руководство по написанию приложений для Windows;
  • Программирование серверных приложений для Microsoft Windows 2000, Джеффри Рихтер, Джейсон Кларк — Руководство по созданию высокопроизводительных и надежных серверные приложения для Windows 2000;
  • Язык программирования С++, Бьерн Страуструп — Основы программирования на C++ от создателя C++;
  • Искусство программирования, Дональд Эрвин Кнут — «Библия программиста» в четырех томах.

Специализация по Windows (Specific for Windows kernel developers):

  • Windows NT File System Internals, Rajeev Nagar — Руководство по файловым системам на Windows NT;
  • Справочник по базовым функциям API Windows NT/2000, Гэри Неббет — О том, как писать приложения для Windows NT/2000;
  • Windows NT Device Driver Development, Peter G. Viscarola, W. Anthony Mason — Руководство по разработке драйверов на Windows NT;
  • Использование Microsoft Windows Driver Model, Уолтер Они — Все необходимое для понимания процесса написания драйверов;
  • Undocumented Windows NT, Prasad Dabak, Sandeep Phadke — О недосказанном в Windows NT.
Кирилл Коротаев, вице-президент Acronis по инжинирингу, Acronis Backup и Системам Хранения Данных:
Кирилл Коротаев, вице-президент Acronis по инжинирингу, Acronis Backup и Системам Хранения Данных:

Книги обязательные для прочтения системными программистами:

  • Что каждый программист должен знать о памяти, Ульрих Дреппер — Что нужно знать о hardware чтобы заниматься software;
  • Алгоритмы: построение и анализ, Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн — Все что нужно знать об алгоритмах;
  • Теория синтаксического анализа, перевода и компиляции (в 2-х томах), Ахо А., Ульман Дж. — Если вы хотите знать как работают компиляторы и что же на самом деле скрывается за регулярными выражениями.

Для общего развития:

  • Сила мгновенных решений, Малкольм Гладуэлл — Все что нужно знать о том, как работает мозг и что такое интуиция;
  • Outliers: The Story of Success, Malcolm Gladwell — Для понимания причин успехов и неудачи;
  • Серьезный разговор об ответственности. Что делать с обманутыми ожиданиями, нарушенными обещаниями и некорректным поведением, Кэрри Паттерсон, Джозеф Гренни — Эта книга поможет вам развить навыки, необходимые для выхода из сложных ситуаций;
  • Marketing High Technology, William H. Davidow — Книга о маркетинге высокотехнологичных продуктов;
  • Эмоциональный интеллект 2.0, Тревис Бредберри, Джин Гривз — Книга о развитии эмоционального интеллекта;
  • «Квантовая психология», Артур Уилсон — Об аналогиях и параллелях между психологией и физикой. А так же как научиться говорить так, чтобы устанавливать общий контекст и избегать недопонимания.

Все ссылки вы найдете на странице статьи в блоге.

Если понравилась статья, ставьте лайк и подписывайтесь на канал.

Почитайте похожие материалы:

Лендинг: идеальный первый экран

Видео - Какой язык программирования выбрать в 2018?

Как фрилансеру рассказать о себе

Книги не по программированию, которые будут вам полезны

Как организовать рабочее место в однокомнатной квартире

Если вы хотите почитать статьи и материалы в нашем блоге, переходите на наш сайт.