Учебник по программированию c
ProgBook — книги и учебники по программированию
Книги по языкам программирования C и C++
В самоучителе содержатся все необходимые нюансы параллельного программирования с применением OpenMP для создания современных высокопроизводительных параллельных вычислительных систем, обладающих общей памятью.Вся информация представлена в теоретическом виде с сопровождением наглядных примеров, при помощи которых читатель сможет быстрее освоить материал и запомнить его.
В книге «Параллельное программирование с использованием OpenMP» содержится только необходимая информация о параллельном программировании, которая направлена на создание производительных современных систем. Данная книга может использоваться в процессе подготовки специалистов в области программирования и информационных технологий. Автор книги М. П. Левин разработал собственную методику и изложил её в доступном виде для аспирантов и студентов высших учебных заведений аналогичного направления.
Язык программирования C++. Лекции и упражнения — Стивен Прата
Основной бедой значительной части программистов, называющих себя специалистами по Си++, является то, что на самом деле они пишут на классическом Си с небольшими элементами объектного программирования. При таком подходе вся потенциальная мощь этого языка остаётся совершенно невостребованной. Стивен Прата, один из трёх авторов учебника «Язык Си», признанного лучшим учебным пособием по этому языку, программист и преподаватель программирования, составил этот учебник так, чтобы помочь читателю избежать подобных ошибок.
В процессе чтения книги вы ознакомитесь с такими необходимыми базовыми понятиями, как «нисходящее проектирование», когда глобальная задача разбивается на более мелкие части, которые легче уяснить для себя, «структурирование кода», когда листинг программы составляется таким образом, что циклы, условия, обработка исключений и иные логические элементы программы ясно видны даже при беглом взгляде на код, узнаете такие понятия объектно-ориентированного программирования, как наследование классов и структур, обработка исключительных ситуаций, научитесь пользоваться такими непростыми, но мощными средствами, как шаблонизатор классов и введёнными в 2011 году в стандарт языка понятиями «лямбда-функции», «семантики переноса», и «интеллектуальный указатель».
Так же, как и «Язык Си», новая книга Стивена Праты написана дружелюбным и понятным языком, не пугающим читателя и точно так же построена по схеме «небольшое лирическое отступление»-«теория вопроса»-«живой пример реализации»-«упражнение для самопроверки». Помимо объяснения собственно синтаксиса языка и его отличий от Си книга содержит сотни примеров программ, имеющих практическое применение, а также обучает использованию библиотеки шаблонов STL, наиболее полно использующей возможности Си++. Самоучитель по программированию «Язык программирования C++. Лекции и упражнения» Стивена Праты предназначен как студентам технических специальностей, обучающимся объектно-ориентированному программированию «с нуля», так и профессиональным программистам, желающим ознакомиться с новым ISO стандартом «Си++ 2011».
Borland C++ Builder. Библиотека программиста — Мэтт Теллес
Компанией Borland выпущен продукт Borland C++ Builder для быстрого создания приложений на C++. Эта интегрированная среда разработки сочетает в себе гибкость и мощность языка C++ с удобством Visual Basic. Данная книга – это отличная возможность освоить C++ Builder в полной мере за минимальное время. С изучением ее материалов результативность вашей работы существенно повысится.
Быстрое создание приложений на C++ превосходно воплощается Borland C++ Builder. Встроенный редактор интерфейса позволяет существенно упростить процесс программирования и делает разработку визуально наглядной. С этим сборником вы научитесь правильно обращаться с расширенными формами, управлять базами данных собственными разработками приложений.
Узнаете об использовании элементов управления ActiveX и VCL. А сложные приложения на C++ станут намного проще с Borlnd C++ Builder. Книга «Borland C++ Builder. Библиотека программиста» поможет выйти на качественно новый уровень разработок приложений. Автор Мэтт Теллес.
C++: базовый курс — Герберт Шилдт
В первых главах даются базовые представления о структуре языка – рассматриваются типы данных, переменные, операторы, функции, объекты. За ними очерчиваются формы более сложных элементов объектно-ориентированного программирования — классов. В последующих частях книги объясняются механизмы обработки исключений, шаблоны, концепция пространства имен, способы реализации динамической идентификации типов, структура стандартной библиотеки шаблонов STL, приводится справочная информация по ключевым словам среды .NET.
Герберт Шилдт, автор всемирно известных бестселлеров по программированию на Java, C, и C#, в своей книге «C++: базовый курс» дает исчерпывающую информацию по всем основным элементам программирования на C++, которая будет полезна и новичкам, и опытным программистам.
Программирование шахмат и других логических игр — Евгений Корнилов
Шахматы, шашки, крестики-нолики, уголки – у всех этих и многих других подобных игр есть некоторые общие особенности, которые позволяют применять при их программировании схожие решения. Методы перебора, статистические понятия, хеш-таблицы, эвристический анализ – вот неполный перечень описываемых в данном томе приемов, которые принято использовать при создании логических игр.
К книге Евгения Корнилова «Программирование шахмат и других логических игр» прилагается компакт-диск с наиболее известными, свободными кодами шахматных программ и текстами программ самого автора.
Особенности объектно-ориентированного программирования на C++/CLI, C# и Java — Медведев В. И.
В книге описаны основы синтаксиса и методика разработки приложений на нескольких объектно-ориентированных языках программирования: C++/CLI, C# и Java (J#). Особенностью изложенного в книге материала является параллельное сравнивание на конкретных примерах схожих языковых конструкций. Добавочно каждая из программ для более наглядного понимания взаимосвязи между объектами поясняется UML диаграммами.
Более детально рассмотрены такие сложные для самостоятельного изучения конструкции языка, как делегаты, события, потоки и их синхронизация.
Подробно описаны особенности синтаксиса и использования в каждом из трех языков.
Книга Медведева В. И. «Особенности объектно-ориентированного программирования на C++/CLI, C# и Java» будет полезна для изучения преподавателям и студентам профильных ВУЗов, а также профессионалам, имеющих опыт программирования на C++ и желающих освоить разработку на других языках.
Visual C++ 2010. Полный курс — Айвор Хортон
Этот учебник C++ может использоваться как преподавателями учебных заведений, так и для самостоятельного изучения языка программирования. Он разделён на несколько частей, посвящённых собственно основам языка и программирования в целом, особенностям среды Visual C++, процессу отладки кода, особенностям программирования под Windows. Каждый из рассматриваемых вопросов имеет практические приложения, часть из которых читателю предлагается выполнить самостоятельно. Во многом «Visual C++ 2010. Полный курс» Хортона напоминает классические университетские учебники, поэтому он хорошо подойдёт приверженцам системного усвоения знаний.
Программирование для Windows 95. Том II — Ч. Петзолд
В книге освещены все этапы создания приложения для Windows 95 и рассмотрено большинство проблем, которые могут возникнуть на этом пути. Хотя примеры программ приведены на С, рассказ опирается на возможности самой системы, а не на особенности конкретных языков или библиотек, поэтому многие курсы обучения начинаются именно с «Программирования для Windows 95» Петзольда. В первом томе рассматриваются базовые принципы программирования, обмен информацией между компьютером и периферийными устройствами, использование графического интерфейса пользователя. Второй посвящён более глубоким вопросам – управлению ресурсами и взаимодействию между приложениями.
Программирование для Windows 95. Том I — Ч. Петзолд
В книге освещены все этапы создания приложения для Windows 95 и рассмотрено большинство проблем, которые могут возникнуть на этом пути. Хотя примеры программ приведены на С, рассказ опирается на возможности самой системы, а не на особенности конкретных языков или библиотек, поэтому многие курсы обучения начинаются именно с «Программирования для Windows 95» Петзольда. В первом томе рассматриваются базовые принципы программирования, обмен информацией между компьютером и периферийными устройствами, использование графического интерфейса пользователя. Второй посвящён более глубоким вопросам – управлению ресурсами и взаимодействию между приложениями.
Практикум по программированию на С++ — Е. Л. Романов
«Практикум по программированию на С++» — это практический курс, направленный на обучение читателя программированию на C и C++. Практикум содержит почти 200 программных решений и 300 тестовых заданий по более чем 20 темам — от самых простейших вычислений, до обработки двоичных файлов. Отдельной главой в книге выделен материал, посвященный развитию у читателя навыков «чтения» и анализа готовых программных решений, увеличению «словарного запаса» программиста.
«Практикум по программированию на С++», составленный Е.Л. Романовым, рекомендуется студентам, обучающимся на факультетах информатики, а также всем тем, кто желает самостоятельно изучать язык C и технологии программирования на этом языке. Также, книга будет полезна преподавателям — в практикуме содержатся лабораторные работы, а материал его вполне можно разбить на 2-3 семестра.
Стань мастером C#: подборка книг по языку родом из Microsoft
- Книги, 21 июня 2017 в 23:35
- Иван Бирюков
C# — объектно-ориентированный язык программирования, созданный в 1998–2001 годах компанией Microsoft как язык разработки приложений для платформы Microsoft .NET Framework. Он совмещает в себе силу и гибкость C++ с простотой Visual Basic.
C#, конечно же, уступает по популярности таким языкам, как C, Java, C++ и PHP, но, несмотря на это, он используется довольно часто. Ниже вы найдёте подборку книг, которые помогут вам в изучении этого языка программирования.
C# Programming Yellow Book
Эта книга — пособие для первокурсников на факультете компьютерных наук университета Халла. Вот рассматриваемые темы:
- Компьютеры и программы. Вы узнаете, что такое компьютер, как работают программы и как их писать. В конце раздела начнётся знакомство с самим C#.
- Обработка данных. В этой главе разбирается написание простой программы.
- Создание программ. Вы научитесь разбивать программы на отдельные части и использовать массивы.
- Создание решений. Здесь рассматривается процесс создания сложного проекта.
- Продвинутое программирование. Заканчивается книга разбором более сложных и мощных возможностей C#.
Для скачивания также доступны и другие материалы учебного курса.
Fundamentals of Computer Programming with C#
Данная книга предназначена для новичков. Она учит вас мыслить как программист, а C# в данном случае — просто инструмент, который можно заменить на Java, C++, PHP или Python. Это книга о программировании, а не о C#.
Она была написана командой болгарских разработчиков, затем её перевели на английский.
Изучаем C#
C# спроектирован и разработан специально для применения с .NET Framework — он идеально подходит для создания мощных Windows-приложений.
Прочитав эту книгу, вы освоите не только C# и .NET, но и XAML, Visual Studio и даже программирование под Windows Phone.
C# 7.0. Карманный справочник
Вам никогда не хотелось иметь всегда под рукой книгу, в которой можно быстро найти ответ по той или иной особенности языка? Для C#-программистов такая книга уже существует — «C# 7.0. Карманный справочник». Это наиболее актуальная версия книги, охватывающая стандарт C# 7.0. Кроме того, книга также подойдет для опытных программистов, пишущих на Си, C++ или Java и желающих освоить в сжатые сроки новый для себя язык как для саморазвития, так и для использования в существующем проекте.
Принципы, паттерны и методики гибкой разработки на языке C#
Авторы Роберт и Мика Мартины собрал в этой книге множество методов гибкой разработки, а также продемонстрировали на примерах их работоспособность. Применяя объектно-ориентированный подход, авторы рассматривают конкретные паттерны, применяемые к проектированию приложений, описывают методы рефакторинга и способы эффективного использования различных видов UML-диаграмм.
Microsoft Visual C#. Подробное руководство
Данная книга наиболее полно охватывает все возможности языка C#. Кроме того, она сертифицирована Microsoft. В ней много материала по работе с переменными, операторами, выражениями и методами, разработке надежных приложений с обработкой ошибок и исключений, использованию коллекции, созданию запросов LINQ и основам объектно-ориентированного программирования.
В 8 издании рассматривается стандарт C# 6.0 и среда разработки Visual Studio 2015. Книга ориентирована на тех, кто уже знает хотя бы один из языков программирования, но желающих знать C#, а также на программистов, уже знакомых с C# и желающих углубить свои знания в разработке приложений.
Разработка обслуживаемых программ на языке C#
В книге содержится 10 рекомендаций по разработке легко поддерживаемых и адаптируемых программ. Данные советы были выработаны авторами книги путем анализа сотен функционирующих систем. У этой книги также имеется версия для языка Java. Руководство будет полезно тем, кто стремится написать качественный код, который смогут в дальнейшем читать и поддерживать другие программисты.
C# Programming
Эта книга подробно описывает возможности языка C#. Рассматриваются основы языка, классы, продвинутые концепции, фреймворк .NET и ключевые слова.
В изучении C# вам также поможет этот русскоязычный видеокурс.
Creating Mobile Apps with Xamarin.Forms
Эта книга рассказывает о создании кроссплатформенных мобильных приложений при помощи Xamarin.Forms. Рассматриваются такие темы, как анимация, MVVM, триггеры, поведения, макеты и рендеры.
The Daily Design Pattern
В этой книге вы найдете подробный анализ 22 популярных паттернов проектирования и их реализации на C#.
Также советуем обратить внимание на серию видеоуроков по этой же теме.
Threading in C#
Это подробное руководство познакомит вас с возможностями работы с потоками в C#. Кстати, доступна и версия на русском языке.
Introduction to programming and the C# language
Эта книга — практическое введение в C#. В ней на простых примерах объясняются все основные концепции ООП. Цель книги — научить вас разрабатывать полноценные приложения и помочь выбрать дальнейшее направление развития.
Кстати, для изучения ООП вам может пригодиться и этот русскоязычный видеокурс.
Object Oriented Programming using C#
В этой книге при помощи небольших упражнений объясняется объектно-ориентированный подход к программированию. Кульминацией является написание большой программы. Затрагиваются следующие темы:
- абстракция;
- наследование;
- полиморфизм;
- ООП;
- UML;
- agile;
- разработка через тестирование.
Object-Oriented Programming in C# Succinctly
Эта книга познакомит вас с основами объектно-ориентированного программирования. В ней достаточно как теории, так и практических примеров. Вот разделы книги:
- Три столпа ООП.
- Интерфейсы.
- SOLID.
- Шаблоны проектирования.
- Шаблоны GRASP.
- Архитектура.
- Другие парадигмы.
C# Code Contracts Succinctly
Контрактное программирование — это метод проектирования ПО, предполагающий, что проектировщик должен определить формальные, точные и верифицируемые спецификации интерфейсов для компонентов системы. В C# такой подход реализуется при помощи библиотеки Code Contracts, об использовании которой и рассказывает эта книга. Вот её оглавление:
- Вступление.
- Использование контрактов для кода.
- Полезные советы.
- Тестирование контрактов для кода.
- Расширения контрактов для кода.
- Заключение.
- Полезные ресурсы.
Data Capture and Extraction with C# Succinctly
Обнаружение и извлечение информации — это одна из самых сложных задач, поэтому для её решения стоит пользоваться специальными инструментами. Эта книга расскажет вам, как извлекать данные из электронных писем, скриншотов, сайтов и текстов при помощи языка C#.
Если вы знаете другие бесплатные книги по C#, которые стоит добавить в нашу подборку, делитесь ими в комментариях!
C / C++
Русский
Параллельное программирование на С++ в действии. Практика разработки многопоточных программ. Энтони Уильямс
В наши дни компьютеры с несколькими многоядерными процессорами стали нормой. .

