Подборка хороших книг для программистов

В этом посте мы собрали подборку самых популярных книг для разработчиков. Они затрагивают множество различных тем и являются лучшими для старта изучения той или иной технологии.

Cracking the Coding Interview: 189 Programming Questions and Solutions

ShowCover

Автором данного пособия является Г. Макдоуэлл, основатель CareerCup и бывший сотрудник таких компаний, как Apple, Google и Microsoft. Книга предназначена для качественной подготовки к предстоящему собеседованию на позицию разработчика программного обеспечения.

Она сделана в формате «задача-решение»: почти 200 вопросов и ответов, большинство из которых автор взял из собственного опыта, покрывают всевозможные темы, в том числе алгоритмы, шаблоны проектирования и многое другое. В целом прочтение «Cracking the Coding Interview» точно не будет лишним, и это подтверждает его статус бестселлера.

Язык программирования Go

9780201749625

Go — сравнительно молодой язык программирования, выпущенный компанией Google всего 6 лет назад, но уже прочно занявший место в сердцах программистов. Его основными преимуществами являются простой и понятный синтаксис, статическая типизация, параллелизм, высочайшая производительность (в 10-15 раз быстрее скриптовых языков), а также обаятельный талисман-бобренок.

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

24 Deadly Sins of Software Security

front cover - fruit dove - BW

В книге «24 смертных греха компьютерной безопасности» Майкл Ховард и Дэвид Лебланк, эксперты безопасности Microsoft, рассказывают о наиболее распространенных и серьезных ошибках при создании разнообразного ПО, а также соответствующих «дырах».

Рассмотрено большинство языков и платформ программирования, каждая глава посвящена отдельному типу уязвимости — «смертному греху».

Artificial Intelligence for Games

ShowCover

Создание качественного и развитого искусственного интеллекта — одна из самых сложных задач, с которыми сталкиваются разработчики игр. Часто от качества ИИ зависит весь коммерческий успех проекта.

В этом пособии Ян Миллингтон, известный в игровой индустрии программист и автор серии книг, делится своим опытом создания и улучшения ИИ в самых разнообразных играх. Книга содержит множество реальных примеров, а также исходные коды популярных коммерческих реализаций алгоритмов ИИ. Большое внимание уделено разработке геймплея с упором на искусственный интеллект, реализации поведения персонажей и особенностям разработки игр-головоломок.

Mathematics for 3D Game Programming and Computer Graphics

9780201749625

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

Третье издание раскрывает такие темы, как проекции, тени, физика, отрисовка ткани и числовые методы, а весь код полностью соответствует последним спецификациям языка шейдеров.

Game Programming Patterns

Самая большая проблема, стоящая перед многими разработчиками игр — завершение разработки их продукта. Часто проекты «выдыхаются», оказываясь перегруженными сложностью и запутанностью их собственного кода. Эта книга призвана решить эту проблему раз и навсегда.

«Game Programming Patterns» — это коллекция шаблонов, делающих код (не только игр) чище, проще для понимания и быстрее. Из нее вы узнаете, как создать надежный цикл игры, как организовывать объекты и их компоненты, как использовать кэш процессора для улучшения производительности и многое другое. Вы погрузитесь в изучение не только того, как работают скриптовые движки и как их оптимизировать, но и того, как классические шаблоны проектирования могут быть использованы в разработке игр.

CSS Master

9780201749625

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

Кроме базовых вещей, в данной книге рассмотрены способы создания grid, анимации, интеграции с SVG, эффектов (transitions, transforms, filter effect и др.) и многое другое.

Jump Start MySQL

ShowCover

MySQL — супер-популярная свободная реляционная система управления базами данных, которую использует большинство интернет-сайтов.

С помощью этой книги всего за 7 дней вы сможете освоить MySQL, научиться использовать её скорость и гибкость. Вы научитесь сохранять, модифицировать и обрабатывать данные, подключать к БД свои программы, работать с таблицами, делать бекапы и многое другое.

