Книги для изучения c


Книги по программированию на C. Учебники по C++ для начинающих и профессионалов

(голосов: 3) | 20 января 2014 | Просмотров: 11153   
Название: Параллельное программирование с использованием OpenMP Автор: М. П. Левин Издательство: Интернет-университет информационных технологий, Бином. Лаборатория знаний Год: 2012 ISBN: 978-5-94774-857-4 DJVU: 4 Мб

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

Книги по C и C++, Книги по Фортран
(голосов: 6) | 6 января 2014 | Просмотров: 38647   
Название: Язык программирования C++. Лекции и упражнения, 6-е издание Автор: Стивен Прата Издательство: Вильямс Год: 2012 ISBN: 978-5-8459-1778-2 DJVU: 10 Мб (с исходным кодом)

Написанное одним из авторов ставшего классикой учебника "Язык Си", это пособие продолжает дело, начатое своим предшественником, и знакомит читателя уже с теорией и практикой языка Си++ в реализации стандарта "Си++ 2011". Прозрачная и стройная логика учебника Стивена Праты поможет вам освоить ту базу, без которой невозможен "высший пилотаж" в объектно-ориентированном программировании.

Книги по C и C++
(голосов: 1) | 24 декабря 2013 | Просмотров: 7918   
Название: Borland C++ Builder. Библиотека программиста Автор: Мэтт Теллес Издательство: Питер Год: 1998 ISBN: 5-314-00107-1 PDF: 4 Мб + 15 Мб (исходный код)

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

Книги по C и C++
(голосов: 7) | 26 августа 2013 | Просмотров: 31047   
Название: C++: базовый курс Автор: Герберт Шилдт Издательство: Вильямс Год: 2008 ISBN: 978-5-8459-0768-4, 5-8459-0768-3, 0-07-222897-0 DJVU: 11 Мб

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

Книги по C и C++
(голосов: 2) | 4 августа 2013 | Просмотров: 15759   
Название: Программирование шахмат и других логических игр Автор: Евгений Корнилов Издательство: БХВ-Петербург Год: 2005 ISBN: 5-94157-497-5 DJVU: 3 Мб

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

Теги: программирование игр
Книги по C и C++, Книги по Pascal
(голосов: 1) | 14 июля 2013 | Просмотров: 17631   
Название: Особенности объектно-ориентированного программирования на C++/CLI, C# и Java Автор: Медведев В. И. Издательство: РИЦ «Школа» Год: 2010 ISBN: 978-5-4233-0007-4 PDF: 11 Мб

Рассмотрены основы и методы программирования на таких объектно-ориентированных языках, как C++/CLI, C# и Java (J#). Изучение их основных составляющих сопровождается детальным рассмотрением практических примеров. Более подробно рассмотрены самые сложные для понимания объекты и классы. Учебник ориентирован как на студентов и преподавателей профильных вузов, так и на профессионалов, имеющих опыт программирования на C++.

Теги: ооп
Книги по C и C++, Книги по C# (.NET), Книги по Java
(голосов: 9) | 4 июля 2013 | Просмотров: 20060   
Название: Visual C++ 2010. Полный курс Автор: Айвор Хортон Издательство: Вильямс Год: 2011 ISBN: 978-5-8459-1698-3 DJVU: 55 Мб + 132 Мб (исходный код)

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

Книги по C и C++
(голосов: 0) | 2 июля 2013 | Просмотров: 3036   
Название: Программирование для Windows 95. Том II Автор: Ч. Петзолд Издательство: BHV - Санкт - Петербург Год: Мастер. Руководство для профессионалов ISBN: 1997 PDF: 4 Мб (с исходным кодом)

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

Книги по C и C++
(голосов: 0) | 2 июля 2013 | Просмотров: 4079   
Название: Программирование для Windows 95. Том I Автор: Ч. Петзолд Издательство: BHV - Санкт - Петербург Год: 1997 ISBN: 1-55615-676-6, 5-7791-0020-9 PDF: 5 Мб (с исходным кодом)

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

Книги по C и C++
(голосов: 4) | 25 июня 2013 | Просмотров: 10436   
Название: Практикум по программированию на С++ Автор: Е. Л. Романов Издательство: БХВ-Петербург, Новосибирский государственный технический университет (НГТУ) Год: 2004 ISBN: 5-94157-553-Х, 5-7782-0478-7 PDF: 10 Мб

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

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

Категории

Магазин книг

Архив новостей

Опрос

Теги

progbook.ru

С чего начать изучение C++

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

2002 год

1.8 МБ

0.0

скачиваний: 2324

Электронная книга известного эксперта по языку C++ Стенли Липпмана написана в соавторстве с Жози Лажойе, принимавшем активное участие в разработке международного стандарта C++. Несмотря на подзаголовок "Вводный курс" настоящее издание является исчерпывающим руководством для изучения соврем...

2001 год

5.41 МБ

0.0

скачиваний: 2490

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

2002 год

4.47 МБ

0.0

скачиваний: 1781

В этой книге описаны все основные средства языка C++ — от элементарных понятий до супервозможностей. После рассмотрения основ программирования на C++ (переменных, операторов, инструкций управления, функций, классов и объектов) читатель освоит такие более сложные средства языка, как механизм об...