Программирование на С для начинающих. М. МакГрат
С — это компактный компьютерный язык программирования общего назначения, созданный .

Алгоритмы и программы. Язык С++. Е. Конова, Г. Поллак
При изложении материала авторы используют методику обучения от алгоритмов к .

Expert C Programming: Deep Secrets. P. Linden
C programming is a craft that takes years to perfect. .

Программирование на С для начинающих. 3-е изд. Грег Перри, Дин Миллер
Простое и понятное руководство по программированию на С поможет быстро .

Программирование: учебное пособие. Л.А. Надейкина
В Учебном пособии рассматривается на базе языка С++ одна из .

Введение в язык Си++. А.В.Столяров
Краткое (объём четвёртого издания — 136 страниц) введение в язык .

Объектно-ориентированное программирование в С++. Р. Лафоре
Основная задача этой книги — научить вас создавать программы на .

Введение в C++. 4-ое издание. А. В. Столяров
Краткое введение в язык Си++. Содержание построено по принципу плавного .

Объектно-ориентированное программирование на C++. Пол Айра
Если вы хотите писать качественные приложения, с хорошей архитектурой и .

Язык программирования С. Брайан Керниган, Деннис Ритчи
Книга по программированию от авторов языка C.
В своё .
- попробуйте пройти короткие (6-7 вопросов) тесты на темы std::vector и std::list. Эти тесты касаются мизерной и самой простой части содержимого книг.
- ответьте сами себе в рамках такого опросника:
- есть у вас ссылка на элемент vector/list/deque — вы делаете вставку нового элемента в контейнер. Останется ли валидной ссылка?
- что изменится если вместо ссылке в предыдущем вопросе использовать итератор?
- какие есть типы итераторов? Что такое адаптеры итераторов и как ими пользоваться?
- знаете ли вы как удалить элементы с определенным значением из вектора/списка/ассоциативного контейнера?
- что изменится если нужно удалить элементы, удовлетворяющие определенному условию? (особенно std::map/std::set )?
- знаете ли вы, какие возможности дает istreambuf_iterator?
- что делать, если нужно отсортировать вектор не полностью, а только его часть? — что умеет std::nth_element ? А как быть с std::list?
- чем map::operator[] отличается от map::insert ? Что выбрать для вставки элемента?
- знаете ли вы о том, какие функции есть в STL для работы с отсортированными векторами и пирамидами? Есть ли смысл строить на такой структуре данных множество?
- что делают фукнция std::replace_copy_if , std::remove_copy_if , std::unique , std::random_shuffle ? — это касается не зазубривания, а того, будете ли вы писать свой велосипед или хотя бы попробуете найти готовую функцию для перемешивания массива;
- как можно использовать std::copy и std::copy_backward ? — Можно ли копировать элементы между контейнерами разных типов? Использовать их с файловыми итераторами? Можно ли применять их для копирования элементов внутри одного и того же контейнера ?
Книга Аммерааля, откровенного говоря, очень скучная, почти как справочник. Читать ее стоит по диагонали, однако, я выбрал для вас наиболее интересные (с моей точки зрения) моменты:
1. Из первой главы можно узнать зачем вообще нужны итераторы и как их не стоит использовать. Хорошо написано про категории итераторов. Если вы не знаете что такое Erase–remove idiom — то эту главу точно нужно просмотреть. Тут же можно прочитать про ряд полезных алгоритмов: sort, find, copy, merge, replace_reverse, find_if, remove_if — однако эта часть очень скучна, хотя, полезно знать что такие алгоритмы вообще существуют (ну чтобы не писать велосипеды).2. Во второй главе описаны ассоциативные контейнеры и ряд алгоритмов. Если вы не знаете что такое set/map — то можно почитать. В третьей главе подробно описываются vector (и vector ), list и deque, стоит заглянуть если вы не знаете как может быть реализован deque внутри (тут перекликается с одним из советов Маерса — не использовать deque вместо вектора без особой необходимости, хоть он и эффективнее). Если вы не используете в своей работе операции splice, remove и merge для std::list — то также почитайте.
3. Вы слышали про set_intersection/set_union? — если нет, посмотрите примеры к четвертой главе (из них все понятно, текст читать не стоит). Если не знаете что такое адаптеры контейнеров (stack, queue, priority_queue) — загляните в пятую главу. Из полезного в шестой главе — адаптеры итераторов (inserter) и std::transform (незаслуженно забытый студентами).
4. В седьмой главе описаны алгоритмы, опять же как в справочнике, но с хорошими примерами. Нет смысла всех их перечислять, но заглянуть туда стоит если вы не слышали про: adjacent_find, mismatch, copy (им можно хитро пользоваться, а также есть copy_backward), generate, random_shuffle, partition (и stable_partition). А знали ли вы, что STL есть генератор перестановок, операции с пирамидами, а также ряд операций, позволяющих работать с массивами (отсортированными) как со множествами? — знать детали всех этих функций не обязательно (для этого есть справочник), а вот знать что такое вообще существует — нужно.
Что касается второй книги (Мейерса) — то в ней традиционно (для этого автора) материал упорядочен в виде советов. Читается она интересно и увлекательно (местами даже может оказаться удивительно). Перечислять что из нее можно узнать смысла нет, т.к. лучше просмотреть список советов и читать лишь те, что вам интересны (я бы на всякий случай просмотрел все).
Итог: эти две книги не являются учебниками по STL, чтобы научиться им пользоваться — надо ставить задачу и писать код. Книги же помогут вам набить меньше шишек. Читать лучше сначала Аммерааля, а потом уже Мейерса, т.к., несмотря на то, что вторую книгу читать проще, ориентирована она на людей, уже знакомых с STL — упор в ней больше делается на тонкости.
Лучшие книги о языке программирования C++
Одним из самых популярных языков программирования является С++. Множество разработчиков выбирают его в качестве главного языка, но также часто он становиться и дополнительным инструментом разработки программного обеспечения.
Что нужно новичку, чтобы изучить язык С++? Прежде всего понадобится настойчивость и терпение, только эти качества помогут начинающему пройти путь обучения до конца. А максимально быстро добиться результата помогут качественные учебники, хорошие учителя, а также наличие компилятора и текстового редактора.
Следует понимать, что изучение исключительно теории не даст хорошего результата. Чтобы стать действительно хорошим программистом, необходимо уделять много времени практике — решению задач и выполнению упражнений.
Если есть готовность учиться и твердое намерение стать программистом С++, то нижеприведенные книги будут крайне полезны.
Программирование: принципы и практика использования C++
Автор: Бьярне Стауструп
Особенность этой книги заключается в уникальной структуре, в ней главы представляют собой отдельные тематические статьи. Книгу можно изучать последовательно, глава за главой, но также можно прочесть одну из глав выборочно, если необходимо получить информацию по конкретной проблеме.
По мнению автора, основной упор в обучении программированию на С++ нужно делать на практику написания программ. Освоить такое сложное интеллектуальное занятие, как программирование, будет проще, выполняя задачи по созданию программных решений и принимая активное участие в разработке.
В книге полно интересных заданий и упражнений по программированию, при выполнении которых обучающийся разовьет свои навыки в области С++.
Учебник Страуструпа по праву считают обязательным для изучения начинающими программистами С++. Книга уже неоднократно переиздавалась и пользуются неизменной популярностью. При первом прочтении следует внимательно ознакомиться с нулевой главой, она содержит рекомендуемый порядок изучения, соблюдение которого сделает учебу максимально эффективной.
Философия C++
Автор: Брюс Эккель
Помимо практического овладения навыками программирования С++, важно понять суть этого языка, его философию. В основательном учебнике Брюса Эккеля разбираются вопросы, часто возникающие в процессе написания программ, а также даются примеры их решения.
Книга развивает у обучающегося специфический образ мысли, помогающий ему в разработке программ, способствует пониманию язык С++ на глубинном уровне.
Учебник рекомендован для всех, кто изучает С++, и имеет продуманную структуру. Материал подается поэтапно — от простого к сложному. В книге много иллюстраций и схем, которые помогают в усвоении прочитанного. В каждой главе даются подробные объяснения.
Поскольку С++ является основным при разработке коммерческих программ и имеет существенное сходства с Java, то рекомендуется обратить внимание и на другой учебник Эккеля — «Философия Java», он поможет в изучении этого языка.
Второй том «Философии С++» посвящен практическим занятиям. В книге разбирается много примеров обработки исключений, изучаются библиотеки и различные паттерны проектирования.
C++: базовый курс
Автор: Герберт Шилдт
Книга написана признанным экспертом, Гербертом Шилдтом. У автора большой опыт в области создания качественных учебников и пособий по программированию на С, С++, С# и Java. Многие книги Шилдта стали бестселлерами и переведены на разные языки. Одним из самых известных его трудов является учебник «Освой С++ за 21 день».
Учебник «С++: базовый курс» содержит массу информации по программированию на С++. В книге даются как знания об элементарных понятиях, так и более продвинутые.
Автор не скупится и делится своим богатым опытом программирования. На страницах книги представлены рекомендации и советы о том, как можно существенно повысить продуктивность работы. Учебник снабжен множеством примеров из практики программирования. После внимательного изучения «С++: базовый курс» у обучающегося сложится полное представление о языке С++, его особенностях, достоинствах и недостатках.
Язык программирования C++. Базовый курс
Авторы: Стенли Липпман, Жози Лажойе, Барбара Э. Му
Книга написана специалистами с солидным опытом в сфере разработки программных решений. Стенли Липпман работает в Walt Disney и занимается программирование в области трехмерной графики. Жози Лажойе является сотрудником IBM и совершенствует ядро С++, а Барбара Э. Му — опытный разработчик, которая сотрудничала с самим Страуструпом.
Книга является типичным учебником с методичным изложением материала. Людям с совсем нулевыми знаниями в области программирования «C++ для начинающих» вряд ли подойдет, для усвоения информации потребуется некоторый опыт в программировании на других языках.
Тем не менее учебник полон качественной информации, при изучении которой обучающийся приобретет знания и навыки в области С++. Главной задачей авторов учебника была демонстрация возможностей языка С++.
Авторы на свое усмотрение выделили некоторые важные, по их мнению, темы и сделали их детальный разбор. Иные же стороны языка программирования С++ даются в виде задач. Главы сопровождаются емкими резюме и списком новых терминов, что помогает эффективному усвоению материала.
Читатель знакомый с азами программирования сможет быстро освоить информацию из книги и начать полноценно работать с языком.
Язык программирования C++
Автор: Стивен Прата
Фундаментальный труд Стивена Прата, в котором рассматриваются навыки обектно-ориентированного, обобщенного и процедурного программирование. Объем знаний, представленный в книге, колоссален, недаром в нем 1450 страниц.
В учебнике дается множество вспомогательного материала для изучения: иллюстраций, схем и таблиц. На страницах учебника обучающийся найдет задачи и упражнения на развитие продвинутых навыков написания программных решений.
Отличительная особенность учебника заключается в легкости изложения и восприятия информации, сказывается богатый опыт преподавания автора в университете. Учебник подойдет людям, обучающимся в университетах на IT, а также тем, кто готов самостоятельно изучить язык С++.
При изучении программирования на С++ или других языках, следует знать, что лучше пользоваться учебниками, написанными на языке оригинала. Перевод часто выполняется людьми далекими от области IT, поэтому в тексте возможны фактические ошибки и неточности.