Head First Android Development

9780201749625

Если у вас есть идея для «взрывного» Android-приложения, но вы не знаете, как её реализовать, то эта книга — то, что вам нужно. Вы узнаете, как правильно задать структуру своего приложения, создать к нему интерфейс и базу данных, а также как сделать, чтобы оно работало на самых разных смартфонах и планшетах, и многое другое.

По словам авторов, эта книга — как опытный Android-разработчик рядом с тобой. Единственное, что вам нужно для начала — небольшое знание Java.

97 Things Every Programmer Should Know

ShowCover

«97 вещей, которые должен знать каждый программист» — сборник коротких практических советов от ведущих специалистов в области IT, который поможет избежать многих проблем, стоящих на пути программиста.

Working Effectively with Legacy Codes

В этой книге Майкл Физерс предлагает стратегии по эффективной работе с legacy-кодом. Автор долгое время занимался наставничеством и решил поместить в книгу весь свой опыт. Прочитав её, вы узнаете, как читать, исправлять и улучшать такой код. Помимо примеров на Java, C++, C и C# в книге есть 24 способа избавления от зависимостей.

Приёмы объектно-ориентированного проектирования

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

Clean Code: A Handbook of Agile Software Craftsmanship

Роберт Мартин в своём творении, опираясь на личный опыт и, что даже важнее, конкретные примеры из своей практики, рассказывает о том, как нужно кодить. Принципиальное отличие от книги Макконелла заключается в том, что здесь очень мало статистических обоснований правильности тех или иных действий, только код (занимающий почти треть книги) и рекомендации автора.

Java Concurrency in Practice

Эта книга посвящена практическому применению техники многопоточного программированию на языке Java. Книгу легко читать, и она снабжена множество примеров.

Если вам интересна тема многопоточности, вам подойдёт наша серия статей «Многопоточное программирование в Java 8»:

  1. Параллельное выполнение кода с помощью потоков;

  2. Синхронизация доступа к изменяемым объектам;

  3. Атомарные переменные и конкурентные таблицы.

Domain-Driven Design

Эта книга отлично подойдёт тем, кто сталкивался или ещё только столкнётся с проблемно-ориентированным программированием.

JavaScript: The Good Parts

Эта книга, написанная Дугласом Крокфордом, создателем JSON и JSLint, является классикой мира JavaScript, и прочитать её должен каждый. В ней рассказывается об основах объектно-ориентированного подхода и приводится множество примеров, как хороших, так и плохих. Разумеется, автор рассказывает, как исправлять такие «вредные» примеры и как не допускать подобных ошибок.

Кстати, эта книга входит в нашу подборку бесплатных книг по JavaScript — советуем взглянуть.

Совершенный код

Если вы планируете построить успешную карьеру программиста, то это та книга, которую прочитать вы просто обязаны. Абсолютно неважно, в какой среде вы планируете работать, какой ваш уровень подготовки, новичок вы или уже руководитель — здесь найдётся полезная информация для каждого, кто хоть как-то связан с процессом создания кода. Совершенного кода.

Язык программирования Си

«Язык программирования Си» (также известна как K&R) — книга Брайана Кернигана и Денниса Ритчи, причём последний — один из непосредственных авторов и разработчиков языка Си. Книга стала основой для разработки и популяризации Си, до сих пор имеет спрос и широко используется в качестве «классического» учебника по языку. Она долгое время была единственным справочным руководством и де-факто — стандартом языка.

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

Эффективное использование С++

1002058-cover

Данная книга проливает свет на многие особенности C++. В том числе здесь объясняется, как правильно работать с составляющими языка и добиваться высокой производительности. Руководство состоит из 55 частей-советов.

Если вам интересен C++, то вам стоит увидеть этот список книг — их там немало.

По материалам TechKeGuruJi