2010 год

10.54 МБ

9.6

скачиваний: 10605

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

2005 год

3.83 МБ

0.0

скачиваний: 1543

Книга является одним из самых популярных в мире учебников по C++. Характерной ее особенностью является "раннее введение" в классы и объекты, т. е. начала объектно-ориентированного программирования вводятся уже в 3-й главе, без предварительного изложения унаследованных от языка C элементов ...

2008 год

18.49 МБ

9.2

скачиваний: 11285

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

2002 год

10.7 МБ

0.0

скачиваний: 2080

Благодаря этой книге тысячи пользователей овладели технологией объектно-ориентированного программирования (ООП) в С++. В ней есть все: основные принципы языка, готовые полномасштабные приложения, небольшие примеры, поясняющие теорию, и множество полезных иллюстраций. Книга пользуется стабильным у...

2004 год

47.88 МБ

8.4

скачиваний: 4788

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

2004 год

4.81 МБ

8.9

скачиваний: 2140

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

2005 год

45.5 МБ

0.0

скачиваний: 1364

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

2013 год

24.2 МБ

0.0

скачиваний: 2561

mexalib.com

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.

proglib.io

Исчерпывающий список книг для освоения C++

Все мы знаем, что книга — не только хороший друг, но и отличный учитель. В представленной подборке вы найдете список книг, с помощью которых вы сможете как выучить C++ с нуля, так и углубить свои знания в этой области. Итак…

Для новичков

Без опыта в программировании
  • Программирование: принципы и практика в С++ (Бьёрн Страуструп) (обновлено для С++11/С++14) Введение в С++, написанное создателем этого языка. Хорошая книга, предполагающая, что у читателя нет никакого опыта в программировании, но полезная не только для новичков.
С опытом в программировании
  • Учебник для начинающих: С++ (Стэнли Липман, Джосе Ладжойе, Барбара Му) (обновлено для C++11) Тысяча страниц очень подробного введения в C++, которое детально покрывает буквально все аспекты языка в доступном формате. Пятое издание (выпущено 16 августа 2012-ого) обновлено для С++11. [Обзор]
  • Тур в С++ (Бьёрн Страуструп) «Тур» — это быстрый (примерно 180 страниц и 14 глав) обзор возможностей С++ и его стандартной библиотеки (стандарт С++11) на достаточно высоком уровне для программистов, которые уже знакомы с языком, или, по крайней мере, имеют значительный опыт в программировании. Эта книга — расширенная версия материала глав 2–5 из четвертого издания «Языка программирования С++».
  • Ускоренный С++ (Эндрю Кёниг и Барбара Му) Содержит в себе все то же самое, что и «Учебник для начинающих: С++», но короче в 4 раза. В основном это из-за того, что автор не пытается ввести читателя в программирование, а сразу учит С++ тех, кто пришел с других языков. Может быть немного сложна для понимания, но тем, кто сможет курс осилить, это еще и здорово сократит время изучения.
  • Думаем на С++ (Брюс Эккель) Два тома, доступные всем желающим. Здесь можно скачать первый и второй. К сожалению, они переполнены довольно тривиальными ошибками (например, они утверждают, что временные объекты обязательно const), и к тому же к ним нет официального списка поправок. Неофициальный список для третьего издания доступен здесь, но он больше не обновляется.
Лучшая практика

Подробное описание книг этого раздела приводится в нашем материале о бестселлерах Скотта Мэйерса.

  • Эффективный С++ (Скотт Мэйерс) Эта книга была написана как обязательная к прочтению для C++ программистов, и эта цель была достигнута. Ранние издания были нацелены на специалистов, пришедших с С, третье издание поменяло свой курс на мигрирующих с Java и подобных ей языков. Содержит около 50 легко запоминающихся правил, написанных и объясненных в доступной форме. [Обзор]
  • Эффективный и современный С++ (Скотт Мэйерс) Новая версия предыдущей книги, нацеленная на программистов, переходящих с C++03 на C++11 и C++14.
  • Эффективная STL (Скотт Мэйерс) Содержит в себе правила по эффективному использованию стандартной библиотеки C++. [Обзор]

Для продвинутых

  • Более эффективный С++ (Скотт Мэйерс) Еще больше правил и рекомендаций, чем в «Эффективный С++». Они не настолько важны, как описанные в первой книге, но их знание будет плюсом.
  • Исключительный С++ (Герб Саттер) Представляет из себя набор задачек, содержит подробное обсуждения управления ресурсами и безопасностью исключений в С++ с помощью идиомы «Получение ресурса есть инициализация» (англ. RAII) в добавок к глубокому покрытию множества тем, включая идиому pimpl, проверке имен, хорошему дизайну классов и модели памяти С++. [Обзор]
  • Еще более исключительный С++ (Герб Саттер) Рассматривает некоторые темы, не поднятые в предыдущей книге, в дополнение к обсуждению эффективного ООП в С++ и корректному использованию STL. [Обзор]
  • Исключительный стиль С++ (Герб Саттер) Обсуждает дженерик-программирование, оптимизацию и управление ресурсами. Эта книга — отличный пример того, как надо писать модульный код в С++, используя non-member функции и принцип единой ответственности. [Обзор]
  • Стандарты программирования на С++ (Герб Саттер и Андрей Александреску) «Стандарты» здесь — это не «сколько пробелов я должен ставить перед новой строчкой?», а советы по написанию кода, идиомы и чаще всего встречающиеся грабли, которые помогут вам писать корректный, понятный и эффективный код на С++. [Обзор]
  • Шаблоны С++: полное руководство (Дэвид Вандервуд и Николай Джосаттис) Это книга о шаблонах в том виде, в котором они существовали до С++11. Она покрывает все от самых начал до продвинутого шаблонного метапрограммирования, подробно объясняет, как работают шаблоны, обсуждает некоторые распространенные грабли. В приложениях несколько замечательных извлечений из правила одного определения (англ. ODR). Второе издание запланировано на 2016-ый. [Обзор]

Для профессионалов

  • Современный дизайн в С++ (Андрей Александреску) Книга по продвинутому обобщенному программированию. Описывает фундаментальные идиомы обобщенного программирования, показывая, сколько полезных паттернов (например, аллокаторы маленьких объектов, функторы, фабрики, посетители и мультиметоды) может быть реализовано эффективно, модулярно и исключительно средствами дженерик-программирования. [Обзор]
  • Шаблонное метапрограммирование в С++ (Дэвид Абрамс и Алексей Гуртовой)
  • Многопоточность в действии в С++ (Энтони Вильямс) Книга, рассказывающая о поддержке многопоточности в С++11. Включает в себя описания библиотеки потоков, atomics-библиотеки, модели памяти С++, блокировок и мьютексов (взаимных исключений) вместе с распространенными проблемами дизайна и дебага мультипоточных приложений.
  • Продвинутое метапрограммирование в С++ (Дэвид Ди Геннаро) Руководство, написанное до выхода С++11, фокусирующееся больше на практике, чем на теории. Содержит множество примеров кода, рассказывает о приемах, которые, без сомнения, полезно знать. Если вы сможете смириться с плохим оформлением, то читать эту книгу легче, чем Александреску, и, что спорно, почерпнете из нее больше. Даже профессиональные разработчики смогут почерпнуть отсюда что-то новое для себя.

Справочники для всех уровней

  • Язык программирования С++ (Бьёрн Страуструп) (обновлено для С++11) Классическое введение в С++, написанное автором этого языка. Легко читается и покрывает все аспекты технологии, начиная от самого языка и стандартной библиотеки и заканчивая парадигмами программирования и философией С++ (последние издания преодолели барьер в 1000 страниц). [Обзор] Четвертое издание (выпущенное в мае 2013-ого) покрывает и С++11.
  • С++: справочник по стандартной библиотеке (Николай Джосаттис) (обновлено для С++11) Введение и справочник по стадартной библиотеке С++. Второе издание (выпущенное 9 апреля 2012-ого) покрывает С++11. [Обзор]
  • Потоки и локали в С++ (Анжелика Лангер и Клаус Крефт) Если вы хотите знать все о потоках и локалях, то это та самая книга, которая содержит ответы на все ваши вопросы. [Обзор]
Справочники по С++11
  • Стандарт С++ ПОЛНЫЙ справочник по всему С++. Предназначен только для профессионалов, которые готовы потратить кучу времени и усилий на его изучение и понимание. Как обычно, первое издание было весьма дорогим (300 долларов США), но сейчас в электронной форме оно стоит 60 долларов.
  • Обзор нового С++ (С++11/С++14) (Скотт Мэйерс) Материалы презентации (слайды и заметки лектора) с трехдневного тренировочного курса, проведенного Скоттом Мэйерсом, который считается уважаемым писателем в данной сфере. И хотя количество поднятых тем мало, качество на высоте.

Классика / Устаревшее

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

  • Дизайн и эволюция С++ (Бьёрн Страуструп) Если вы хотите знать, почему язык перед нами сейчас в таком виде, в каком он есть, то эта книга для вас.
  • Размышления о С++ (Эндрю Кёниг и Барбара Му) [Обзор]
  • Продвинутые стили программирования и идиомы в С++ (Джеймс Коплен) Предшественник движения «паттернов», описывает множество С++-специфичных идиом. Отличная книга, стоящая чтения, если у вас есть время на нее, но она уже довольно старая и содержит неактуальную информацию.
  • Дизайн больших проектов на С++ (Джон Лакос) Лакос объясняет то, как лучше разрабатывать и содержать очень большие проекты, написанные на С++. Была бы хорошей книгой, если бы не давно устарела. Она была написана еще до С++98 и не рассказывает о множестве возможностей, важных для разработки больших проектов. Если вам приходится работать над такими проектами, то вы, возможно, захотите ее прочитать. Новое издание ожидается в конце 2015.

Перевод статьи «The Definitive C++ Book Guide and List»

tproger.ru

Programming stuff: Книги для изучения C#/.NET

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

Пришло время немного переформатировать старый пост с "классическими книгами по C#/.NET", чтобы отразить не просто список достойных источников для изучения C#/.NET, но и упростить выбор нужных книг в зависимости от уровня и потребностей читателя.

Для новичка в программировании

Ни одна из книг не научит вас программированию, а книги о конкретном языке или платформе обычно даже не пытаются этого сделать. Путь профессионального программиста достаточно труден и мечты стать профессионалом за 21 день всегда будут оставаться мечтой (помните о замечательной статье – Teach Yourself Programming in Ten Years?).

Именно поэтому книги о C#/.NET вряд ли будут лучшими источниками, если вы хотите научиться основам программирования, правильному кодированию, или дизайну. Для этого есть масса других источников и упомянуть хочется лишь несколько базовых книг по разработке ПО: "Структура и интерпретация компьютерных программ" Харольда Абельсона и Джеральда Сассмана (MIT), "Почувствуй класс" Бертрана Мейера (MIT) и "Программирование. Принципы и практика использования С++" Бьярне Страуструпа (Texas A&M University). Каждая из этих книг обкатана на тысячах студентов в различных университетах и являются общепризнанной классикой. (Интересно, что в этих книгах используются разные методологии: SICP – ФП и Scheme, в книге Мейера – OO и Eiffel, а у Страуступа – в структурное + ОО программирование на языке С++.)

Для новичка в .NET

Выбор книги для новичка в C#/.NET зависит того, что понимается под понятием "новичок": это новичок в C#/.NET или новичок в программировании? Если у вас есть 3+ опыта в С++, Java или другом высокоуровневом языке программирования, то разумнее будет сразу перейти к списку книг для продвинутых .NET разработчиков.

В противном случае подойдет практически любая обзорная книга о C# и платформе .NET, при этом классическим примером такой книги является книга Эндрю Троелсена:

"Язык программирования C# 5.0 и платформа .NET 4.5", Эндрю Троелсен, 6-е издание, 2012

В отличии от всех других книг, приведенных в этом списке, лишь эта книга не предполагает практически никакого опыта со стороны читателя. Поэтому в книге рассказывается о циклах, объявлении переменных и основах ООП. Также это единственная "универсальная" книга в списке, которая покрывает самые разные технологии платформы .NET: ASP.NET, WPF, WWF, WCF, ADO.NET, а также основы языка C#, отражение, процессы/потоки/домены, многопоточность и ввод-вывод.

Дополнительные ссылки: amazon.com, goodreads.com, ozon.ru (ru)

 

Для продвинутого .NET разработчика

Еще раз напомню, что под "продвинутым" в данном случае имеется ввиду скорее ваш собственный уровень зрелости, а не " продвинутое" знание C#/.NET. Так, если вы хорошо знаете С++, то чтение Троелсена будет пустой тратой времени, поскольку вы будете стараться понять, как же C#/.NET устроен внутри, чего книга Троелсена просто не даст.

Так что если вы чувствуете в себе силы копнуть глубже, то лучше всего выбрать одну книгу из списка ниже. При этом выбор должен основываться на следующем критерии: если интересны внутренности платформы .NET/CLR + многопоточность, то это книга Джеффри Рихтера, если же больше интересен именно язык C# - то это книги Албахари или Барта де Смета (при этом у Албахари будет побольше описания базовой библиотеки классов). Если вы уже неплохо знаете C# и хочется ускоренного глубокого погружения, то нужно брать книгу Джона Скита или книги Билла Вагнера.

Книги, ориентированные на платформу .NET

“CLR via C#”, Джеффри Рихтер, 4-е издание, 2012

С момента выхода языка C# и платформы .NET прошло без малого десять лет и за это время появилось немало отличных книг и статей, но при этом одна книга была и будет настоящей классикой в этой области. Я не знаю ни одной другой книги, которая бы пользовалась такой бы популярностью все эти годы, которую бы столько цитировали и советовали другим. Основное преимущество этой книги заключается в фирменном стиле Рихтера, невероятной глубине изложения и отличной подаче материала. Эта книга посвящена именно платформе .Net, ее фундаментальным основам и основным компонентам; в ней практически нет ничего о конкретном языке программирования, за исключением тех мест, когда автор рассказывает о том, как поступает компилятор в тех или иных случаях. Эта книга уже давно заслужила свое место на полке каждого профессионального .Net разработчика и в дополнительных рекомендациях, в общем-то, не нуждается.

Дополнительные ссылки: рецензия, amazon.com, goodreads.com, ozon.ru (ru)

"Программирование на платформе .NET", Дон Бокс, Крис Селлз, 2002

Что вы скажете о книге, в которой для знакомства с платформой .NET советуют книгу Рихтера для ознакомления с темой, поскольку в противном случае, ее, родимую, читать будет сложновато? Так вот, именно Дон Бокс, гуру технологии COM (который правда и сам на нее уже не может смотреть) и Крис Селлз (тоже славный малый) осмелились на это в своей книге. И совет этот, действительно полезен, поскольку авторы иногда залазят в такие дебри, что без бУтыля – никуда. Многие темы, такие как взаимодействие управляемого и неуправляемого кода или механизм кросс-доменного взаимодействия описан просто невероятно подробно. Конечно, некоторые темы уже устарели (ведь книга вышла в далеком 2002 году), но большинство из них будут актуальны на протяжении всего времени жизни платформы .NET.