Метапрограммирование шаблонов C++ в задачах математической физики. М.М. Краснов
Рассматривается применение метапрограммирования шаблонов языка C++ для упрощения записи алгоритмов .
English
The C programming language. 2 ed. B. W. Kernighan, D. M. Ritchie
The computing world has undergone a revolution since the publication .
Test Driven Development for Embedded C. J. W. Grenning
I was first exposed to Test-Driven Development at the first .
C Programming in Linux. David Haskins
So where do we start? A sensible place is “at .
Structured Programming with C++. Kjell Bäckman
The purpose of the course Structured Programming with C/C++ is .
Understanding and Using C Pointers. R. M. Reese
Numerous books have been written about C. They usually offer .
Programming in C. S. G. Kochan
The C programming langguage was pioneered by Dennis Ritchie at .
API Design for C++. Martin Reddy
API Design for C++ provides a comprehensive discussion of Application .
The C++ Standard Library. Nicolai M. Josuttis
The Best-Selling C++ Resource Now Updated for C++11
The .
C++ Templates. David Vandevoorde, Nicolai M. Josuttis, Douglas Gregor
Templates are among the most powerful features of C++, but .
Effective Modern C++. Scott Meyers
Topics include:
The pros and cons of braced initialization, .
Objective-C for Absolute Beginners. Gary Bennett, Brad Lees, Mitchell Fisher
Learn Objective-C and its latest release, and learn how to .
Optimized C++. Kurt Guntheroth
This book is here to help you get your job .
Литература по С++
Когда я учился такой книги, к сожалению, не было. Книга толстая, но читать ее интересно. Автор не является членом комитета стандартизации языка, а преподает в ВУЗе, поэтому написал не справочник, а учебник. Это лучший учебник по С++, который я видел. Прата собрал весь свой педагогический опыт и сделал упор именно на те аспекты, с которыми у студентов возникают проблемы (как ни странно, но у моих студентов те же самые проблемы, поэтому я рекомендую им эту книгу). Книга новая и в ней описывается новый стандарт. Специально под фичи С++11 выделено всего 50 страниц, но по ходу всей книги делаются небольшие отступления на эту тему.
Хорошая книга от автора языка. Текст книги сухой, хотя в ней есть примеры, советы по поводу «хорошего кода» и даже упражнения. Лично я, использую ее в качестве справочника — как учебник книга вряд ли может сравниться с произведением Прата.
Рецензия от другого, уважаемого мной программиста:
Бьерн Страуструп — это удивительный человек, сочетающий в себе несочетаемые вещи. Во-первых, это человек, придумавший один из самых гениальных языков современности. Во-вторых, это человек, дающий ужасающие рекомендации по программированию на собственном языке.
Если вы уже успели потратить свои деньги на приобретение этой книги, то будьте бдительны. Отнеситесь к ней как к справочнику возможностей языка C++ и не воспринимайте близко к сердцу советы, которые дает автор книги (за исключением банальных типа инкапсуляции данных).
У меня сложилось впечатление, что книга писалась в жутко укуренном состоянии. Совершенно никакой последовательности мысли. Напоминает письмо дяди Федора из Простоквашино. Читается тяжело и муторно, насквозь пронизана бессмысленными и никому не нужными лирическими отступлениями.
Когда я впервые читал эту книгу в русскоязычном издании, я долго не мог понять, какому идиоту пришло в голову сверстать исходники наклонным, и главное, не моноширинным шрифтом. Когда я узнал, что предпочтения относительно шрифта исходили от самого автора, мне вообще поплохело.
Диагноз
Данная книга категорически противопоказана неокрепшим умам. Если ее и стоит читать, то только тогда, когда вы научитесь безошибочно отделять плохие рекомендации от хороших. Чтение этой книги с целью получения новых знаний похоже на добычу золота из морской воды.
Две книги Скотта Мейерса для углубленного изучения С++. Выполнены в виде сборников правил типа: «Никогда не вызывайте виртуальные функции в конструкторе или деструкторе». Правила касаются понимания концепций объектно-ориентированного программирования, вопросов управления памятью, обработки ошибок и эффективности кода. К правилами прилагается исчерпывающее объяснение. В очень небольшой части материал книг пересекается, но в целом, они дополняют друг друга. Начать изучение стоит с книги «35 рекомендаций» — она попроще.
Отзыв от уважаемого мной программиста:
Если вы будете читать эту книгу впервые, то сначала у вас закипит мозг, после чего вы свалитесь со стула, а после того, как придете в себя, первой вашей мыслью будет фраза «Них#я себе, что можно на C++ вытворять!».
Это одна из тех редких книг, которую нужно прочесть всем, кто желает стать настоящим профессионалом своего дела.
Книга рассказывает об основных паттернах проектирования с упором на их реализацию. Особый восторг вызывают фирменные метапрограммные рецепты господина Александреску.
Единственным, но в то же время практически незаметным недостатком, я считаю несколько недостаточное внимание, уделенное разделению предлагаемых подходов на хорошие и плохие. Однако, если ваш мозг будет в состоянии понять, о чем же именно рассказывает эта книга, то такое разделение вы сможете сделать самостоятельно без особого труда.
Отзыв от уважаемого мной программиста:
На мой взгляд это одна из лучших книг (если не самая лучшая) из серии «C++ In-Depth». Коротко, просто и по делу. Ничего лишнего, ни одной плохой рекомендации. Создается ощущение, что читаешь некий доклад о том как нужно программировать, основанный на опыте всех программистов, полученном с момента создания языка C++, из которого тщательным образом было отобрано только самое лучшее и выкинута вся муть, которую выдумывают современные воспаленные мозги.
Остается добавить, что само название, «101 правило и рекомендация», это не просто бойкое маркетинговое название, выдуманное молодым маркетологом-энтузиастом. Книга действительно представляет собой сто одну коротенькую рекомендацию по программированию.
Если вы еще не успели прочитать эту книгу, то я рекомендую вам сделать это без отлагательств — результат превзойдет все ваши ожидания.
Краткое содержание книги прекрасно описано в первой главе, не буду дублировать, перечислю лишь то, что привлекло внимание.
Первая часть посвящена языку С++, ее можно рассматривать как очень краткое, но глубокое введение в язык.
— во второй главе приведено очень поверхностное изложение тонкостей С++, а также множество коварных фрагментов кода, на которых можно проверить знаете ли вы язык в достаточном объеме чтобы читать дальше или нет.
— третья глава посвящена шаблонам (templates). Если вы до этого не сталкивались с ними — то по приведенному материалу сможете разобраться. Все, что там описано работает, но стоит учитывать, что книга писалась в 90х годах, сейчас возможности шаблонов гораздо шире.
— глава 4 посвящена обработке исключений, написана в том же стиле, что и третья. Можно использовать как полноценный учебник.
Во второй части книги рассказывается про умные указатели и итераторы. Очень подробно, про всякие разные. Поразительно, что по этой теме написано так много… Например, про умные указатели писал в своих книгах Майерс, но совсем с другой стороны. Наиболее понравилась глава 7 про «грани и другие мудрые указатели» и глава 9 «транзакции и гениальные указатели».
В части 3 речь идет о двойной диспетчеризации, производящих функциях и, опять же, умных (на этот раз «невидимых») указателях. Материал местами отдает академизмом, но все равно интересно.
В четвертой части речь идет о памяти — перегрузке операторов new и delete, при этом описывается несколько алгоритмов, которые могут улучшить работу с памятью в ваших программах, в том числе уплотнения памяти и сборки мусора. Мое личное мнение — все это интересно, но реализовать качественно эти алгоритмы слишком сложно и не совсем очевидны случаи когда стоит это делать. Так, например, недавно я публиковал аннотацию на доклад по похожей теме: https://vk.com/wall-105242702_701, в котором нечто подобное (не все) реализовано в malloc. Вероятно, в тех редких случаях, когда вас не устраивает стандартный malloc — можно использовать другую реализацию.
Резюме: книга интересная. Первая глава однозначно имеет практическую направленность. Остальная часть книги интересна, полезна для кругозора и местами на практике (например раздел по двойной диспетчеризации).
Многие ребята, занимающиеся промышленной разработкой на С++ сообщили мне, что не читали эти книги, но хотели бы (времени нет). Нужно ли вам читать их или вы уже знаете STL? — выяснить это я предлагаю так: