Топ-17 книг по программированию для прокачки навыков кодинга в 2021 году
Топ-17 книг по программированию для прокачки навыков кодинга в 2021 году
Программирование — одна из самых востребованных сфер, открывающая множество возможностей для обучения и заработка. Но чтобы процветать в этой области, нужно непрерывно учиться и развивать навыки. А что может быть лучше книг для обучения?
Лучшие книги по программированию — те, что не просто рассказывают о синтаксисе и семантике языков, но и помогают мыслить, организовываться и становиться лучшим кодером. Они учат эффективно решать проблемы — ведь это самый важный урок для программиста.
В интернете множество статей, претендующих на звание списка обязательных книг, но все рекомендуют одни и те же старые издания. Найти хорошие и свежие ресурсы стало действительно сложно.
Чтобы облегчить вам задачу, мы составили список лучших книг по программированию, написанных специально для прочной базы во всех важных для лучшего кодера аспектах. Если прочтёте хотя бы одну — вы опередите почти всех вокруг.
17. Не заставляйте меня думать, пересмотренное издание
Автор: Стив Круг
Год: 2013
Подходит для: Новички
Автор делает тему веб-узабилисти поистине увлекательной. Вместе с лёгким стилем он добавляет нотку остроумия, удерживающую внимание от обложки до обложки.
Книга заставляет глубоко думать об узабилисти и доступности. Все главы логичны и лаконичны. Множество примеров объясняют точку зрения автора и показывают, как разные заинтересованные стороны веб-проектов могут способствовать узабилити сайта.
По моему мнению, все должны прочитать эту книгу — дизайнерам для изучения золотых правил перед работой, кодерам для понимания технических требований внедрения узабилити, менеджерам проектов для стимуляции мышления и нового взгляда на мир.
16. Peopleware: Продуктивные проекты и команды
Авторы: Том ДеМарко и Тимоти Листер
Год: 2013 (третье издание)
Подходит для: Новички
Написанная двумя консультантами по ПО, Peopleware — известная книга об управлении программными организациями. Она подчёркивает: большинство проблем разработки ПО — человеческие, а не технические.
Книга исследует конфликты между индивидуальным взглядом на работу, корпоративной идеологией и теорией рабочего пространства. Большинство тем представлены как принципы, подкреплённые авторитетными источниками или конкретными историями.
Любой работающий человек (неважно, менеджер он или подчинённый) должен прочитать её — она кратко и прямо рассказывает о построении успешных и эффективных команд.
15. Эффективная работа с наследственным кодом
Автор: Майкл Физерс
Год: 2004
Подходит для: Средний уровень
Книга Физерса старше 16 лет. Тем не менее, содержание не устарело. Включает каталог 24 методов разрыва зависимостей, позволяющих безопасно вносить изменения в программу.
Книга учит работать с большими, непокрытыми тестами наследственными программами, точно находить места, требующие изменений, и справляться с приложениями, не имеющими видимой структуры.
Вы найдёте множество приёмов, применимых на любом языке или платформе: C, C++, C#, Java. Некоторые техники кажутся устаревшими, но никогда не знаешь, когда они пригодятся.
14. Создай свою нейросеть
Автор: Тарик Рашид
Год: 2016
Подходит для: Новички и средний уровень
Что обычно ждёшь от книги по ИИ? Определения на каждой странице? Теоремы и доказательства? Много математики? Много сухих абзацев? Эта книга иная. Вы получите ровно то, что нужно для понимания темы и внедрения в практику — ни больше, ни меньше.
Она учит создавать свою нейросеть (на Python) и обучать её распознавать рукописные цифры. Книга разделена на три части:
- Часть 1: вводит математические концепции, лежащие в основе нейросетей.
- Часть 2: основы Python и как построить нейросеть, обучающуюся распознавать рукописные цифры.
- Часть 3: техники улучшения производительности нейросети и тестирование на своём почерке.
Для людей, полностью незнающих, как работают нейросети, эта книга — идеальный eye-opener и фундамент для будущего обучения.
13. Код: Скрытый язык компьютерного железа и софта
Автор: Чарльз Петцольд
Год: 2000
Подходит для: Новички и средний уровень
Книга открывает мир вычислений через краткий линейный сторителлинг. Начиная со старых технологий — азбука Морзе, Брайль, булева логика — автор постепенно достигает современной эры с HTTP и WWW.
Затем объясняет недавние разработки: ASCII, операционные системы, математика с плавающей запятой. Чтобы сделать главы интересными, он использует метафоры и аналогии экономно.
Каковы бы ни были ваши технические навыки, эта книга очарует вас и, возможно, пробудит внутри технофила.
12. Язык программирования C++
Автор: Бьярне Страуструп
Год: 2000
Подходит для: Средний — Эксперт
Написанная отцом C++, это самая авторитетная и широко читаемая книга по C++. Даёт полное, авторитетное покрытие языка, ключевых проектных приёмов и стандартной библиотеки.
Эта 1300-страничная книга делится на три части. Первая (главы 2–5) — краш-курс по C++. Вторая (главы 6–29) — структурированное руководство. Третья (главы 30–44) исследует стандартную библиотеку, такую же важную и интегральную часть C++, как сам язык.
Если хотите быстро выучить язык — это не для вас. Но если цель — стать мастером (это требует много времени и усилий), это ваша книга. Длинное и очень техническое чтение, охватывающее каждый аспект языка от основ до эзотерики в великой детали.
11. Введение в алгоритмы
Авторы: Томас Кормен, Клиффорд Штайн, Рональд Ривест, Чарльз Лейзерсон
Год: 2001
Подходит для: Новички и средний уровень
Книга охватывает широкий спектр алгоритмов в деталях: от классических алгоритмов теории графов до специальных алгоритмов теории чисел, вычислительной геометрии и строкового сопоставления.
Всё объяснено очень простым языком без ущерба глубине покрытия или математической строгости. Но не ждите чистую кулинарную книгу алгоритмов для копирования.
Если вы новичок, читайте каждую главу внимательно. Упражнения в конце каждой главы помогут лучше понять прочитанное. Просто вложите достаточно человеко-часов в этот учебник, и вы научитесь конкретным подходам к определению того, насколько сильно вы заставляете компьютер работать.
10. Effective Java
Автор: Джошуа Блох
Год: 2017
Подходит для: Новички — Эксперты
С первого издания (2001) Effective Java кардинально изменился. Автор обновил название для использования новых версий Java и фич библиотеки.
Как и в прошлых изданиях, каждая глава содержит множество секций (каждая в виде простого автономного эссе, дающего понимание тонкостей платформы Java) и обновлённые сниппеты кода.
Книга покрывает почти все важные фичи Java, а также хорошие и плохие практики нескольких библиотек, которые мы используем сегодня. Поскольку всё запомнить трудно (даже опытным программистам), советую держать её как справочник при кодировании.
9. Fluent Python
Автор: Лучано Рамальо
Год: 2015
Подходит для: Эксперты
Всегда приятно читать авторов, действительно понимающих язык и имеющих хорошую дидактику. Лучано Рамальо — один из них. Он пишет о Python с страстью, но не скрывает его подводные камни и недостатки.
Пока некоторые главы выглядят очень просто, другие затрагивают кворки и тонкости, касающиеся самого ядра языка. Охватывает модель данных Python, структуры данных, функции как объекты, поток управления, метапрограммирование.
В целом, эта 700-страничная книга познакомит вас с ядром Python и библиотеками и научит делать код быстрее, короче и читаемее.
8. Code Complete (Совершенный код)
Автор: Стив Макконнелл
Год: 2014 (второе издание)
Подходит для: Новички — Эксперты
Эта классическая книга полностью обновлена и переработана с сотнями новых примеров кода и передовой практикой, иллюстрирующей науку и искусство разработки ПО.
Книга разделена на семь частей: первые шесть — заложение фундамента, написание качественных программ, переменные, операторы, улучшения кода. Седьмая — ремесло разработки (характер, стиль, оформление, документация).
По моему мнению, каждый программист с 2–3 годами опыта должен прочитать эту книгу. Хотя она не применима ко всем процессам разработки и в некоторых местах устарела, она точно передаёт идеи, которые все программисты должны понять и принять.
7. Глубокое обучение
Авторы: Ян Гудфеллоу, Йошуа Бенжио, Аарон Курвилл
Год: 2016
Подходит для: Эксперты
Книга даёт огромное количество деталей по нейросетям и их глубоким версиям. Авторы категоризировали сложные темы так, что идеи передаются плавно.
Книга делится на три части:
- 150 страниц фона: релевантные концепции численного исчисления, теории вероятностей, теории информации, машинного обучения.
- 300 страниц применения: ядро — глубокие feedforward сети, моделирование последовательностей, свёрточные сети, алгоритмы оптимизации. Обзор применений в NLP, биоинформатике, видеоиграх.
- 200 страниц исследовательских тем: теоретические темы — представления обучения, методы Монте-Карло, глубокие генеративные модели.
Книга для тех, кто уже знаком с глубоким обучением и хочет изучить его теоретический фон. Также отлично для PhD-студентов и исследователей, работающих с ИИ.
Читайте: 50 оттенков законов программирования
6. Искусственный интеллект: современный подход
Авторы: Стюарт Рассел, Питер Норвиг
Год: 2015
Подходит для: Новички и средний уровень
Эта книга — не только отличное введение в ИИ, но и служит обзорным курсом технического письма. Не предполагает тонну бэкграунда, кроме некоторого опыта с математической нотацией и базового понимания алгоритмической эффективности или вычислительной сложности.
Книга содержит всё, что вы можете захотеть знать об ИИ. Каждая концепция отлично объяснена и загружена примерами для понимания настоящего смысла.
Также охватывает практические последствия в той же сфере: распознавание речи, машинный перевод, робототехника и многое другое. Читайте, перечитывайте и относитесь к ней с заботой — вы будете жрать плоды долго.
Читайте: 8 лучших языков программирования для ИИ
5. Чистый код: Библия гибкого ремесла разработки ПО
Автор: Роберт Сيسл Мартин
Год: 2007
Подходит для: Новички и средний уровень
Автор Clean Code известен разработкой множества принципов проектирования ПО. В этой книге он представил лучшие гибкие практики очистки кода «на лету».
Включает много сниппетов кода — нужно определить, что не так с кодом и что правильно. Книга учит, как выглядит плохой код и как он должен был быть написан изначально.
Три раздела. Первый — паттерны, принципы и практики чистого кода. Второй — множество кейсов. Третий — список эвристик, собранных при создании кейсов.
Хотя большинство примеров ориентированы на Java, любой, заинтересованный в написании лучшего кода, может прочитать — будь вы разработчиком, тимлидом, системным аналитиком или менеджером проекта.
4. Взлом кодинг-собеседования
Автор: Гейл Лаакман МакДауэлл
Год: 2011
Подходит для: Новички и средний уровень
Cracking the Coding Interview — самый развёрнутый и детальный гид по прохождению программистских или собеседований по разработке ПО.
Начинает с объяснения «почему» технического собеседования, как практиковать нетехнические вопросы, как анализировать и разбивать проблемы, как писать эффективный код, как реагировать на принятие и отказ.
Затем — более 180 программных вопросов и ответов, формирующих основу книги. Каждый раздел начинается с обсуждения базовых знаний и подходов к схожим проблемам, погружаясь в точные техники решения. В книге есть ссылка для скачивания, компиляции и анализа решений самостоятельно.
3. Grokking Algorithms (Понимание алгоритмов)
Автор: Адитья Бхаргава
Год: 2015
Подходит для: Средний — Эксперт
Это обезоруживающий подход к ключевой теме информатики. Книга учит применять алгоритмы к реальным проблемам, с которыми вы сталкиваетесь ежедневно как кодер.
Начинает с простых задач: поиск и сортировка. По мере накопления навыков мышления вы возьмётесь за более сложные темы: хеширование, графы, жадные алгоритмы, MapReduce, P vs NP, сжатие данных и многое другое. Всё объяснено через иллюстрации и визуальные примеры.
Будь то разработка мобильных приложений, видеоигр или бизнес-инструментов — вы выучите алгоритмические методы решения проблем, ранее вышедших за пределы вашего понимания. Например, поймёте, как сжатие данных работает через Хаффманово кодирование, напишете спеллчекер через графовые алгоритмы и многое другое.
Читайте: 14 лучших программ для написания кода [2020]
2. Паттерны проектирования: Приёмы объектно-ориентированного проектирования
Авторы: Эрих Гамма, Ральф Джонсон, Ричард Хелм, Джон Влиссидес
Год: 1994
Подходит для: Новички и средний уровень
Захватывающий опыт проектирования ООП, «Банда четырёх» представляет каталог простых и лаконичных решений частых проектных проблем.
Книга начинает с описания, что такое паттерны и как они полезны в ООП-инструментах. Учит, как эти паттерны вписываются в фазы разработки ПО и как разработчики могут использовать их для эффективного решения собственных проектных задач.
Книга разбита на две секции: первые две главы объясняют плюсы и минусы ООП, остальные исследуют 23 классических паттерна проектирования. Включает множество примеров на Smalltalk и C++.
Считается важным источником теории и практики ООП-дизайна. Продано более полумиллиона копий на 14 языках.
1. Прагматичный программист: Ваш путь к мастерству
Авторы: Эндрю Хант и Дэвид Томас
Год: 2019
Подходит для: Новички и средний уровень
Это второе издание влиятельной книги Прагматичный программист, вышедшей в 1999. Два десятилетия позже новая редакция пересматривает, что значит быть современным кодером.
Включает несколько советов для улучшения процесса разработки прагматичным способом. Охватывает широкий спектр полезных тем: от карьерного развития и личной ответственности до архитектурных методов для гибкого и легко поддерживаемого кода.
Читайте: 14 лучших программ для написания кода
Эта книга научит вас:
- Захватывать реальные требования
- Писать динамичный и адаптируемый код
- Бронировать код с assertions и исключениями
- Тестировать код строго
- Использовать автоматизацию для более эффективной разработки
Если вы фрустрировались методологиями большинства книг по программированию, попробуйте эту. В ней есть всё, чтобы стать прагматичным программистом.
Промышленные технологии
- Основы программирования в SPICE: практическое руководство
- Основы программирования микропроцессоров
- Эволюция и производственный процесс современных книг
- 15 лучших IDE для C++ на Windows, macOS и Linux — бесплатные и платные (2021)
- Топ-15 онлайн-курсов по C++ для освоения языка (обновление 2024)
- Топ-10 IDE для C# на Windows, macOS и Linux — обзор 2021
- Топ-100 вопросов на собеседовании по C с ответами (2024)
- Топ-13 B2B SaaS-компаний 2021 года: Доказанные лидеры и инноваторы
- Квантовые вычисления 2021: 12 ведущих применений
- 9 языков программирования, которые обязательно нужно выучить в 2021 году