8-900-374-94-44
[email protected]
Slide Image
Меню

Книги программирование на си: Книги по языку Си для начинающих и не только

Содержание

9 великолепных бесплатных книг для изучения C

Книги - вещь для профессионалов, и книги для программистов - не исключение. В данной статье мы отобрали 9 книг для изучения языка C.

C - процедурный высокоуровневый язык, который, пожалуй, больше всего повлиял на то, каким мы сегодня видим программирование. Он был создан для того, чтобы обеспечить программисту низкоуровневый доступ к памяти компьютера, чтобы писать эффективный код, который требует минимальной поддержки во время работы. Множество языков программирования обязано C своим существованием. Некоторые называют C латынью в мире программирования.

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

Предлагаем вашему вниманию 9 книг для изучения языка C, которые могут вас зацепить, если, конечно, английский для вас - не проблема. Надеемся, этот сборник книг станет для вас удачным началом изучения C.

Книга, написанная Майком Банаханом (Mike Banahan), Декланом Брэйди (Declan Brady) и Марком Дораном (Mark Doran).

"The C Book" открывает наш сборник книг. Она написана для программистов, которые уже имеют опыт в использовании других современных процедурных языков программирования. Книга фокусируется на особенных для C вещах. А именно, на том, ради чего C был изначально придуман.

Некоторые из глав:

  • Вступление в C
  • Переменные и арифметика - посвящает читателя в фундаментальные основы языка, знакомит его с ключевыми словами, идентификаторами, объявлениями переменных, вещественным, целочисленным типами данных, выражениями, арифметикой в языке, а также с константами
  • Порядок выполнения программы и логические выражения - посвящает читателя в жизненный цикл программы, логические выражения, которых не было в предыдущей главе
  • Функции - возвращаемые значения, входные аргументы, рекурсии
  • Массивы и указатели - массивы, указатели, символьный тип данных, sizeof() и выделение памяти, указатели функций, выражения со знаком &, объявление функций
  • Структурированные типы данных - структуры, union, bitfield, enum, классификаторы, производные типы данных и инициализация
  • Препроцессор - как он работает и как разбор директив
  • Специальные разделы C - декларации, определения, typedef, const и volatile
  • Библиотеки - диагностика, управление символами, локализация, ограничения, математические функции, нелокальные goto, управление сигналами, ввод-вывод, форматированный ввод-вывод, неформатированный ввод-вывод, управление строками, дата, время и т.д
  • Готовые программы на C - складываем всё вместе, программы для отображения аргументов, программы сопоставления с образцом и другие, более амбициозные примеры.

Авторы дают право читателям свободно распространять книгу в случае, если авторы книги об этом знают. Один из авторов Майк Банахан подтвердил, что книга находится под лицензией Creative Commons.

Написано Стивом Уалайн (Steve Oualline).

C Elements of Style - одна из самых полезных книг, она покрывает принципы хорошего стиля в написании кода, учит C и C++ программистов тому, как писать читабельный код, который будет с лёгкостью понят другими программистами и будет легко поддерживаемым. Не имеет значения, студенты вы или профессионал, вы, определённо, сможете вынести что-то для себя из этой книги, а именно - огромное число советов по построению элегантного, надёжного кода.

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

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

Книга содержит в себе целые руководства по таким вещам, как написание комментариев в шапке кода, именование переменных, форматирование выражений и так далее.

Как и предыдущий экземпляр, книга опубликована по лицензии Creative Commons.

Написано Даниелем Холденом (Daniel Holden).

Изучите язык C и одновременно научитесь создавать свой собственный язык программирования Lisp в менее, чем 1000 строках кода.

Эта книга подойдёт тем, кто хочет освоить язык C и тем, кто хоть раз задавался вопросом "как создать язык программирования". Стоит отметить, что книга не для новичков, так как вам стоит иметь некоторый опыт в программировании, чтобы читать и понимать содержание.

Build Your Own Lisp находится под лицензией Creative Commons Attribution-NonCommercial-ShareAlike 3.0.

Мягкий переплёт можно заказать на Amazon.

Книга написана Трэвисом Ротвеллом (Trevis Rothwell) и Джэймсом Янгманом (James Yongman)

The GNU C Reference Manual - это справочное руководство по языку C и направлено на стандарт ANSI C 1989, ISO C 1999 и GNU расширение стандартного C. Нужно отметить, что книга написана не для новичков, а скорее для тех, у кого есть опыт.

Книга включает следующие главы:

  • Лексические элементы - книга объясняет читателю лексические элементы, которые входят в исходный код на языке C после препроцессинга. Эти элементы называются токенами (token). Есть 5 типов токенов: ключевые слова, идентификаторы, константы, операторы и разделители.
  • Типы данных - рассматривает примитивные типы данных в языке C, enum, union, структуры, массивы, указатели, классификаторы и так далее
  • Выражения и операторы - такие вещи, как инкрементирование, декрементирование, арифметические операторы, комплексное сопряжение, операторы сравнения, логические операторы и так далее
  • Стейтменты - if statement, switch, while, do, for, null, goto, break, continue, return, typedef.
  • Функции - объявление функций, вызов функций, параметры функции и т.д
  • Структура программы - рассмотрение полной картины жизненного цикла программы
  • Программа на C - готовая программа, написанная на C, состоящая из исходного кода на C, а также заголовочного файла. По факту, эта программа - расширенная версия всем известного "hello world" и служит для того, что показать читателю, как правильно форматировать и структурировать код на языке C для использования в программах для FSF Project GNU