Дополнительные ссылки: amazon.com, goodreads.com, ozon.ru (ru)

Книги, ориентированные на язык C#

“C# 5.0 Unleashed” by Bart De Smet, 2nd Edition, 2012

Представьте себе, что Рихтер таки нашел в себе силы и добавил в последнее издание не сотню новых страниц о многопоточности, а полностью переработал книгу и добавил туда сотню страниц по DLR (Dynamic Language Runtime), сотню страниц по лямбда-выражениям и деревьям выражений, еще сотню страниц с советами по работе в Visual Studio, полторы сотни страниц по LINQ-у, да еще и о контрактах не забыл. Добавьте сюда отличные картинки, которые иллюстрируют ход мыслей автора и помогают понять тот или иной аспект рассматриваемой темы; сотню сносок, в которых автор рассказывает, почему были приняты те или иные решения разработчиками языка или платформы, не забудьте о лирических отступления на разные теоретические аспекты программирования - и вы получите одну из лучших книг о языке C# и платформе .Net, которая когда-либо выходила в свет! И, кстати, в отличие от того же Троелсена, в этой книге вы не встретите никаких WPF-ов, WCF-ов или других ASP.NET-ов, все 1650 (!) страниц книги посвящены «всего лишь» языку C# и фундаментальным основам платформы .Net. Сочетание широты охвата и глубины изложения делает эту книгу одним из лучших источников информации для всех, кто хочет заняться изучением языком C# или пополнить свои знания в одной из тем.

Дополнительные ссылки: мнение, amazon.com, goodreads.com

“C# 5.0 in a Nutshell” by Joseph Albahari, Ben Albahari, 5th Edition, 2012

Это еще один фундаментальный труд, объемом немногим более тысячи страниц, посвященный исключительно языку программирования C# и платформе .NET. И хотя у нас принято считать книгу Рихтера настоящей классикой, а ко всем остальным относиться с пренебрежением, книга братьев Албахари действительно заслуживает внимание. В этой книге рассматриваются практически все ключевые темы, касающиеся языка C# и платформы .NET, начиная от таких распространенных тем, как многопоточность, сборка мусора, сборки, домены, LINQ, заканчивая менее распространенными темами, как контракты, сериализация, потоковый ввод/вывод и регулярные выражения. И хотя глубина изложения иногда может не дотягивать до некоторых других представителей, в ней отлично соблюден баланс между сложностью изложения и практичностью, так что этой книги в большинстве случаев достаточно для глубокого понимания соответствующей темы.

Дополнительные ссылки: amazon.com, goodreads.com, ozon.ru (ru)

“C# in Depth” by Jon Skeet, 3d Edition, 2013

Если вы когда-либо осмелитесь задать вопрос на StackOverflow.com о том, чтобы почитать для повышения своих знаний о языке C#, то он будет закрыт примерно через 3,5 секунды, как дубликат одного из сотен (!) сообщений, при этом в большинстве из них в первом же ответе будут советовать книгу Джеффри Рихтера, если речь касается еще и CLR и платформы .NET, и книгу Джона Скита, если речь идет о языке C#. Конечно, немаловажную роль в этом играет статус Джона Скита на StackOverflow.com, но, тем не менее, правда в этом действительно есть. У Скита есть удивительная особенность рассказывать сложные вещи простыми словами; многие весьма непростые темы раскрыты очень подробно; автор рассказывает о том, как «думает компилятор» и, что немаловажно, о чем думали разработчики компилятора, принимая то или иное решение при реализации этой возможности.

Благодаря своей структуре, книга “C# In Depth” позволяет увидеть эту целостную картину языка C# и структурировать новые или существующие знания. На протяжении всей книги автор рассказывает об эволюции языка C#, рассматривая по ходу изложения проблемы, присущие предыдущим версиям и способы их решения в последующих версиях. При этом автор дает понять, каким путем идет развитие языка C#, прогнозируя его новые возможности и будущие изменения.

Дополнительные ссылки: рецензия, amazon.com, goodreads.com, ozon.ru (ru)

“Effective C# (Covers C# 4.0)”, “More Effective C#” by Bill Wagner, 2010, 2008

Тема эффективности использования стала настолько популярной, что подобная литература появляется по большинству языков программирования и многим технологиям. Язык программирования C# не является исключением. Представителем серии «эффективного программирования» на языке C# являются две книги Била Вагнера. Первая книга вышла еще в 2004-м году и посвящена C# 1.0; в ней рассматриваются самые разные вопросы, начиная от различий между классами и структурами, заканчивая важностью строгой гарантии исключений и проблемами взаимодействия управляемого и неуправляемого кода. Вторая книга вышла незадолго до официального выхода C# 3.0 и уже отражает всю специфику этой версии языка и платформы. В книге рассматриваются особенности работы с обобщениями (generics), многопоточностью (в том числе и при работе с пользовательским интерфейсом), новые возможности языка C# 3.0 и отдельно рассматриваются вопросы, связанные с LINQ. В марте 2010 года вышло второе, переработанное издание первой книги, в которой отражены изменения C# 4.0, включая такие новшества как PLINQ и тип Dynamic (которому посвящена целая глава).

Дополнительные ссылки для "Effective C#": рецензия, amazon.com, goodreads.com

Дополнительные ссылки для "More Effective C#": amazon.com, goodreads.com

Для эксперта

Несмотря на всю глубину глубин книг Рихтера, Барта Де Смета или Джона Скита, есть еще более специфические и более подробные источники по конкретным темам. Так, например, ни одна из книг выше не заменит аннотированную спецификацию языка C# Андерса Хейлсберга с прекрасными комментариями ведущих экспертов нашей области. Да и какими бы полными не были разделы о параллельном и асинхронном программировании в книгах Рихтера и Албахари, ничто не сможет сравниться с книгой Джо Даффи. А если вам потребуется копнуть действительно глубоко, то вам пригодятся знания по языку IL, и о том, как IL преобразуется в машинный код, и в этом случае будут полезны книги Сергея Лидина и Саши Голштейна соответственно.

“The C# Programming Language” by Anders Hejlsberg et al, 4th Edition, 2010

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

Дополнительные ссылки: amazon.com, goodreads.com, ozon.ru (ru)

“Concurrent Programming on Windows” by Joe Duffy, 2008

Самый подробный труд о многопоточном программировании под Windows. Здесь покрыты практически все темы: начиная от асинхронных моделей программирования в .NET (к сожалению не покрыта TAP – Task-based Asynchronous Programming) и асинхронным вводом-выводом, заканчивая моделями памяти и lock-free. Хотите сломать себе мозг об многопоточность? Книга Джо Даффи к вашим услугам!

В качестве дополнения к книге Джо Даффи можно посоветовать "Design Patterns for Decomposition and Coordination on Multicore Architectures", в которой покрыты TPL, PLINQ и другие темы, появившиеся уже после выхода книги Даффи.

Дополнительные ссылки: amazon.com, goodreads.com

“.NET 2.0 IL Assembler” by Serge Lidin, 2014

Сколько раз вам приходилось декомпилировать код, чтобы понять, как работает та или иная возможность компилятора C#? Или сколько раз вы смотрели на сгенерированный IL код, чтобы понять, что происходит внутри вашего любимого кода? Обе эти задачи возникают не слишком часто, да и Рефлектор со своей задачей отлично справляется в большинстве случаев. Но, тем не менее, знание языка ассемблера виртуальной машины никогда лишним не бывает, к тому же некоторые возможности CLR доступны только через него. Ну, а если когда-нибудь у вас появится желание или необходимость пополнить свои знания «управляемого» ассемблера, то неплохо иметь под рукой (или хотя бы знать о его существовании) отличное руководство, качество которого признано многими специалистами.

P.S. Сергей является автором языка IL;)

Дополнительные ссылки: amazon.com, goodreads.com

“Pro .NET Performance: Optimize Your C# Applications” by Sasha Goldshtein, 2012

Когда речь заходит о высокопроизводительных системах, то о C# и .NET Framework вспоминают в последнюю очередь. В этом есть разумное зерно, но что если вам все же нужно выжать все возможное из вашего "управляемого" приложения? В этом плане недостаточно спуститься с высокого уровня языка C# на уровень IL-кода, приходится копать глубже, на уровень машинного кода и внутренностей CLR. Именно для таких случаев нужна книга Саши Голшейна, известного блоггера и спикера.

"Pro .NET Performance" – это уникальная на данный момент книга с описанием внутреннего устройства типов, обобщений, с описанием тонкостей сборки мусора (например, с описанием Card Table) и другими экспертными техниками.

Дополнительные ссылки: amazon.com, goodreads.com, ozon.ru 

“Under the Hood of .NET Memory Management” by Chris Farrell, 2011

Небольшая (~200 страниц) книга о сборке мусора от компании Red Gate. Это отличная книга, в которой процесс сборки мусора показан несколько более детально, чем в любом другом источнике. Здесь довольно подробно описываются сегменты, card table, типичные проблемы перерасхода и утечек памяти, и даже кратко рассматривается модель памяти Windows.

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

Дополнительные ссылки: amazon.com, goodreads.com

 

Книги по проектированию

Ни одна из книг, представленных выше не даст нужных знаний об ООП, функциональном программировании, или о дизайне приложений. Если вам нужна книга по ООД, то нет ничего лучше книги Мейера "Объектно-ориентированное конструирование программных систем", о которой я говорю трижды в день десятку человек, но пока лишь двое решились за нее взятьсяJ.

Тем не менее, есть ряд книг о дизайне в контексте платформы .NET, на которые стоит обратить внимание. Во-первых, это знаменитая FDG – Framework Design Guidelines Квалины и Абрамса, которая должна быть настольной книгой любого .NET разработчика (и просто незаменима при разработке собственных coding conventions). Во-вторых, это замечательная книга Роя Ошерова "The Art of Unit Testing", в которой отлично описаны техники и приемы юнит-тестирования и их влияние на дизайн приложений. В-третьих, это уникальная в своем роде книга Марка Симана об управлении зависимостями в .NET, ну и книга Томаса Петрисека "Real-World Functional Programming", которая показывает связь ООП и ФП техник с примерами на C# и F#.

Ни одна из этих книг не заменит фундаментальных книг о дизайне, DDD или архитектуре приложений, но отлично подойдет в качестве дополнительного источника по этим темам.

“Framework Design Guidelines” by Krzysztof Cwalina, Brad Abrams, 2nd Edition, 2008

Разработка качественных систем является весьма сложной задачей, а разработка качественных библиотек (особенно фреймворков) является поистине вершиной мастерства архитекторов и разработчиков. Сложность здесь кроется в специфике принимаемых решений, ведь акцент серьезно смещается в сторону простоты и удобства использования, расширяемости и надежности. И хотя именно тема разработка библиотек является центральной, книга будет также невероятно полезна и простым разработчикам, ведь знание ключевых идиом языка является совершенно необходимым, когда команда смотрит хотя бы немного дальше своего носа, и заботится не только о написании кода, но и о его последующем сопровождении. Кроме того, книга очень часто выступает таким себе арбитром во многих спорах, касающихся идиом именования, обработке исключений, проектированию собственных классов или использованию других идиом языка C#; а поскольку такие дискуссии происходят с завидным постоянством, то подобный козырь лишним точно не будет.

Дополнительные ссылки: рецензия, amazon.com, goodreads.com, ozon.ru (ru)

“Dependency Injection in .NET” by Mark Seemann, 2011

Внедрение зависимостей (DI, Dependency Injection) – это уже чуть ли не де факто стандарт любого enterprise приложения. Но вот вопрос: помогает ли эта техника вместе с контейнерами создавать более простые в сопровождении и развитии системы? Не превратились ли контейнеры в очередной культ карго программирования? Поскольку любую технологию довольно легко использовать неправильно, то всегда полезно получить более фундаментальное представление о том, чем она является и чем она не является.

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

Дополнительные ссылки: рецензия, amazon.com, goodreads.com, ozon.ru (ru)

“The Art of Unit Testing with Examples in C#” by Roy Osherove, 2nd Edition, 2013

Паттерны не ограничиваются классическими паттернами, описанными в книге банды четырех. Паттерны повсюду: есть архитектурные паттерны, есть паттерны проектирования, есть DI-паттерны, есть DDD паттерны, есть паттерны рефакторинга, есть даже паттерны поведения. Точно также существуют паттерны разработки юнит-тестов. Есть типовые подходы к организации тестового кода для решения тех или иных задач. Лучшим источником по этой теме является фундаментальный труд "xUnit Test Patterns: Refactoring Test Code", а книга Роя является отличной книгой по этой же тематике в контексте платформы .NET.

Дополнительные ссылки: рецензия, amazon.com, goodreads.com, ozon.ru (rus)

“Real-World Functional Programming: With Examples in F# and C#” by Tomas Petricek and Jon Skeet, 2010

Что лучше ООП или ФП? Опыт последних лет (мой и многих других специалистов) показывает, что эти парадигмы не являются соперниками, а прекрасно дополняют друг друга. ООП рулит в области стратегии, а ФП незаменимо в вопросах тактики; ООП со своей абстракцией определяет крупные строительные блоки, а ФП со своей чистотой прекрасно справляется с вопросами реализации.

В этом плане книга Томаса Петрисека (с участием Джона "Stackoverflow" Скита) не слишком уникальна, но весьма полезна, поскольку дает представление о том, как думать в функциональном стиле и как это мышление влияет на дизайн и реализацию. Отличительной же особенностью этой книги являются примеры на языках C# и F#.

Дополнительные ссылки: amazon.com, goodreads.com

Книги по технологиям

Я не хочу детально описывать книги по конкретным технологиям, таким как WCF, WPF, ASP.NET (+MVC), Entity Framework и других. Причин здесь несколько: во-первых, очень сложно найти книгу, которая будет *значительно* выделяться среди конкурентов; во-вторых, цена ошибки при выборе неудачной книги в этом случае не столь велика. Наверняка книга с хорошим рейтингом даст вам все необходимые знания по конкретной технологии и вряд ли сможет существенно повлиять на ваши фундаментальные знания.

К тому же, книги по технологиям выходят настолько часто, что они устаревают буквально каждые полгода. Ниже представлен перечень книг по тройке технологий: WPF, WCF и ASP.NET MVC. Книги по другим технологиям готов обсудить в комментариях.

  • WCF: Inside Windows Communication Foundation by Justin Smith, 2007Книга хоть и старая, но будет полезна всем, кто решит заняться "расширением" WCF, путем написания собственных коммуникационных каналов и т.п. "продвинутыми" вещами.

Заключение

Еще раз хочу напомнить, что не стоит переживать, если вдруг вы не увидите своей любимой книги в этом списке. Моя цель дать набор хороших источников, которые покрывают определенную нишу и потребуются разработчику на определенном этапе его карьеры; при этом вполне понятно, что есть аналогичные книги, которые ничем не хуже некоторых приведенных книг. Так, например, "C# 5.0 Essentials" вполне может заменить книгу Джо Албахари "C# 5.0 In a Nutshell", но читать их обе не имеет практически никакого смысла.

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

sergeyteplyakov.blogspot.ru

Лучшие книги о языке программирования C++

Изучаете язык программирования C++ с нуля?

Для изучения основ этого объектно-ориентированного языка программирования понадобится много времени, терпения, компилятор C++, текстовый редактор, хорошие учебники и преподаватели.

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

Не жалейте времени на выполнение заданий и упражнений, если действительно хотите стать профессиональным программистом и разрабатывать на языке программирования C++.

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

Подборка этих книг окажет содействие в учебе и поможет в дальнейшей разработке.

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

2. Эккель Брюс. Философия C++

3. Герберт Шилдт. C++. Базовый курс

4. Стенли Липпман, Жози Лажойе. C++ для начинающих

5. Стивен Прата. Язык программирования C++

Бьярне Стауструп. Программирование: принципы и практика использования C++Уникальная книга от одного из разработчиков языка программирования C++, которая учит программировать. Каждая глава — самостоятельная тематическая статья, которая может быть прочитана последовательно при изучении всего материала, так и самостоятельно, при возникновении каких-либо трудностей в процессе разработке.

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

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

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

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

Эккель Брюс. Философия C++ (в двух томах)Одна из лучших книг по C++, которая должна быть в библиотеке каждого студента, изучающего программирование. Книга формирует у читателя глубокое понимание этого языка программирования и учит думать на C++. Книга предназначена для всех, кто занимается разработкой программного обеспечения.

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

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

Картинки, схемы, детальные объяснения – это очень достойная книга для чтения, если хотите научиться программировать на C++.

Помните, что C++ господствующий язык для разработки коммерческих продуктов и он очень похож на Java. У Брюса Эккеля есть еще замечательная книга «Философия Java», ее необходимо обязательно прочесть, когда начнете изучать Java.

В томе 2 «Философия C++. Практическое программирование» автор продолжает учить мыслить на C++ и рассматривает обработку исключений, стандартные библиотеки, паттерны проектирования, множественное наследование.

Читайте, изучайте и создавайте хорошие продукты.

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

В книге «C++: базовый курс» автор описал основные средства языка программирования C++ от элементарных базовых понятий до супервозможностей: история языка, ООП, типы данных, операторы, классы, шаблоны.

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

Стенли Липпман, Жози Лажойе, Барбара Э. Му. Язык программирования C++. Базовый курсАвторы не понаслышке знают, о чем пишут. Стенли Липпман разрабатывает приложения на языке программирования C++ в сфере 3D-графики для компаний Walt Disney, Жози Лажойе развивает ядро C++ в IMB Canada Laboratory, а Барбара Э. Му – программист со стажем и несколько лет проработала с Бьярне Страуструпом.

Книга «C++ для начинающих» придерживается учебного подхода, но не является первым учебным пособием по программированию, она подойдет тем, кто уже знаком с программированием, но желает изучить язык программирования C++.

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

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

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

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

Язык программирования C++ удивителен. Он сочетает в себе функциональные возможности языка С и принципы объектно-ориентированного программирования.

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

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

Книга подойдет новичкам, которые приступили к обучению в Академии или Университете, на курсах программирования или планируют освоить C++ самостоятельно.

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

 

kr.itstep.org

Книги по C++ скачать бесплатно

By kametoh Книги по C++

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

By kametoh Книги по C++

Многопользовательские игры. Разработка сетевых приложений: Сетевые многопользовательские игры — это многомиллиардный бизнес, привлекающий десятки миллионов игроков. Эта книга на реальных примерах рассказывает об особенностях разработки таких игр и основах построения надежной многопользовательской архитектуры. Вы узнаете об основах сетевого программирования с точки зрения разработчиков игр, управлении игрой через передачу данных, сетевых обновлениях, обеспечении надежной работы и

By kametoh Книги по C++

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

By kametoh Книги по C++

Рассмотрены нестандартные приемы программирования, а также примеры использования недокументированных функций и возможностей языка C++ при разработке шуточных программ и серьезных сетевых приложений для диагностики сетей, управления различными сетевыми устройствами и просто при повседневном использовании интернет-приложений. Во втором издании содержатся новые и переработаны старые примеры, а в качестве среды разработки используется Visual Studio 2008, хотя большинство

By kametoh Книги по C++

Если вы хотите научиться программировать первоклассные игры, вам просrо необходимо изучить язык С++. Эrа книга поможет вам освоить разработку игр с самых азов, независимо оттого, есть ли у вас опыт программирования. Гораздо интересней учиться, когда обучение превращается в игру. Каждая глава книги описывает самосrоятельный игровой проект. В заключительной главе вам предстоит написать сложную игру, коrорая

By kametoh Книги по C++

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

By kametoh Книги по C++

 Книга посвящена разработке приложений для Windows, Mac OS X и Linux с использованием библиотеки Qt версии 5.3. Подробно рассмотрены возможности, предоставляемые этой библиотекой, и описаны особенности, выгодно отличающие ее от других библиотек. Описана интегрированная среда разработки Qt Creator и работа с технологией Qt Quick. Книга содержит исчерпывающую информацию о классах Qt 5, и так же

bunkerbook.ru


Смотрите также