Книга находится под бесплатной лицензией GNU Free Documentation, версии 1.3.

Книга написана Марком Бюргсом (Mark Burgess) и Роном Хэйл-Эвансом (Ron Hale-Evans).

The GNU C Programming Tutorial представляет читателю базовые идеи в логическом порядке. Книга затрагивает все важные элементы языка C с упором на компилятор GNU/Linux и связанное с ним программное обеспечение.

Главы книги охватывают такие вещи, как функции, переменные, параметры, указатели, логические операторы, циклы, массивы, строки, ввод и вывод данных и многое другое.

Книга находится под бесплатной лицензией GNU Free Documentation License, версии 1.1.

Одна из лучших книг, написана Ником Парланте (Nick Parlante).

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

Содержание:

  • Вступление
  • Базовые типы данных и операторы
  • Структуры данных
  • Комплексные типы данных
  • Функции
  • Массивы и указатели
  • Standard Library Reference

По словам автора, книга находится под лицензией open-source.

Книга написана Брайаном "Бидж" Холл (Brian "Breej" Hall).

Автор пытается привести читателя из состояния полной растерянности до состояния абсолютного понимания материала, и делает он это с использованием языка C.

Содержание:

  • Написание кода и блоки кода
  • Переменные, выражения
  • Функции
  • Продолжение главы про переменные
  • Указатели
  • Структуры данных
  • Массивы
  • Строки
  • Динамическая память
  • Больше всего интересного - затрагиваются такие вещи, как 2-х и 3-х мерные массивы, пустые указатели, глобальные переменные и так далее
  • Библиотека iostream
  • Манипуляции со строками
  • Математика

Данная книга находится под лицензией Creative Commons Attribution-Noncommercial- No Derivative Works 3.0 License.

Книга написана Дженсом Густедтом (Jens Gustedt).

Книга призвана смотивировать читателя идти вверх и узнавать что-то новое. Она разделена на 5 отдельных частей:

  • Первая - базовые программы, написанные на языке C, их структура, как их использовать и так далее
  • Вторая - в этой части рассматриваются самые фундаментальные концепции и особенности языка C. Из них: типы данных, функции и операторы. Книга нацелена на то, чтобы дать читателю более глубокое понимание вещей, которые происходят в работающей программе
  • Третья - сердце языка C. Здесь идёт объяснение таких вещей, как указатели и модель памяти в языке C
  • Четвертая - более детальное описание таких вещей, как оптимизация, автоматизирование, потоки и так далее
  • Пятая - в последней части автор рассуждает о дальнейшем развитии языка C

Книга находится под лицензией Creative Commons Attribution-Noncommercial- No Derivative Works 3.0 License.

Книга написана Брайаном Гафом (Brian Gough).

Книга сама по себе, является этаким первым шагом в GNU C и C++ компиляторы - gcc и g++, которые являются частью GNU Compiler Collection (GCC).

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

Содержание:
  • Вступление
  • Компилирование программы на языке C - в главе объясняется то, как скомпилировать программу на языке C, используя gcc. Программы могут быть скомпилированы с одного или нескольких исходных файлов, а так же системных файлов и header-файлов
  • Варианты компиляции - автор рассказывает читателю о малоизвестных фишках компиляторов в GCC. Это могут быть разные пути к библиотекам и include-файлам, использование дополнительных диагностик на ошибки, макросы препроцессора и диалекты языка C
  • Использование препроцессора - в данной главе идёт объяснение того, как используется препроцессор GNU C CPP, который является частью пакета GCC.
  • Компилирование и отладка
  • Компилирование с оптимизацией - GCC - это оптимизирующий компилятор. Он предоставляет широкий ряд опций, которые направлены на увеличение скорости, уменьшение размера файлов и так далее
  • Компилирование программы на C++ - здесь идёт объяснение того, как компилируются программы на C++ с помощью компилятора GCC
  • Различные опции под разные платформы - в данной главе автор рассказывает о различных опциях, доступных для разных платформ: Intel и AMD x86, расширение x86, x86 64-битные процессоры, DEC Alpha, SPARC, POWER/PowerPC, мультиархитектурная поддержка и так далее
  • Отладка - GCC предоставляет нам разные инструменты для диагностики проблем в процессе компиляции
  • Инструменты для компилятора - автор рассказывает о различных инструментах, которые могут быть полезны вместе с GCC. В них входят: GNU архиватор для создания библиотек, программы для покрытия кода тестами gprof и gcov и другие
  • Как работает компилятор - в данной главе рассказывается в деталях о том, как GCC преобразовывает исходный код в исполняемый файл. Компиляция - это процесс, в котором нужен сам компилятор GNU (через gcc или g++ интерфейсы), GNU сборщик as и GNU линкер ld.
  • Проверка скомпилированных файлов - некоторые полезные инструменты для проверки скомпилированных файлов
  • Распространённые ошибки - самые распространённые ошибки, возникающие во время использования gcc и g++. Каждая из ошибок представлена с описанием, возможной причиной и решением
  • Дополнительные материалы - если читатель чего-то не понял в процессе чтения, то автор приводит ряд полезных источников для более подробного изучения GCC

Книга находится под бесплатной лицензией GNU Free Documentation License.

Предлагаем вам ознакомиться ещё с рядом книг, которые можно скачать, но которые, к сожалению, находятся не под open-source лицензией, либо же информация о лицензии которых не ясна.

И под конец, моя рекомендация: приобретите каноничную книгу по языку C: The C Programming Language. Хоть она и не для начинающих, но очень часто упоминается как классическая книга для изучения C.

Подборка книг по C++ для любого уровня

Идеальная подборка книг для разработчиков

ТОП-10 книг по C++: от новичка до профессионала

Герберт Шилдт. С++ для начинающих. Шаг за шагом

С++ для начинающих. Шаг за шагом

Самоучитель, который шаг за шагом расскажет об основных понятиях языка C++: переменные, инструкции управления, функции, типы и массивы данных, классы и объекты. Рассказано о перегрузках, управлении исключениями, наследовании, виртуальных функциях, полиморфизме, вводе/выводе.

Достоинства:

  • Необходимый объём для начинающих.
  • Доступный язык повествования.
  • Есть вопросы для самопроверки.
  • Хорошее качество печати.

Недостатки:

  • Блеклый шрифт листингов программ.
  • На обратной стороне книги говорится о многопоточном программировании и работе в сети, но читатели такой информации в самоучители не нашли.
  • Мягкая обложка.
Стивен Прата. Язык программирования C++. Лекции и упражнения

Книга в оригинале в сообществе Книги для программистов

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

Достоинства:

  • Подробное изложение.
  • Множество примеров кода.
  • Задания после каждой главы.
  • Вопросы для самоконтроля.
  • Хорошее качество переплета.

Недостатки:

  • Не затронуты стандарты C14, C17.
  • Встречаются опечатки.

Роберт Лафоре. Объектно-ориентированное программирование в С++

Роберт Лафоре. Объектно-ориентированное программирование в С++

Книга в сообществе Книги для программистов

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

Достоинства:

  • Хорошая база для освоения языка.
  • Легко читается.
  • В каждой главе разбираются примеры.
  • Есть контрольные вопросы и упражнения.
  • Твердый переплет, белые страницы.

Недостатки:

  • Встречаются опечатки и ошибки.
  • Рассматривается старый стандарт языка.

Страуструп. Программирование. Принципы и практика с использованием C++

Страуструп. Программирование. Принципы и практика с использованием C++

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

Если вы решили стать программистом, и уже знакомы с азами C++ – эта книга для вас, в первую очередь потому, что программирование – это не только, и не столько знание инструмента (языка программирования), сколько понимание самого процесса.

Достоинства:

  • Книга учит программированию, язык – инструмент.
  • Качественный перевод и оформление книги.

Недостатки:

  • Большой объем, было бы удобнее, если бы выходила в двух томах.

Роберт Седжвик: Алгоритмы на C++. Анализ структуры данных. Сортировка. Поиск. Алгоритмы на графах

Роберт Седжвик: Алгоритмы на C++. Анализ структуры данных. Сортировка. Поиск. Алгоритмы на графах

Эта книга не про сам язык, а про алгоритмы с примерами реализации на С++. В частях I—IV рассматриваются фундаментальные алгоритмы, структуры данных, сортировка и поиск. В них приведено подробное описание фундаментальных структур данных и алгоритмов для сортировки, поиска и сопутствующих приложений. В части V рассматриваются алгоритмы на графах, которые играют все более важную роль во множестве приложений, таких как сетевая связность, конструирование электронных схем, составление графиков, обработка транзакций и выделение ресурсов.

Преимущества:

  • Раскрыты все темы, указанные в оглавлении книги.
  • Много примеров и упражнений.
  • Качественный перевод.
  • Хорошее оформление издания, белая бумага, четкий шрифт.

Недостатки:

  • В сравнении с книгами Кормана или Кнута раскрыты не все типы алгоритмов.

Мейерс Скотт. Эффективный и современный С++: 42 рекомендации по использованию C++11 и C++14

Мейерс Скотт. Эффективный и современный С++: 42 рекомендации по использованию C++11 и C++14

Книга в сообществе Книги для программистов

Эта книга посвящена возможностям языка, появившимся в C++11 и C++14. Рассказано, как эффективно использовать новые особенности, почему ту или иную задачу следует решать именно так., чтобы создаваемые программы были корректны, эффективны и переносимы.

Преимущества:

  • Написано доступно, но без воды.
  • Хорошее качество переплета.

Недостатки:

  • Редко, но встречаются неточности перевода и опечатки.

Яцек Галовиц. С++17 STL. Стандартная библиотека шаблонов

Яцек Галовиц. С++17 STL. Стандартная библиотека шаблонов

Книга в оригинале в сообществе Книги для программистов

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

Достоинства:

  • Стандарт C++17.
  • Создается хорошее понимание современного подхода к использованию C++.
  • Много примеров с пояснениями без лишней воды.

Недостатки:

  • Мягкий переплет, низкое качество печати и обрезки страниц.

Энтони Уильямс. Параллельное программирование на С++ в действии. Практика разработки многопоточных программ

Энтони Уильямс. Параллельное программирование на С++ в действии. Практика разработки многопоточных программ

Книга в оригинале в сообществе Книги для программистов

В наши дни стали нормой компьютеры с многоядерными процессорами. Современные стандарты языка C++ предоставляют поддержку многопоточности. Вдумчиво читая книгу Уильямса, вы научитесь писать надежные и элегантные многопоточные программы на С++.

Преимущества:

  • Большое количество примеров.
  • Не требуются предварительные знания по теме.
  • Рассмотрены все тонкости многопоточного программирования и типов синхронизации, подробно описаны lock-free-паттерны проектирования.

Недостатки:

  • Старый, хотя и достаточно актуальный стандарт (С11).
  • Ужасное качество переплета для такого объема книги.

Роберт C. Мартин. Гибкая разработка программ на Java и C++. Принципы, паттерны и методики

Роберт Мартин. Гибкая разработка программ на Java и C++. Принципы, паттерны и методики

Как и указано на обложке, примеры есть и на C++, и на Java, для лучшего понимания желательно знать оба языка. Рассматриваются ООП, UML, паттерны, приемы гибкого и экстремального программирования, а также приводится детальное описание полного процесса проектирования для многократно используемых программ на C++ и Java.

Преимущества:

  • Легко читается.
  • На простых примерах дается введение в архитектурное проектирование.
  • Рассматриваются ошибки традиционных примеров «хорошего» проектирования кода.
  • Подробно обсуждаются принципы SOLID.
  • Чувствуется опыт автора.

Недостатки:

  • Затянутое введение.

Бьерн Страуструп. Дизайн и эволюция С++

Бьерн Страуструп. Дизайн и эволюция С++

Книга в оригинале в сообществе Книги для программистов

В книге, написанной создателем языка С++ Бьерном Страуструпом, представлено описание процесса проектирования и разработки языка программирования С++.

Изложены цели, принципы и практические ограничения, наложившие отпечаток на структуру и облик С++, рассказано о дизайне недавно добавленных в язык средств: шаблонов, исключений, идентификации типа во время исполнения и пространств имен. Автор анализирует решения, принятые во время работы над языком, и демонстрирует, как правильно применять «реальный объектно-ориентированный язык программирования».

Преимущества:

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

Недостатки:

  • Мягкая обложка.

***

Если вы не увидели любимую книгу в десятке, пожалуйста, не стесняйтесь порекомендовать ее в комментариях. Если вы читали перечисленные книги, дополните наши описания – какие преимущества и недостатки отметили бы вы.

Библиотека программиста любит язык C++. Вот три последних публикации:

Подбор книг по C# / Блог компании Издательский дом «Питер» / Хабр

Мы решили собрать в одну подборку самые, по нашему мнению, интересные книги нашего издательства, посвященные языку программирования C#. В посте собраны хорошие книги от пособий для начинающих (например, примелькавшаяся книга серии Head First) до изданий Джеффри Рихтера и Чарли Петцольда для практикующих программистов, в общем – на любой вкус по самым лучшим ценам в интернете.

CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#. 4-е изд.

Автор: Дж. Рихтер

Эта книга, выходящая в четвертом издании и уже ставшая классическим учебником по программированию, подробно описывает внутреннее устройство и функционирование общеязыковой исполняющей среды (CLR) Microsoft .NET Framework версии 4.5. Написанная признанным экспертом в области программирования Джеффри Рихтером, много лет являющимся консультантом команды разработчиков .NET Framework компании Microsoft, книга научит вас создавать по-настоящему надежные приложения любого вида, в том числе с использованием Microsoft Silverlight, ASP.NET, Windows Presentation Foundation и т.д. Четвертое издание полностью обновлено в соответствии со спецификацией платформы .NET Framework 4.5, а также среды Visual Studio 2012 и C# 5.0

Оглавление
Отрывок

Программирование для Microsoft Windows 8. 6-е изд.

Автор: Ч. Петцольд

Шестое издание этой легендарной книги пришлось ждать почти 15 лет! В своем новом труде Чарльз Петцольд, известный автор и один из пионеров Windows-программирования, рассказывает о разработке приложений для Windows Store с использованием C# и XAML в среде Windows Runtime. Первая часть книги «Основы» посвящена приемам, которые особенно важны для большинства рядовых программистов: сборке готовых элементов управления в приложении и их связыванию с кодом и данными. Здесь полностью объясняется весь программный код и разметка, генерируемая Visual Studio для разных шаблонов проектов. Во второй части книги «Специальные возможности» описываются низкоуровневые и нестандартные задачи — сенсорный ввод, растровая графика, расширенное форматирование текста, печать, работа с датчиками ориентации и GPS. Книга адресуется разработчикам, уверенно владеющим языком C#, которые хотят изучить API для разработки приложений для Windows 8.

Оглавление
Отрывок

Язык программирования C#. Классика Computers Science. 4-е изд.

Авторы: А. Хейлсберг, М. Торгерсен, С. Вилтамут, П. Голд

Это четвертое издание главной книги по языку C#, написанной легендой программирования — Андерсом Хейлсбергом, архитектором C#, Delphi и Turbo Pascal, совместно с другими специалистами, входившими в группу разработчиков C# компании Microsoft. Издание является наиболее полным описанием языка и самым авторитетным источником информации по этой теме, построенным в формате сборника спецификаций, включающих в себя описание синтаксиса, сопутствующие материалы и примеры, а также образцы кода. Эта книга — своего рода «библия» разработчика, которая с легкостью может заменить как MSDN, так и остальные книги по C#. Четвертое издание содержит описание новых особенностей C# 4.0, включая динамическое связывание, именованные и необязательные параметры, а также ковариантные и контравариантные обобщенные типы. Цель этих новшеств — расширение возможностей C# для взаимодействия с объектами, не относящимися к платформе .NET. Отличительная особенность нового издания также состоит в том, что каждая глава книги содержит обширные комментарии, написанные известными «гуру» программирования, такими как Джон Скит, Джозеф Альбахари, Билл Вагнер, Кристиан Нейгел, Эрик Липперт и др.

Оглавление
Отрывок

Приложения для Windows 8 на C# и XAML

Автор: Дж. Ликнесс

Это первое практическое руководство по созданию приложений для Windows 8 охватывает весь жизненный цикл: от разработки шаблона проекта до публикации в Windows Store. Автор книги Джереми Ликнесс, ведущий специалист компании Microsoft, поможет использовать ваши навыки разработчика в работе с новыми инструментами Visual Studio 2012 для создания полезных и инновационных приложений. В книге рассмотрены и бизнес-приложения, и пользовательские приложения. При помощи тщательно отработанных загружаемых примеров кода и демонстрационных проектов автор показывает, как максимально использовать новые функции платформы, включая встраивание в социальные сети, поиск, расширения, контракты и мозаичное размещение.

Оглавление
Отрывок

Изучаем C#. 3-е изд.

Авторы: Э. Стиллмен, Дж. Грин

В отличие от большинства книг по программированию, построенных на основе скучного изложения спецификаций и примеров, с этой книгой читатель сможет сразу приступить к написанию собственного кода на языке программирования C# с самого начала. Вы освоите минимальный набор инструментов, а далее примете участие в забавных и интересных программных проектах: от разработки карточной игры до создания серьезного бизнес-приложения. Второе издание книги включает последние версии C# 5.0, Visual Studio 2012 и .NET 4.5 Framework, и будет интересно всем, изучающим язык программирования С#. Особенностью данного издания является уникальный способ подачи материала, выделяющий серию «Head First» издательства O'Reilly в ряду множества скучных книг, посвященных программированию.

Оглавление
Отрывок

Ссылка на каталог книг

Книги по C и C++ | ProgBook

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

В книге «Параллельное программирование с использованием OpenMP» содержится только необходимая информация о параллельном программировании, которая направлена на создание производительных современных систем. Данная книга может использоваться в процессе подготовки специалистов в области программирования и информационных технологий. Автор книги М. П. Левин разработал собственную методику и изложил её в доступном виде для аспирантов и студентов высших учебных заведений аналогичного направления.

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

 

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

 

Так же, как и «Язык Си», новая книга Стивена Праты написана дружелюбным и понятным языком, не пугающим читателя и точно так же построена по схеме «небольшое лирическое отступление»-«теория вопроса»-«живой пример реализации»-«упражнение для самопроверки». Помимо объяснения собственно синтаксиса языка и его отличий от Си книга содержит сотни примеров программ, имеющих практическое применение, а также обучает использованию библиотеки шаблонов STL, наиболее полно использующей возможности Си++. Самоучитель по программированию «Язык программирования C++. Лекции и упражнения» Стивена Праты предназначен как студентам технических специальностей, обучающимся объектно-ориентированному программированию «с нуля», так и профессиональным программистам, желающим ознакомиться с новым ISO стандартом «Си++ 2011».

Компанией Borland выпущен продукт Borland C++ Builder для быстрого создания приложений на C++. Эта интегрированная среда разработки сочетает в себе гибкость и мощность языка C++ с удобством Visual Basic. Данная книга – это отличная возможность освоить C++ Builder в полной мере за минимальное время. С изучением ее материалов результативность вашей работы существенно повысится.

Быстрое создание приложений на C++ превосходно воплощается Borland C++ Builder. Встроенный редактор интерфейса позволяет существенно упростить процесс программирования и делает разработку визуально наглядной. С этим сборником вы научитесь правильно обращаться с расширенными формами, управлять базами данных собственными разработками приложений.

Узнаете об использовании элементов управления ActiveX и VCL. А сложные приложения на C++ станут намного проще с Borlnd C++ Builder. Книга «Borland C++ Builder. Библиотека программиста» поможет выйти на качественно новый уровень разработок приложений. Автор Мэтт Теллес.

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

Герберт Шилдт, автор всемирно известных бестселлеров по программированию на Java, C, и C#, в своей книге «C++: базовый курс» дает исчерпывающую информацию по всем основным элементам программирования на C++, которая будет полезна и новичкам, и опытным программистам.

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

К книге Евгения Корнилова «Программирование шахмат и других логических игр» прилагается компакт-диск с наиболее известными, свободными кодами шахматных программ и текстами программ самого автора.

В книге описаны основы синтаксиса и методика разработки приложений на нескольких объектно-ориентированных языках программирования: C++/CLI, C# и Java (J#). Особенностью изложенного в книге материала является параллельное сравнивание на конкретных примерах схожих языковых конструкций. Добавочно каждая из программ для более наглядного понимания взаимосвязи между объектами поясняется UML диаграммами.

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

Книга Медведева В. И. «Особенности объектно-ориентированного программирования на C++/CLI, C# и Java» будет полезна для изучения преподавателям и студентам профильных ВУЗов, а также профессионалам, имеющих опыт программирования на C++ и желающих освоить разработку на других языках.

Этот учебник C++ может использоваться как преподавателями учебных заведений, так и для самостоятельного изучения языка программирования. Он разделён на несколько частей, посвящённых собственно основам языка и программирования в целом, особенностям среды Visual C++, процессу отладки кода, особенностям программирования под Windows. Каждый из рассматриваемых вопросов имеет практические приложения, часть из которых читателю предлагается выполнить самостоятельно. Во многом «Visual C++ 2010. Полный курс» Хортона напоминает классические университетские учебники, поэтому он хорошо подойдёт приверженцам системного усвоения знаний.

В книге освещены все этапы создания приложения для Windows 95 и рассмотрено большинство проблем, которые могут возникнуть на этом пути. Хотя примеры программ приведены на С, рассказ опирается на возможности самой системы, а не на особенности конкретных языков или библиотек, поэтому многие курсы обучения начинаются именно с «Программирования для Windows 95» Петзольда. В первом томе рассматриваются базовые принципы программирования, обмен информацией между компьютером и периферийными устройствами, использование графического интерфейса пользователя. Второй посвящён более глубоким вопросам – управлению ресурсами и взаимодействию между приложениями.

В книге освещены все этапы создания приложения для Windows 95 и рассмотрено большинство проблем, которые могут возникнуть на этом пути. Хотя примеры программ приведены на С, рассказ опирается на возможности самой системы, а не на особенности конкретных языков или библиотек, поэтому многие курсы обучения начинаются именно с «Программирования для Windows 95» Петзольда. В первом томе рассматриваются базовые принципы программирования, обмен информацией между компьютером и периферийными устройствами, использование графического интерфейса пользователя. Второй посвящён более глубоким вопросам – управлению ресурсами и взаимодействию между приложениями.

«Практикум по программированию на С++» — это практический курс, направленный на обучение читателя программированию на C и C++. Практикум содержит почти 200 программных решений и 300 тестовых заданий по более чем 20 темам — от самых простейших вычислений, до обработки двоичных файлов. Отдельной главой в книге выделен материал, посвященный развитию у читателя навыков «чтения» и анализа готовых программных решений, увеличению «словарного запаса» программиста.

«Практикум по программированию на С++», составленный Е.Л. Романовым, рекомендуется студентам, обучающимся на факультетах информатики, а также всем тем, кто желает самостоятельно изучать язык C и технологии программирования на этом языке. Также, книга будет полезна преподавателям — в практикуме содержатся лабораторные работы, а материал его вполне можно разбить на 2-3 семестра.

Подборка книг по C++ для любого уровня

Хотите начать изучать C++, но не знаете с чего начать? Или подтянуть свои знания в С++? В статье приведен перечень полезных книг.

Введение, без опыта программирования

«Программирование: принципы и практика использования C++» (Бьёрн Страуструп) (обновлено для С++11/С++14) Введение в программирование на языке С++, написанное автором этого языка. Хорошая книга, не требующая опыта в программировании, но она будет полезна не только новичкам.

Введение, с опытом программирования

«C++ Primer»* (Стэнли Липпман, Жозе Лажуа и Барбара Э. Му) (обновлён для C++11) В 1к страниц умещается подробное введение в С++, которое охватывает почти всё в этом языке, в очень доступном формате и мельчайших подробностях. Пятое издание (опубликовано 16 августа 2012) охватывает С++11. [Обзор]

*Не путать с «C++ Primer Plus» (Стивен Прата) с менее удобным обзором.

«Обзор С++» (Бьёрн Страуструп) «Обзор» — это краткий (около 180 страниц и 14 глав) учебный обзор всего в стандартном С++ (язык и стандартная библиотека и использование С++11) на несколько более высоком уровне для людей, уже знакомых с С++ или, по крайней мере, имеющих опыт в программировании. Эта книга является расширенной версией материала, составляющего главы 2-5 четвёртого издания «Языка программирования С++».

«Accelerated C++» («Ускоренный С++») (Эндрю Кёниг и Барбара Му) Эта книга в основном охватывает те же темы, что и «C++ Primer», но по объёму занимает только четверть той книги. В значительной степени это так, потому что это не введение в программирование, а введение в С++ для людей, которые раньше программировали на каком-то другом языке. В этой книге более быстрый темп обучения, но для тех, кто сможет осилить его, эта книга окажется очень сжатым введением в язык. (Исторически, эта книга открыла новые возможности, став первой книгой для начинающих, в которой использовался современный подход к изучению языка.) [Обзор]

«Thinking in C++» («Мышление на С++») (Брюс Эккель) Два тома; Этот учебник, написанный в свободном стиле, послужить хорошим предисловием к более сложным книгам. Загрузить: том 1, том 2. К сожалению, с них встречается ряд мелких ошибок (например, утверждение, что временные переменные автоматически const), нет официального списка ошибок. Часть ошибок можно посмотреть здесь, но это, по-видимому, не поддерживается.

Лучшая практика

«Effective C++» («Эффективное использование C++») (Скотт Майерс). Эта книга была написана с целью стать второй лучшей книгой для программистов, пишущих на языке С, и ей это удалось. Ранние издания были больше ориентированы на программистов, работавших с языками С, в третьем издании это поменялось, и книга переориентировалась на тех, кто работает с языками типа Java. Книга представляет собой 50 легких для запоминания основанных на опыте правил вместе с их обоснованием в очень доступной (и приятной) форме. Для С++11 и С++14 некоторые примеры и вопросы устарели, поэтому в этом случае «Effective Modern C++» («Эффективный и современный С++» предпочтительнее. [Обзор]

«Effective Modern C++» («Эффективный и современный С++») (Скотт Майерс). По сути это новая версия «Effective C++» («Эффективное использование C++»), ориентированная на С++ программистов, переходящих от С++03 к С++11 и С++14.

«Effective STL» («Эффективное использование STL») (Скотт Майерс). Эта книга стремится стать частью стандартной библиотеки пользователей STL, как и «Effective C++» для языка в целом: она представляет основные правила вместе с их обоснованием. [Обзор]

«More Effective C++» («Более эффективное использование C++») (Скотт Майерс). Ещё больше основанных на опыте More Exceptional C++правил, чем в «Effective C++». Они не такие важные, как те из первой книги, но всё-таки неплохо знать и их.

«Exceptional C++» («Решение сложных задач на С++») (Герб Саттер). Книга представлена в виде набора головоломок, это одно из лучших и всесторонних обсуждений надлежащего управления ресурсами и исключительной безопасности в С++ через RAII (получение ресурса есть инициализация), в дополнение к углублённому изучения таких вопросов, как идиомы pimpl, поиск имён, хорошее проектирование классов и модель памяти С++. [Обзор]

«More Exceptional C++» («Новые сложные задачи на C++») (Герб Саттер). Охватывает дополнительные темы безопасности, не затронутые в «Exceptional C++» в дополнение к обсуждению эффективного объектно-ориентированного программирования в C++ и правильного использования STL. [Обзор]

«Exceptional C++ Style» (Герб Саттер). В книге обсуждается общее программирование, оптимизация и управление ресурсами; в этой книге также хорошо описано, как писать модульный код на С++ с использованием функций, не являющихся членами класса, и принципом единой ответственности. [Обзор]

«C++ Coding Standards» («Стандарты программирования на С++») (Герб Саттер, Андрей Александреску). Выражение «стандарты программирования» здесь не означает «сколько пробелов я должен поставить в своём коде?». В этой книге содержится более ста лучших задач, идиом и распространенных ошибок, которые могут помочь вам написать правильный, понятный и эффективный код на С++. [Обзор]

«C++ Templates: The Complete Guide» («Шаблоны С++: полное руководство») (Дэвид Вандевурд и Николаи М. Джосаттис). Это книга о тех шаблонах, которые существовали до С++11. Она охватывает всё от самых основ до некоторых наиболее передовых шаблонов метапрограммирования и объясняет каждую деталь работы шаблонов (как саму идею, так и то, как она реализовывается), в ней обсуждаются многие общие ошибки. В книге содержится отличное обобщение правила одного определения (ODR) и разрешения совмещения в приложениях. Выход второго издания запланирован на 2016 год. [Обзор]

«Modern C++ Design» («Современное проектирование на С++») (Андрей Александреску). Новаторская книга об общих передовых методах программирования. В книге представлены темы проектирования, основанные на требованиях, списков типов и основные идиомы общего программирования, также объясняется, как много полезных образцов проектирования (включая малые распределители объектов, функторы, фабрики, посетителей и мультиметоды) может быть реализовано эффективно, модульно и только с использованием общего программирования. [Обзор]

«C++ Template Metaprogramming» («Шаблонное метапрограммирование на С++») (Дэвид Абрахамс и Алексей Гуртовой)

«C++ Concurrency In Action» («Параллельное программирование на С++ в действии») (Энтони Вилльямс). Книга освещает параллельное программирование на С++11, включая потоковые библиотеки, атомарные библиотеки, модель памяти С++, шлюзы и блокировки, а также вопросы проектирования и отладки многопоточных приложений.

«Advanced C++ Metaprogramming» («Продвинутое метапрограммирование на С++») (Дэвид Ди Дженнаро). В руководстве по методам шаблонного метапрограммирования на С++11 больше уделяется внимания практике, чем теории. Есть огромное количество отрывков из этой книги, некоторые из которых устарели, но, тем не менее, их полезно знать. Если вы сможете смириться с причудливым форматированием/редактированием, то вам будет легче читать эту книгу, чем книги Александреску, и, возможно, она будет более полезной. Для более опытных разработчиков есть возможность выудить что-нибудь из глубин С++ (шутка), ведь это, как правило, приходит с опытом.

Книги-справочники: все уровни

«The C++ Programming Language» («Язык программирования С++») (Бьёрн Страуструп) (обновлено для С++11). Классическое введение в С++, написанное его создателем. Написанная параллельно в классическим K&R, эта книга действительно очень похожа на него и охватывает почти всё от основного языка до стандартной библиотеки и парадигм программирования в философии языка. (Из-за этого последнее издание превысило отметку в 1000 страниц.) [Обзор] Четвёртое издание (опубликовано 19 мая 2013) охватывает С++11.

«C++ Standard Library Tutorial and Reference» («C++ Стандартная библиотека. Для профессионалов») (Николай Джосьютис) (обновлено для С++11). Введение и источники для стандартной библиотеки С++. Второе издание (опубликовано 9 апреля 2012) охватывает С++11. [Обзор]

«The C++ IO Streams and Locales» («IO потоки и области С++») (Анжелика Лангер и Клаус Крефт). Про эту книгу мало что можно сказать, за исключением того, что если вы хотите знать всё о потоках и областях, то это именно то, что поможет вам найти окончательные ответы. [Обзор]

Справочники для С++11:

«The C++ Standard (INCITS/ISO/IEC 14882-2011)» («Стандарт С++»). Эта книга является конечной инстанцией для всего, что является или не является С++. Однако, следует помнить, что она написана исключительно в качестве руководства по указанию источников для опытных пользователей, желающих потратить значительное время и усилия на её понимание. Как обычно, первое издание было довольно дорогим (свыше $300), но сейчас она опубликована в электронном виде за $60.

«Overview of the New C++ (C++11/14)» («Обзор нового С++») (только в pdf) (Скотт Майерс) (обновлено для C++1y/C++14). Здесь представлены репрезентационные материалы (слайды и записи некоторых лекций) трёхдневного курса, который проводил Скотт Майерс, который является многоуважаемым автором языка С++. Даже если список тем маленький, качество остаётся высоким.

Классика/старые издания

Примечание: некоторая информация, содержащаяся в этих книгах, может оказаться не актуальной или уже не авторитетной.

«The Design and Evolution of C++» («Дизайн и эволюция С++») (Бьёрн Страуструп). Если вы хотите знать, почему язык такой, какой он есть, то в этой книге вы найдёте ответы. В этой книге охвачены все вопросы до стандартизации С++.

«Ruminations on C++» («Размышления на С++») (Эндрю Кениг и Бабрара Бу) [Обзор]

«Advanced C++ Programming Styles and Idioms» («Программирование на С++») (Джеймс Коплиен). Предшественник движения шаблонов, книга содержит описания многих специфичных «идиом» С++. Конечно, это очень хорошая книга, возможно, её стоит прочитать, если вы хотите скоротать время, но она довольна старая и не соответствует современному С++.

«Large Scale C++ Software Design» («Крупномасштабная разработка программного обеспечения на С++») (Джон Лакос). Лакос объясняет методы работы с крупными проектами по разработке программного обеспечения на С++. Разумеется, эту книгу полезно читать, только если вы в курсе дела. Она была написана задолго до С++98, и в ней недостаёт многих вещей (например, пространства имён), важных для крупных проектов. Если вам нужно работать над большим проектом по разработке программного обеспечения на С++, вы можете прочитать эту книгу, однако вам стоит отнестись к ней с некоторым недоверием. Выход первого тома нового издания ожидается в 2015 году.

«Inside the C++ Object Model» («Внутри объектной модели С++») (Стэнли Липпман). Если вы хотите знать, как виртуальная компонентная функция обычно реализуется и как база объектов закладывается в память сценария с несколькими наследованиями, и как всё это влияет на производительность, то в этой книге вы найдёте подробное обсуждение таких тем.

Источник: Stack Overflow

Книги по C++ и Си

Язык С — не просто фундамент всех современных языков программирования, и сам — современный язык, идеальный для написания эффективных приложений передового уровня. Последние 20 лет С не стоял на месте. Сам язык и окружающая его экосистема подвергаются пересмотру. Эта книга начинается там, где другие заканчиваются. В ней рассказано, как изменилась функциональность, поддерживаемая любым компилятором, благодаря двум новым стандартам С, вышедшим со времен оригинального ANSI. Цель книги — рассмотреть то, чего нет в других учебниках по С: инструменты и окружение; библиотеки для работы со связанными списками и анализаторами XML; написание удобно читаемого кода с дружественным программным интерфейсом.

Издание предназначено для программистов, имеющих опыт работы на каком-1 языке и обладающими базовыми знаниями о С.