Книги — вещь для профессионалов, и книги для программистов — не исключение. В данной статье мы отобрали 9 книг для изучения языка C.
C — процедурный высокоуровневый язык, который, пожалуй, больше всего повлиял на то, каким мы сегодня видим программирование. Он был создан для того, чтобы обеспечить программисту низкоуровневый доступ к памяти компьютера, чтобы писать эффективный код, который требует минимальной поддержки во время работы. Множество языков программирования обязано C своим существованием. Некоторые называют C латынью в мире программирования.
Язык лёгок на чтение. Он позволяет программисту структурировать код и делать его более читабельным. К тому же, язык очень гибкий, практичный и компактный, с легко понимаемым синтаксисом. Код, написанный на C, работает быстро, обеспечивает низкоуровневый доступ к памяти. Директивы компилятора позволяют программе, скомпилированной на одной архитектуре, благополучно работать и на других. C очень многогранен, и о нём было написано много книг.
Предлагаем вашему вниманию 9 книг для изучения языка C, которые могут вас зацепить, если, конечно, английский для вас — не проблема. Надеемся, этот сборник книг станет для вас удачным началом изучения C.
Книга, написанная Майком Банаханом (Mike Banahan), Декланом Брэйди (Declan Brady) и Марком Дораном (Mark Doran).
«The C Book» открывает наш сборник книг. Она написана для программистов, которые уже имеют опыт в использовании других современных процедурных языков программирования. Книга фокусируется на особенных для C вещах. А именно, на том, ради чего 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. Нужно отметить, что книга написана не для новичков, а скорее для тех, у кого есть опыт.
Книга включает следующие главы:
Книга находится под бесплатной лицензией 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. Следует отметить, что всё описано очень кратко, так как книга направлена на программиста, который имеет опыт в использовании другого языка.
Содержание:
По словам автора, книга находится под лицензией open-source.
Книга написана Брайаном «Бидж» Холл (Brian «Breej» Hall).
Автор пытается привести читателя из состояния полной растерянности до состояния абсолютного понимания материала, и делает он это с использованием языка C.
Содержание:
Данная книга находится под лицензией Creative Commons Attribution-Noncommercial- No Derivative Works 3.0 License.
Книга написана Дженсом Густедтом (Jens Gustedt).
Книга призвана смотивировать читателя идти вверх и узнавать что-то новое. Она разделена на 5 отдельных частей:
Книга находится под лицензией Creative Commons Attribution-Noncommercial- No Derivative Works 3.0 License.
Книга написана Брайаном Гафом (Brian Gough).
Книга сама по себе, является этаким первым шагом в GNU C и C++ компиляторы — gcc и g++, которые являются частью GNU Compiler Collection (GCC).
Книга объясняет, как используются компиляторы. Основываясь на многолетних исследованиях, автор описывает читателю все самые важные аспекты GCC.
Книга находится под бесплатной лицензией GNU Free Documentation License.
Предлагаем вам ознакомиться ещё с рядом книг, которые можно скачать, но которые, к сожалению, находятся не под open-source лицензией, либо же информация о лицензии которых не ясна.
И под конец, моя рекомендация: приобретите каноничную книгу по языку C: The C Programming Language. Хоть она и не для начинающих, но очень часто упоминается как классическая книга для изучения C.
Подборка книг по C++ для любого уровня
Идеальная подборка книг для разработчиков
Самоучитель, который шаг за шагом расскажет об основных понятиях языка C++: переменные, инструкции управления, функции, типы и массивы данных, классы и объекты. Рассказано о перегрузках, управлении исключениями, наследовании, виртуальных функциях, полиморфизме, вводе/выводе.
Достоинства:
Недостатки:
Книга в оригинале в сообществе Книги для программистов
Эта классическая работа по вычислительной технике обучает принципам программирования, среди которых структурированный код и нисходящее проектирование, а также использованию классов, наследования, шаблонов, исключений, лямбда-выражений.
Достоинства:
Недостатки:
Книга в сообществе Книги для программистов
Принципы языка, готовые полномасштабные приложения, небольшие примеры, поясняющие теорию, и множество полезных иллюстраций. Книга пользуется стабильным успехом в учебных заведениях благодаря тому, что содержит более 100 упражнений, позволяющих проверить знания по всем темам.
Достоинства:
Недостатки:
Хотя автор книги одновременно является и автором языка, С++ играет сугубо иллюстративную роль. Автор задумал книгу как вводный курс по программированию. Описан широкий круг понятий и приемов программирования, необходимых для того, чтобы стать профессиональным программистом.
Если вы решили стать программистом, и уже знакомы с азами C++ – эта книга для вас, в первую очередь потому, что программирование – это не только, и не столько знание инструмента (языка программирования), сколько понимание самого процесса.
Достоинства:
Недостатки:
Эта книга не про сам язык, а про алгоритмы с примерами реализации на С++. В частях I—IV рассматриваются фундаментальные алгоритмы, структуры данных, сортировка и поиск. В них приведено подробное описание фундаментальных структур данных и алгоритмов для сортировки, поиска и сопутствующих приложений. В части V рассматриваются алгоритмы на графах, которые играют все более важную роль во множестве приложений, таких как сетевая связность, конструирование электронных схем, составление графиков, обработка транзакций и выделение ресурсов.
Преимущества:
Недостатки:
Книга в сообществе Книги для программистов
Эта книга посвящена возможностям языка, появившимся в C++11 и C++14. Рассказано, как эффективно использовать новые особенности, почему ту или иную задачу следует решать именно так., чтобы создаваемые программы были корректны, эффективны и переносимы.
Преимущества:
Недостатки:
Книга в оригинале в сообществе Книги для программистов
90 реалистичных примеров, которые демонстрируют всю мощь STL и станут базовыми кирпичиками для решения более универсальных задач. Описана работа с контейнерами, вспомогательными классами и лямбда-выражениями.
Достоинства:
Недостатки:
Книга в оригинале в сообществе Книги для программистов
В наши дни стали нормой компьютеры с многоядерными процессорами. Современные стандарты языка C++ предоставляют поддержку многопоточности. Вдумчиво читая книгу Уильямса, вы научитесь писать надежные и элегантные многопоточные программы на С++.
Преимущества:
Недостатки:
Как и указано на обложке, примеры есть и на C++, и на Java, для лучшего понимания желательно знать оба языка. Рассматриваются ООП, UML, паттерны, приемы гибкого и экстремального программирования, а также приводится детальное описание полного процесса проектирования для многократно используемых программ на C++ и Java.
Преимущества:
Недостатки:
Книга в оригинале в сообществе Книги для программистов
В книге, написанной создателем языка С++ Бьерном Страуструпом, представлено описание процесса проектирования и разработки языка программирования С++.
Изложены цели, принципы и практические ограничения, наложившие отпечаток на структуру и облик С++, рассказано о дизайне недавно добавленных в язык средств: шаблонов, исключений, идентификации типа во время исполнения и пространств имен. Автор анализирует решения, принятые во время работы над языком, и демонстрирует, как правильно применять «реальный объектно-ориентированный язык программирования».
Преимущества:
Недостатки:
***
Если вы не увидели любимую книгу в десятке, пожалуйста, не стесняйтесь порекомендовать ее в комментариях. Если вы читали перечисленные книги, дополните наши описания – какие преимущества и недостатки отметили бы вы.
Библиотека программиста любит язык C++. Вот три последних публикации:
Мы решили собрать в одну подборку самые, по нашему мнению, интересные книги нашего издательства, посвященные языку программирования C#. В посте собраны хорошие книги от пособий для начинающих (например, примелькавшаяся книга серии Head First) до изданий Джеффри Рихтера и Чарли Петцольда для практикующих программистов, в общем – на любой вкус по самым лучшим ценам в интернете.
Эта книга, выходящая в четвертом издании и уже ставшая классическим учебником по программированию, подробно описывает внутреннее устройство и функционирование общеязыковой исполняющей среды (CLR) Microsoft .NET Framework версии 4.5. Написанная признанным экспертом в области программирования Джеффри Рихтером, много лет являющимся консультантом команды разработчиков .NET Framework компании Microsoft, книга научит вас создавать по-настоящему надежные приложения любого вида, в том числе с использованием Microsoft Silverlight, ASP.NET, Windows Presentation Foundation и т.д. Четвертое издание полностью обновлено в соответствии со спецификацией платформы .NET Framework 4.5, а также среды Visual Studio 2012 и C# 5.0
Оглавление
Отрывок
Шестое издание этой легендарной книги пришлось ждать почти 15 лет! В своем новом труде Чарльз Петцольд, известный автор и один из пионеров Windows-программирования, рассказывает о разработке приложений для Windows Store с использованием C# и XAML в среде Windows Runtime. Первая часть книги «Основы» посвящена приемам, которые особенно важны для большинства рядовых программистов: сборке готовых элементов управления в приложении и их связыванию с кодом и данными. Здесь полностью объясняется весь программный код и разметка, генерируемая Visual Studio для разных шаблонов проектов. Во второй части книги «Специальные возможности» описываются низкоуровневые и нестандартные задачи — сенсорный ввод, растровая графика, расширенное форматирование текста, печать, работа с датчиками ориентации и GPS. Книга адресуется разработчикам, уверенно владеющим языком C#, которые хотят изучить API для разработки приложений для Windows 8.
Оглавление
Отрывок
Это четвертое издание главной книги по языку C#, написанной легендой программирования — Андерсом Хейлсбергом, архитектором C#, Delphi и Turbo Pascal, совместно с другими специалистами, входившими в группу разработчиков C# компании Microsoft. Издание является наиболее полным описанием языка и самым авторитетным источником информации по этой теме, построенным в формате сборника спецификаций, включающих в себя описание синтаксиса, сопутствующие материалы и примеры, а также образцы кода. Эта книга — своего рода «библия» разработчика, которая с легкостью может заменить как MSDN, так и остальные книги по C#. Четвертое издание содержит описание новых особенностей C# 4.0, включая динамическое связывание, именованные и необязательные параметры, а также ковариантные и контравариантные обобщенные типы. Цель этих новшеств — расширение возможностей C# для взаимодействия с объектами, не относящимися к платформе .NET. Отличительная особенность нового издания также состоит в том, что каждая глава книги содержит обширные комментарии, написанные известными «гуру» программирования, такими как Джон Скит, Джозеф Альбахари, Билл Вагнер, Кристиан Нейгел, Эрик Липперт и др.
Оглавление
Отрывок
Это первое практическое руководство по созданию приложений для Windows 8 охватывает весь жизненный цикл: от разработки шаблона проекта до публикации в Windows Store. Автор книги Джереми Ликнесс, ведущий специалист компании Microsoft, поможет использовать ваши навыки разработчика в работе с новыми инструментами Visual Studio 2012 для создания полезных и инновационных приложений. В книге рассмотрены и бизнес-приложения, и пользовательские приложения. При помощи тщательно отработанных загружаемых примеров кода и демонстрационных проектов автор показывает, как максимально использовать новые функции платформы, включая встраивание в социальные сети, поиск, расширения, контракты и мозаичное размещение.
Оглавление
Отрывок
В отличие от большинства книг по программированию, построенных на основе скучного изложения спецификаций и примеров, с этой книгой читатель сможет сразу приступить к написанию собственного кода на языке программирования C# с самого начала. Вы освоите минимальный набор инструментов, а далее примете участие в забавных и интересных программных проектах: от разработки карточной игры до создания серьезного бизнес-приложения. Второе издание книги включает последние версии C# 5.0, Visual Studio 2012 и .NET 4.5 Framework, и будет интересно всем, изучающим язык программирования С#. Особенностью данного издания является уникальный способ подачи материала, выделяющий серию «Head First» издательства O’Reilly в ряду множества скучных книг, посвященных программированию.
Оглавление
Отрывок
Ссылка на каталог книг
В самоучителе содержатся все необходимые нюансы параллельного программирования с применением OpenMP для создания современных высокопроизводительных параллельных вычислительных систем, обладающих общей памятью.Вся информация представлена в теоретическом виде с сопровождением наглядных примеров, при помощи которых читатель сможет быстрее освоить материал и запомнить его.
В книге «Параллельное программирование с использованием OpenMP» содержится только необходимая информация о параллельном программировании, которая направлена на создание производительных современных систем. Данная книга может использоваться в процессе подготовки специалистов в области программирования и информационных технологий. Автор книги М. П. Левин разработал собственную методику и изложил её в доступном виде для аспирантов и студентов высших учебных заведений аналогичного направления.
Основной бедой значительной части программистов, называющих себя специалистами по Си++, является то, что на самом деле они пишут на классическом Си с небольшими элементами объектного программирования. При таком подходе вся потенциальная мощь этого языка остаётся совершенно невостребованной. Стивен Прата, один из трёх авторов учебника «Язык Си», признанного лучшим учебным пособием по этому языку, программист и преподаватель программирования, составил этот учебник так, чтобы помочь читателю избежать подобных ошибок.
В процессе чтения книги вы ознакомитесь с такими необходимыми базовыми понятиями, как «нисходящее проектирование», когда глобальная задача разбивается на более мелкие части, которые легче уяснить для себя, «структурирование кода», когда листинг программы составляется таким образом, что циклы, условия, обработка исключений и иные логические элементы программы ясно видны даже при беглом взгляде на код, узнаете такие понятия объектно-ориентированного программирования, как наследование классов и структур, обработка исключительных ситуаций, научитесь пользоваться такими непростыми, но мощными средствами, как шаблонизатор классов и введёнными в 2011 году в стандарт языка понятиями «лямбда-функции», «семантики переноса», и «интеллектуальный указатель».
Так же, как и «Язык Си», новая книга Стивена Праты написана дружелюбным и понятным языком, не пугающим читателя и точно так же построена по схеме «небольшое лирическое отступление»-«теория вопроса»-«живой пример реализации»-«упражнение для самопроверки». Помимо объяснения собственно синтаксиса языка и его отличий от Си книга содержит сотни примеров программ, имеющих практическое применение, а также обучает использованию библиотеки шаблонов STL, наиболее полно использующей возможности Си++. Самоучитель по программированию «Язык программирования C++. Лекции и упражнения» Стивена Праты предназначен как студентам технических специальностей, обучающимся объектно-ориентированному программированию «с нуля», так и профессиональным программистам, желающим ознакомиться с новым ISO стандартом «Си++ 2011».
Компанией Borland выпущен продукт Borland C++ Builder для быстрого создания приложений на C++. Эта интегрированная среда разработки сочетает в себе гибкость и мощность языка C++ с удобством Visual Basic. Данная книга – это отличная возможность освоить C++ Builder в полной мере за минимальное время. С изучением ее материалов результативность вашей работы существенно повысится.
Быстрое создание приложений на C++ превосходно воплощается Borland C++ Builder. Встроенный редактор интерфейса позволяет существенно упростить процесс программирования и делает разработку визуально наглядной. С этим сборником вы научитесь правильно обращаться с расширенными формами, управлять базами данных собственными разработками приложений.
Узнаете об использовании элементов управления ActiveX и VCL. А сложные приложения на C++ станут намного проще с Borlnd C++ Builder. Книга «Borland C++ Builder. Библиотека программиста» поможет выйти на качественно новый уровень разработок приложений. Автор Мэтт Теллес.
В первых главах даются базовые представления о структуре языка – рассматриваются типы данных, переменные, операторы, функции, объекты. За ними очерчиваются формы более сложных элементов объектно-ориентированного программирования — классов. В последующих частях книги объясняются механизмы обработки исключений, шаблоны, концепция пространства имен, способы реализации динамической идентификации типов, структура стандартной библиотеки шаблонов STL, приводится справочная информация по ключевым словам среды .NET.
Герберт Шилдт, автор всемирно известных бестселлеров по программированию на Java, C, и C#, в своей книге «C++: базовый курс» дает исчерпывающую информацию по всем основным элементам программирования на C++, которая будет полезна и новичкам, и опытным программистам.
Шахматы, шашки, крестики-нолики, уголки – у всех этих и многих других подобных игр есть некоторые общие особенности, которые позволяют применять при их программировании схожие решения. Методы перебора, статистические понятия, хеш-таблицы, эвристический анализ – вот неполный перечень описываемых в данном томе приемов, которые принято использовать при создании логических игр.
К книге Евгения Корнилова «Программирование шахмат и других логических игр» прилагается компакт-диск с наиболее известными, свободными кодами шахматных программ и текстами программ самого автора.
В книге описаны основы синтаксиса и методика разработки приложений на нескольких объектно-ориентированных языках программирования: C++/CLI, C# и Java (J#). Особенностью изложенного в книге материала является параллельное сравнивание на конкретных примерах схожих языковых конструкций. Добавочно каждая из программ для более наглядного понимания взаимосвязи между объектами поясняется UML диаграммами.
Более детально рассмотрены такие сложные для самостоятельного изучения конструкции языка, как делегаты, события, потоки и их синхронизация.
Подробно описаны особенности синтаксиса и использования в каждом из трех языков.
Книга Медведева В. И. «Особенности объектно-ориентированного программирования на C++/CLI, C# и Java» будет полезна для изучения преподавателям и студентам профильных ВУЗов, а также профессионалам, имеющих опыт программирования на C++ и желающих освоить разработку на других языках.
Этот учебник C++ может использоваться как преподавателями учебных заведений, так и для самостоятельного изучения языка программирования. Он разделён на несколько частей, посвящённых собственно основам языка и программирования в целом, особенностям среды Visual C++, процессу отладки кода, особенностям программирования под Windows. Каждый из рассматриваемых вопросов имеет практические приложения, часть из которых читателю предлагается выполнить самостоятельно. Во многом «Visual C++ 2010. Полный курс» Хортона напоминает классические университетские учебники, поэтому он хорошо подойдёт приверженцам системного усвоения знаний.
В книге освещены все этапы создания приложения для Windows 95 и рассмотрено большинство проблем, которые могут возникнуть на этом пути. Хотя примеры программ приведены на С, рассказ опирается на возможности самой системы, а не на особенности конкретных языков или библиотек, поэтому многие курсы обучения начинаются именно с «Программирования для Windows 95» Петзольда. В первом томе рассматриваются базовые принципы программирования, обмен информацией между компьютером и периферийными устройствами, использование графического интерфейса пользователя. Второй посвящён более глубоким вопросам – управлению ресурсами и взаимодействию между приложениями.
В книге освещены все этапы создания приложения для Windows 95 и рассмотрено большинство проблем, которые могут возникнуть на этом пути. Хотя примеры программ приведены на С, рассказ опирается на возможности самой системы, а не на особенности конкретных языков или библиотек, поэтому многие курсы обучения начинаются именно с «Программирования для Windows 95» Петзольда. В первом томе рассматриваются базовые принципы программирования, обмен информацией между компьютером и периферийными устройствами, использование графического интерфейса пользователя. Второй посвящён более глубоким вопросам – управлению ресурсами и взаимодействию между приложениями.
«Практикум по программированию на С++» — это практический курс, направленный на обучение читателя программированию на C и C++. Практикум содержит почти 200 программных решений и 300 тестовых заданий по более чем 20 темам — от самых простейших вычислений, до обработки двоичных файлов. Отдельной главой в книге выделен материал, посвященный развитию у читателя навыков «чтения» и анализа готовых программных решений, увеличению «словарного запаса» программиста.
«Практикум по программированию на С++», составленный Е.Л. Романовым, рекомендуется студентам, обучающимся на факультетах информатики, а также всем тем, кто желает самостоятельно изучать язык C и технологии программирования на этом языке. Также, книга будет полезна преподавателям — в практикуме содержатся лабораторные работы, а материал его вполне можно разбить на 2-3 семестра.
Хотите начать изучать C++, но не знаете с чего начать? Или подтянуть свои знания в С++? В статье приведен перечень полезных книг.
«Программирование: принципы и практика использования C++» (Бьёрн Страуструп) (обновлено для С++11/С++14) Введение в программирование на языке С++, написанное автором этого языка. Хорошая книга, не требующая опыта в программировании, но она будет полезна не только новичкам.
«C++ Primer»* (Стэнли Липпман, Жозе Лажуа и Барбара Э. Му) (обновлён для C++11) В 1к страниц умещается подробное введение в С++, которое охватывает почти всё в этом языке, в очень доступном формате и мельчайших подробностях. Пятое издание (опубликовано 16 августа 2012) охватывает С++11. [Обзор]
*Не путать с «C++ Primer Plus» (Стивен Прата) с менее удобным обзором.
«Обзор С++» (Бьёрн Страуструп) «Обзор» — это краткий (около 180 страниц и 14 глав) учебный обзор всего в стандартном С++ (язык и стандартная библиотека и использование С++11) на несколько более высоком уровне для людей, уже знакомых с С++ или, по крайней мере, имеющих опыт в программировании. Эта книга является расширенной версией материала, составляющего главы 2-5 четвёртого издания «Языка программирования С++».
«Accelerated C++» («Ускоренный С++») (Эндрю Кёниг и Барбара Му) Эта книга в основном охватывает те же темы, что и «C++ Primer», но по объёму занимает только четверть той книги. В значительной степени это так, потому что это не введение в программирование, а введение в С++ для людей, которые раньше программировали на каком-то другом языке. В этой книге более быстрый темп обучения, но для тех, кто сможет осилить его, эта книга окажется очень сжатым введением в язык. (Исторически, эта книга открыла новые возможности, став первой книгой для начинающих, в которой использовался современный подход к изучению языка.) [Обзор]
«Thinking in C++» («Мышление на С++») (Брюс Эккель) Два тома; Этот учебник, написанный в свободном стиле, послужить хорошим предисловием к более сложным книгам. Загрузить: том 1, том 2. К сожалению, с них встречается ряд мелких ошибок (например, утверждение, что временные переменные автоматически const), нет официального списка ошибок. Часть ошибок можно посмотреть здесь, но это, по-видимому, не поддерживается.
«Effective C++» («Эффективное использование C++») (Скотт Майерс). Эта книга была написана с целью стать второй лучшей книгой для программистов, пишущих на языке С, и ей это удалось. Ранние издания были больше ориентированы на программистов, работавших с языками С, в третьем издании это поменялось, и книга переориентировалась на тех, кто работает с языками типа Java. Книга представляет собой 50 легких для запоминания основанных на опыте правил вместе с их обоснованием в очень доступной (и приятной) форме. Для С++11 и С++14 некоторые примеры и вопросы устарели, поэтому в этом случае «Effective Modern C++» («Эффективный и современный С++» предпочтительнее. [Обзор]
«Effective Modern C++» («Эффективный и современный С++») (Скотт Майерс). По сути это новая версия «Effective C++» («Эффективное использование C++»), ориентированная на С++ программистов, переходящих от С++03 к С++11 и С++14.
«Effective STL» («Эффективное использование STL») (Скотт Майерс). Эта книга стремится стать частью стандартной библиотеки пользователей STL, как и «Effective C++» для языка в целом: она представляет основные правила вместе с их обоснованием. [Обзор]
«More Effective C++» («Более эффективное использование C++») (Скотт Майерс). Ещё больше основанных на опыте More Exceptional C++правил, чем в «Effective C++». Они не такие важные, как те из первой книги, но всё-таки неплохо знать и их.
«Exceptional C++» («Решение сложных задач на С++») (Герб Саттер). Книга представлена в виде набора головоломок, это одно из лучших и всесторонних обсуждений надлежащего управления ресурсами и исключительной безопасности в С++ через RAII (получение ресурса есть инициализация), в дополнение к углублённому изучения таких вопросов, как идиомы pimpl, поиск имён, хорошее проектирование классов и модель памяти С++. [Обзор]
«More Exceptional C++» («Новые сложные задачи на C++») (Герб Саттер). Охватывает дополнительные темы безопасности, не затронутые в «Exceptional C++» в дополнение к обсуждению эффективного объектно-ориентированного программирования в C++ и правильного использования STL. [Обзор]
«Exceptional C++ Style» (Герб Саттер). В книге обсуждается общее программирование, оптимизация и управление ресурсами; в этой книге также хорошо описано, как писать модульный код на С++ с использованием функций, не являющихся членами класса, и принципом единой ответственности. [Обзор]
«C++ Coding Standards» («Стандарты программирования на С++») (Герб Саттер, Андрей Александреску). Выражение «стандарты программирования» здесь не означает «сколько пробелов я должен поставить в своём коде?». В этой книге содержится более ста лучших задач, идиом и распространенных ошибок, которые могут помочь вам написать правильный, понятный и эффективный код на С++. [Обзор]
«C++ Templates: The Complete Guide» («Шаблоны С++: полное руководство») (Дэвид Вандевурд и Николаи М. Джосаттис). Это книга о тех шаблонах, которые существовали до С++11. Она охватывает всё от самых основ до некоторых наиболее передовых шаблонов метапрограммирования и объясняет каждую деталь работы шаблонов (как саму идею, так и то, как она реализовывается), в ней обсуждаются многие общие ошибки. В книге содержится отличное обобщение правила одного определения (ODR) и разрешения совмещения в приложениях. Выход второго издания запланирован на 2016 год. [Обзор]
«Modern C++ Design» («Современное проектирование на С++») (Андрей Александреску). Новаторская книга об общих передовых методах программирования. В книге представлены темы проектирования, основанные на требованиях, списков типов и основные идиомы общего программирования, также объясняется, как много полезных образцов проектирования (включая малые распределители объектов, функторы, фабрики, посетителей и мультиметоды) может быть реализовано эффективно, модульно и только с использованием общего программирования. [Обзор]
«C++ Template Metaprogramming» («Шаблонное метапрограммирование на С++») (Дэвид Абрахамс и Алексей Гуртовой)
«C++ Concurrency In Action» («Параллельное программирование на С++ в действии») (Энтони Вилльямс). Книга освещает параллельное программирование на С++11, включая потоковые библиотеки, атомарные библиотеки, модель памяти С++, шлюзы и блокировки, а также вопросы проектирования и отладки многопоточных приложений.
«Advanced C++ Metaprogramming» («Продвинутое метапрограммирование на С++») (Дэвид Ди Дженнаро). В руководстве по методам шаблонного метапрограммирования на С++11 больше уделяется внимания практике, чем теории. Есть огромное количество отрывков из этой книги, некоторые из которых устарели, но, тем не менее, их полезно знать. Если вы сможете смириться с причудливым форматированием/редактированием, то вам будет легче читать эту книгу, чем книги Александреску, и, возможно, она будет более полезной. Для более опытных разработчиков есть возможность выудить что-нибудь из глубин С++ (шутка), ведь это, как правило, приходит с опытом.
«The C++ Programming Language» («Язык программирования С++») (Бьёрн Страуструп) (обновлено для С++11). Классическое введение в С++, написанное его создателем. Написанная параллельно в классическим K&R, эта книга действительно очень похожа на него и охватывает почти всё от основного языка до стандартной библиотеки и парадигм программирования в философии языка. (Из-за этого последнее издание превысило отметку в 1000 страниц.) [Обзор] Четвёртое издание (опубликовано 19 мая 2013) охватывает С++11.
«C++ Standard Library Tutorial and Reference» («C++ Стандартная библиотека. Для профессионалов») (Николай Джосьютис) (обновлено для С++11). Введение и источники для стандартной библиотеки С++. Второе издание (опубликовано 9 апреля 2012) охватывает С++11. [Обзор]
«The C++ IO Streams and Locales» («IO потоки и области С++») (Анжелика Лангер и Клаус Крефт). Про эту книгу мало что можно сказать, за исключением того, что если вы хотите знать всё о потоках и областях, то это именно то, что поможет вам найти окончательные ответы. [Обзор]
Справочники для С++11:
«The C++ Standard (INCITS/ISO/IEC 14882-2011)» («Стандарт С++»). Эта книга является конечной инстанцией для всего, что является или не является С++. Однако, следует помнить, что она написана исключительно в качестве руководства по указанию источников для опытных пользователей, желающих потратить значительное время и усилия на её понимание. Как обычно, первое издание было довольно дорогим (свыше $300), но сейчас она опубликована в электронном виде за $60.
«Overview of the New C++ (C++11/14)» («Обзор нового С++») (только в pdf) (Скотт Майерс) (обновлено для C++1y/C++14). Здесь представлены репрезентационные материалы (слайды и записи некоторых лекций) трёхдневного курса, который проводил Скотт Майерс, который является многоуважаемым автором языка С++. Даже если список тем маленький, качество остаётся высоким.
Примечание: некоторая информация, содержащаяся в этих книгах, может оказаться не актуальной или уже не авторитетной.
«The Design and Evolution of C++» («Дизайн и эволюция С++») (Бьёрн Страуструп). Если вы хотите знать, почему язык такой, какой он есть, то в этой книге вы найдёте ответы. В этой книге охвачены все вопросы до стандартизации С++.
«Ruminations on C++» («Размышления на С++») (Эндрю Кениг и Бабрара Бу) [Обзор]
«Advanced C++ Programming Styles and Idioms» («Программирование на С++») (Джеймс Коплиен). Предшественник движения шаблонов, книга содержит описания многих специфичных «идиом» С++. Конечно, это очень хорошая книга, возможно, её стоит прочитать, если вы хотите скоротать время, но она довольна старая и не соответствует современному С++.
«Large Scale C++ Software Design» («Крупномасштабная разработка программного обеспечения на С++») (Джон Лакос). Лакос объясняет методы работы с крупными проектами по разработке программного обеспечения на С++. Разумеется, эту книгу полезно читать, только если вы в курсе дела. Она была написана задолго до С++98, и в ней недостаёт многих вещей (например, пространства имён), важных для крупных проектов. Если вам нужно работать над большим проектом по разработке программного обеспечения на С++, вы можете прочитать эту книгу, однако вам стоит отнестись к ней с некоторым недоверием. Выход первого тома нового издания ожидается в 2015 году.
«Inside the C++ Object Model» («Внутри объектной модели С++») (Стэнли Липпман). Если вы хотите знать, как виртуальная компонентная функция обычно реализуется и как база объектов закладывается в память сценария с несколькими наследованиями, и как всё это влияет на производительность, то в этой книге вы найдёте подробное обсуждение таких тем.
Источник: Stack Overflow
Язык С — не просто фундамент всех современных языков программирования, и сам — современный язык, идеальный для написания эффективных приложений передового уровня. Последние 20 лет С не стоял на месте. Сам язык и окружающая его экосистема подвергаются пересмотру. Эта книга начинается там, где другие заканчиваются. В ней рассказано, как изменилась функциональность, поддерживаемая любым компилятором, благодаря двум новым стандартам С, вышедшим со времен оригинального ANSI. Цель книги — рассмотреть то, чего нет в других учебниках по С: инструменты и окружение; библиотеки для работы со связанными списками и анализаторами XML; написание удобно читаемого кода с дружественным программным интерфейсом.
Издание предназначено для программистов, имеющих опыт работы на каком-1 языке и обладающими базовыми знаниями о С.
10,681 просмотров всего, 1 просмотров сегодня
В этой книге с помощью примеров программ и иллюстраций, показывающих результаты работы кода, разбираются все ключевые аспекты языка С. В этой книге описано даже то. как установить бесплатный компилятор для языка С и работать в нем, – у вас просто не будет шансов ошибиться!
Книга идеально подойдет программистам, переключающимся па работу с другим языком, студентам, изучающим язык С, а также чем. кто только начинает свою профессиональную деятельность и хочет научиться основам процедурного программирования.
13,200 просмотров всего, 2 просмотров сегодня
Сетевые многопользовательские игры — это многомиллиардный бизнес, привлекающий десятки
миллионов игроков. Эта книга на реальных примерах рассказывает об особенностях разработки таких
игр и основах построения надежной многопользовательской архитектуры.
Вы узнаете об основах сетевого программирования с точки зрения разработчиков игр, управлении
игрой через передачу данных, сетевых обновлениях, обеспечении надежной работы и научитесь со
здавать безопасный и масштабируемый код. Не останутся без внимания игровые сервисы и облачные
технологии.
9,554 просмотров всего, 2 просмотров сегодня
Эта книга не является учебником по языку C++, это учебник по программированию. Несмотря на то что ее автор — автор языка С++, книга не посвящена этому языку программирования; он играет в книге сугубо иллюстративную роль. Автор задумал данную книгу как вводный курс по программированию. Поскольку теория без практики совершенно бессмысленна, такой учебник должен изобиловать примерами программных решений, и неудивительно, что автор языка C++ использовал в книге свое детище.
В книге в первую очередь описан широкий круг понятий и приемов программирования, необходимых для того, чтобы стать профессиональным программистом, и в гораздо меньшей степени — возможности языка программирования C++.
В первую очередь, книга адресована начинающим программистам и студентам компьютерных специальностей, которые найдут в ней много новой информации, и смогут узнать точку зрения создателя языка С++ на современные методы программирования.
Если вы решили стать программистом, и уже знакомы с азами C++ — эта книга для вас, в первую очередь потому, что программирование — это не только, и не столько знание инструмента (языка программирования C++), сколько понимание самого процесса. Автор недаром не ограничился своим первоклассным (но ни в коей мере не являющимся учебником для программистов без большого практического опыта) трудом Язык программирования C++.
Проводя грубую аналогию — виртуозное владение топором никого не делало настоящим плотником. Бьярне Страуструп в очередной раз приходит на помощь программистам — создав уникальный язык программирования, он не ограничивается им и рассказывает о том, как правильно им воспользоваться, даже не зная все его тонкости и возможности.
Основные темы книги:
Подготовка к созданию реальных программ. Автор книги предполагает, что читатели в конце концов начнут писать нетривиальные программы либо в качестве профессиональных разработчиков программного обеспечения, либо в качестве программистов, работающих в других областях науки и техники.
Упор на основные концепции и методы. Основные концепции и методы программирования в книге излагаются глубже, чем это принято в традиционных вводных курсах. Этот подход дает основательный фундамент для разработки полезных, правильных, понятных и эффективных программ.
Программирование на современном языке С++ (C++11 и C++14). Книга представляет собой введение в программирование, включая объектно-ориентированное и обобщенное программирование. Одновременно она представляет собой введение в язык С++, один из широко применяющихся языков программирования в современном мире. В книге описаны современные методы программирования на С++, включая стандартную библиотеку и возможности C++11 и C++14, позволяющие упростить программирование.
Для начинающих программистов и всех, кто хочет научиться программировать. Книга предназначена в основном для людей, никогда ранее не программировавших, и опробована на более чем тысяче студентов университета. Однако и опытные программисты, и студенты, уже изучившие основы программирования, найдут в книге много полезной информации, которая позволит им перейти на еще более высокий уровень мастерства.
Широкий охват тем. Первая половина книги охватывает широкий спектр основных понятий, методов проектирования и программирования, свойств языка С++ и его библиотек. Это позволит читателям писать программы, выполняющие ввод и вывод данных, вычисления и построение простых графических изображений. Во второй половине рассматриваются более специализированные темы (такие как обработка текста, тестирование и язык C). В книге содержится много справочного материала. Исходные тексты программ и иные материалы читатели могут найти на веб-сайте автора.
15,545 просмотров всего, 2 просмотров сегодня
C++ PROGRAMMING: PROGRAM DESIGN INCLUDING DATA STRUCTURES, Sixth Edition remains the definitive text for the CS1/CS2 course sequence. D.S. Malik\’s time-tested, student-centered methodology uses a strong focus on problem-solving and full-code examples to vividly demonstrate the how and why of applying programming concepts and utilizing C++ to work through a problem. This new edition includes updated end-of-chapter exercises, new debugging exercises, an earlier introduction to variables and a streamlined discussion of user-discussion of user-defined functions. Malik\’s text ensures students learn how to apply the C++ programming language, and are motivated to understand the «why?» behind key C++ concepts.
Features and Benefits
— A full-color interior precisely displays syntax highlighting, emphasizing C++ keywords and comments for beginning programmers.
— More than 300 visual diagrams illustrate challenging concepts.
— Numbered full-code examples throughout walk students through the stages of Input, Output, Problem Analysis, and Algorithm Design to illustrate key topics in each chapter. Every programming example includes a full explanation and sample run.
— A CourseMate digital companion brings the text to life with nearly 20 instructional videos that walk students step-by-step step through key programming examples — plus such interactive study tools as quizzes, flashcards, and games. The CourseMate\’s digital Lab Manual offers additional hands-on exercises, helping students reinforce critical thinking through practice.
4,643 просмотров всего, 1 просмотров сегодня
Эта книга предлагает быстрый способ изучить принципы объектно-ориентированного программирования и освоить практику программирования на языке С++ новейшей 11-й версии. Издание может использоваться как учебный курс для начинающих осваивать C++, так и удобный справочник для тех, кто хочет быстро найти актуальную информацию о том или ином аспекте языка.
Автор книги Алекс Эллайн — профессиональный разработчик на С++, создатель популярнейшего ресурса Cprogramming.com, предлагает собственную уникальную методику обучения программирования, которая позволит вам в кратчайшие сроки стать экспертом разработки на C++.
21,603 просмотров всего, 2 просмотров сегодня
В этой книге отражен бесценный опыт ее автора как программиста на C++. Новые возможности этого языка программирования, появившиеся в стандартах C++11 и C++14 — это не просто новые ключевые слова или функции, это появление совершенно новых концепций, так что для их эффективного использования недостаточно просто узнать об их существовании, и программировать на C++11, как на несколько улучшенном и расширенном функционально C++98.
Когда происходят такие глобальные изменения в языке программирования, их изучению следует посвятить определенное время, написать сотни, а еще лучше — тысячи строк кода, и столкнуться с массой проблем, кажущихся тем более странными и непонятными, чем большим опытом работы с C++98 вы обладаете. К программированию в полной мере относится фраза Евклида о том, что в геометрии нет царских путей. Но пройти путь изучения и освоения нового языка программирования вам может помочь проводник, показывающий наиболее интересные места и предупреждающий о ямах и ухабах. Таким проводником может послужить книга Скотта Мейерса. С ней вы не заблудитесь и не забредете в дебри, из которых будете долго и трудно выбираться с помощью отладчика.
При этом книга не просто научит вас использовать новые возможности языка — она научит использовать их эффективно. Но и это не все — книга не просто учит эффективному применению C++, но еще и рассказывает, почему ту или иную задачу следует решать именно так.
Эта книга заставляет вас не просто заучить правила — она заставляет думать.
И хотя эта книга в первую очередь предназначена для энтузиастов и профессионалов, она достойна места на полке любого программиста — как профессионала, так и зеленого новичка.
Освоение C++11 и C++14 — это больше, чем просто ознакомление с вводимыми этими стандартами возможностями (например, объявлениями типов auto, семантикой перемещения, лямбда-выражениями или поддержкой многопоточности). Вопрос в том, как использовать их эффективно — так, чтобы создаваемые программы были корректны, эффективны и переносимы, а также чтобы их легко можно было сопровождать.
Именно этим вопросам и посвящена данная книга, описывающая создание по-настоящему хорошего программного обеспечения с использованием C++11 и C++14 — т.е. с использованием современного C++.
В книге рассматриваются следующие темы:
Преимущества и недостатки инициализации с помощью фигурных скобок, спецификации noexcept, прямой передачи и функций make интеллектуальных указателей; Связь между std::move, std::forward, rvalue-ссылками и универсальными ссылками; Методы написания понятных, корректных, эффективных лямбда-выражений; Чем std::atomic отличается от volatile, как они используются и как соотносятся с API параллельных вычислений C++; Какие из лучших методов «старого» программирования на C++ (т.е. C++98) должны быть пересмотрены при работе с современным C++.
Эффективный и современный C++, следуя принципам более ранних книг Скотта Мейерса, охватывает совершенно новый материал. Эта книга достойна занять свое место на полке каждого программиста на современном C++.
15,801 просмотров всего, 1 просмотров сегодня
Если вы хотите научиться программировать первоклассные игры, вам просто необходимо изучить язык С++.
Эта книга поможет вам освоить разработку игр с самых азов, независимо от того, есть ли у вас опыт программирования. Гораздо интересней учиться, когда обучение превращается в игру.
Каждая глава книги описывает самостоятельный игровой проект. В заключительной главе вам предстоит написать сложную игру, которая объединяет все приемы программирования, рассмотренные в предыдущих главах.
Книга, которую вы держите в руках, идеально подойдет для начинающего программиста, планирующего не только как следует освоить непростой язык С++, но и поупражняться в программировании игр.
21,485 просмотров всего, 2 просмотров сегодня
Книга посвящена разработке приложений для Windows, Mac OS X и Linux с использованием библиотеки Qt версии 5.3. Подробно рассмотрены возможности, предоставляемые этой библиотекой, и описаны особенности, выгодно отличающие ее от других библиотек. Описана интегрированная среда разработки Qt Creator и работа с технологией Qt Quick. Книга содержит исчерпывающую информацию о классах Qt 5, и так же даны практические рекомендации их применения, проиллюстрированные на большом количестве подробно прокомментированных примеров. Проекты примеров из книги размещены на сайте издательства.
Для программистов.
35,557 просмотров всего, 2 просмотров сегодня
Introduce the power and practicality of C++ programming to entry-level engineers with Bronson\’s C++ FOR ENGINEERS AND SCIENTISTS, 4E. This proven, pragmatic text is designed specifically for today\’s first- and second-year engineering and science students with a wealth of new applications and examples taken from real situations involving electrical and structural engineering, fluid mechanics, mathematics, power generation, and heat transfer challenges. The book starts with a solid foundation in procedural programming before moving into a reorganized, clear presentation of object-oriented concepts. Dynamic case studies, career spotlights and engineering-driven applications showcase the relevance of concepts students are learning to their careers. Helpful tips demonstrate how to avoid common C++ programming errors, while updates ensure that students are learning the most recent C++ code standards.
6,924 просмотров всего, 2 просмотров сегодня
С момента публикации в 1978 г. книги «Язык программирования Си» в мире компьютеров произошла революция. Большие машины стали еще больше, а возможности персональных ЭВМ теперь сопоставимы с возможностями больших машин десятилетней давности. Язык Си за это время также изменился, хотя и не очень сильно; что же касается сферы применения Си, то она далеко вышла за рамки его начального назначения как инструментального языка операционной системы UNIX.
Рост популярности Си, накапливающиеся с годами изменения, создание компиляторов коллективами разработчиков, ранее не причастных к проектированию языка, — все это послужило стимулом к более точному и отвечающему времени определению языка по сравнению с первым изданием книги. В 1983 г. Американский институт национальных стандартов (American National Standards Institute — ANSI) учредил комитет, перед которым была поставлена цель выработать «однозначное и машинно-независимое определение языка Си», полностью сохранив при этом его стилистику. Результатом работы этого комитета и явился стандарт ANSI языка Си.
Стандарт формализует средства языка, которые в первом издании были только намечены, но не описаны, такие, например, как присваивание структурам и перечисления. Он вводит новый вид описания функций, позволяющий проводить повсеместную проверку согласованности вызовов функций с их определением; специфицирует стандартную библиотеку с широким набором функций ввода-вывода, управления памятью, манипуляций со строками символов и другими функциями; уточняет семантику, бывшую в первоначальном определении неясной, и явно выделяет то, что остается машинно-зависимым.
Во втором издании книги «Язык программирования Си» представлена версия Си, принятая в качестве стандарта ANSI. Мы решили описать язык заново, отметив при этом те места, в которых он претерпел изменения. В большинство параграфов это не привнесло существенных перемен, самые заметные различия касаются новой формы описания и определения функции. Следует отметить, что современные компиляторы уже обеспечили поддержку значительной части стандарта.
Мы попытались сохранить краткость первого издания. Си — небольшой язык, и чтобы его описать большой книги не требуется. В новом издании улучшено описание наиболее важных средств, таких как указатели, которые занимают центральное место в программировании на Си; доработаны старые примеры, а в некоторые главы добавлены новые. Так, для усиления трактовки сложных объявлений в качестве примеров включены программы перевода объявлений в их словесные описания и обратно. Как и раньше, все примеры были протестированы прямо по текстам, написанным в воспринимаемой машиной форме.
Приложение A — это справочное руководство, но отнюдь не стандарт. В нем мы попытались уложить самое существенное на минимуме страниц. По замыслу это приложение должно легко читаться программистом-пользователем: для разработчиков же компилятора определением языка должен служить сам стандарт. В приложении B приведены возможности стандартной библиотеки. Оно также представляет собой справочник для прикладных программистов, но не для разработчиков компиляторов. Приложение C содержит краткий перечень отличий представленной версии языка Си от его начальной версии.
В предисловии к первому изданию мы говорили о том, что «чем больше работаешь с Си, тем он становится удобнее». Это впечатление осталось и после десяти лет работы с ним. Мы надеемся, что данная книга поможет вам изучить Си и успешно его использовать.
Мы в большом долгу перед друзьями, которые помогали нам в выпуске второго издания книги. Джон Бентли, Дуг Гунн, Дуг Макилрой, Питер Нельсон и Роб Пайк сделали четкие замечания почти по каждой странице первого варианта рукописи. Мы благодарны Алу Ахо, Деннису Аллиссону, Джою Кемпбеллу, Г. Р. Эмлину, Карен Фортганг, Аллену Голубу, Эндрю Хьюму, Дэйву Кристолу, Джону Линдерману, Дэйву Проссеру, Гину Спаффорду и Крису Ван Уику за внимательное прочтение книги. Мы получили полезные советы от Билла Чезвика, Марка Кернигана, Эндрю Коэнига, Робина Лейка, Тома Лондона, Джима Ридза, Кловиза Тондо и Питера Вайнбергера. Дейв Проссер ответил на многочисленные вопросы, касающиеся деталей стандарта ANSI. Мы широко пользовались транслятором с Си++ Бьерна Страуструпа для локальной проверки наших программ, а Дейв Кристол предоставил нам ANSI Си-компилятор для окончательной их проверки. Рич Дрешлер очень помог в наборе книги. Мы искренне благодарим всех.
Брайан В. Керниган, Деннис М. Ритчи
Си — это универсальный язык программирования с компактным способом записи выражений, современными механизмами управления структурами данных и богатым набором операторов. Си не является ни языком «очень высокого уровня», ни «большим» языком, не рассчитан он и на какую-то конкретную область применения. Однако благодаря широким возможностям и универсальности для решения многих задач он удобнее и эффективнее, чем предположительно более мощные языки.
Первоначально Си был создан Деннисом Ритчи как инструмент написания операционной системы UNIX для машины PDP-11 и реализован в рамках этой операционной системы. И операционная система, и Си- компилятор, и, по существу, все прикладные программы системы UNIX (включая и те, которые использовались для подготовки текста этой книги — Имеется в виду оригинал этой книги на английском языке. — Примеч. пер.) написаны на Си. Фирменные Си-компиляторы существуют и на нескольких машинах других типов, среди которых 1ВМ/370, Honeywell 6000 и Interdata 8/32. Си не привязан к конкретной аппаратуре или системе, однако на нем легко писать программы, которые без каких-либо изменений переносятся на другие машины, где осуществляется его поддержка.
Цель нашей книги — помочь читателю научиться программировать на Си. Издание включает введение- учебник, позволяющий новичкам начать программировать как можно скорее, а также главы, посвященные основным свойствам языка, и справочное руководство. В ее основу положены изучение, написание и проработка примеров, а не простое перечисление правил. Почти все наши примеры — это законченные реальные программы, а не разобщенные фрагменты. Все они были оттестированы на машине точно в том виде, как приводятся в книге. Помимо демонстрации эффективного использования языка, там, где это было возможно, мы стремились проиллюстрировать полезные алгоритмы и принципы хорошего стиля написания программ и их разумного проектирования.
Эта книга не является вводным курсом по программированию. Предполагается, что читатель знаком с такими основными понятиями, как «переменная», «присваивание», «цикл», «функция». Тем не менее и новичок сможет изучить язык, хотя для него будет очень полезным общение с более знающими специалистами.
Наш опыт показал, что Си — удобный, выразительный и гибкий язык, пригодный для программирования широкого класса задач. Его легко выучить, и чем больше работаешь с Си, тем он становится удобнее. Мы надеемся, что эта книга поможет вам хорошо его освоить.
Вдумчивая критика и предложения многих друзей и коллег помогали нам написать книгу. В частности, Майк Бианки, Джим Блу, Стью Фелдман, Дуг Макилрой, Билл Рум, Боб Розин и Ларри Рослер со вниманием прочли все многочисленные варианты этой книги. Мы в долгу у Ала Ахо, Стива Бьерна, Дана Дворака, Чака Хейли, Мариои Харрис, Рика Холта, Стива Джонсона, Джона Машея, Боба Митца, Ральфа Мухи, Питера Нельсона, Эллиота Пинсона, Билла Плейджера, Джерри Спивака, Кена Томпсона и Питера Вайнбергера за полезные советы, полученные от них на различных стадиях подготовки рукописи, а также у Майка Леска и Джо Оссанны за помощь при подготовке ее к изданию.
Брайан В. Керниган, Деннис М. Ритчи
Си — универсальный язык программирования. Он тесно связан с системой UNIX, так как был разработан в этой системе, которая как и большинство программ, работающих в ней, написаны на Си. Однако язык не привязан жестко к какой-то одной операционной системе или машине. Хотя он и назван «языком системного программирования», поскольку удобен для написания ком
|
Возможно, публикация по этим языкам программирования не нуждается в предвидении. Но с другой стороны, для скептиков, которые болеют за Go и Swift, вот немного предыстории, которая подтверждает тот факт, что, несмотря на то, что они не являются самыми популярными сегодня, эти объектно-ориентированные языки все еще составляют основу для многих приложений.
Зачем беспокоиться
Java и C # рекламировались как любимые языки 2000-х годов.Теперь люди говорят на Python и Ruby, Javascript и PHP. Тем не менее, фундаментальные навыки программирования все еще требуют прочной основы в C и C ++. (Вы можете прочитать больше здесь — Лучшие языки программирования, которые будут наиболее популярны в 2017 году)
TIOBE, возможно, сейчас презирает C, но Dice и другие порталы вакансий демонстрируют значительный спрос на эти наборы навыков в разных отраслях. Удобство для начинающих, масштабируемость и значительное сообщество по-прежнему делают C ++ основным игроком.
«Они [C и C ++] являются родным языком для программирования на системном уровне, и, вероятно, они будут долгие годы.Однако в конечном итоге такие языки, как Google Go или D, могут заменить их », — говорит аналитик Gartner Марк Драйвер. «Пробный опыт изучения C имеет тенденцию отсеивать неподтвержденных, поэтому знание C, по крайней мере, выделяет вас», — добавил он.
Эти языки действуют как «ментальная модель», которая помогает вам идти туда, где вы думали, что не можете. Бьярн Страуструп, создатель C ++, говорит: «По сути, ничто, способное справиться со сложностью, не работает так быстро, как C ++». Используемый с некоторыми языками сценариев, он предназначен для «высокой производительности, высокой надежности, малой занимаемой площади, низкого энергопотребления — все это хорошо.”
Имея множество доступных ресурсов, выбор лучших может вызвать у вас головокружение. У нас есть ценный список, в котором любопытные, которые задаются вопросом, что находится под капотом, как можно ближе к машине.
Страуструп: язык программирования C ++ (4-е издание)
Что лучше, чем учиться у самого гуру? Бьярн Страуструп создал C ++ в 1979 году.
Книга охватывает язык полностью, рассказывая о контейнерах, алгоритмах, механизмах абстракции, параллелизме, утилитах, базовых средствах, стандартных библиотеках и моделях проектирования.В этом реорганизованном издании обсуждается C ++ 11, версия, которая последовала за C ++ 03, а затем была заменена на C ++ 14 и C ++ 17 позже. Обязательный элемент для энтузиастов программирования, потому что это, безусловно, исчерпывающий справочник по общим принципам программирования и практике использования C ++. Рецензенты в восторге от примеров кода и способа представления языка. Возможно, это не лучшая книга для новичков, по мнению некоторых читателей; это скорее «описание особенностей и аргументация», чем ответ на практические рекомендации.Посмотрите подробное оглавление здесь и получите доступ к упражнениям здесь.
Вы можете купить книгу здесь.
Ускоренное C ++: практическое программирование на примере Эндрю Кенига и Барбары Э. Му
Для учащихся, которые хотят познакомиться с практическими аспектами C ++, эта книга, которая является частью C ++ Страуструпа, в Глубина серии, это ссылка на ссылку. Если у вас нет времени на основы, то вы можете перейти непосредственно к фрагменту кода с помощью «ускоренного» C ++ Кенига и Му.В число рассматриваемых тем входят «базовая обработка строк, операторы управления циклами и потоками, массивы, функции и методы, итераторы, файловый ввод-вывод, перегрузка операторов, наследование, полиморфизм и виртуальные функции».
Член-основатель комитета ANSI / ISO C ++ Даг Брюк говорит: «Это первоклассная вводная книга, в которой используется практический подход к решению проблем с использованием C ++. Он охватывает гораздо более широкий спектр программирования на C ++, чем другие вводные книги, которые я видел, и в удивительно компактном формате.«Авторы рассказывают о функциях на понятных примерах, обучая вас, как использовать функции, а не пытаясь объяснить, что и зачем. Он берет вас от стандартных библиотечных абстракций до определения ваших собственных. Ключевые выводы, которые кристаллизуют низкоуровневые и высокоуровневые концепции и упражнения в конце главы, укрепляют ваше понимание.
С этой книгой вы можете начать программирование прямо сейчас!
Вы можете купить книгу здесь.
C ++ Primer (5-е издание) 5-е издание Стэнли Б.Липпман, Жозе Ладжой и Барбара Э. Му
В учебнике по С ++ авторы фокусируются на пересмотренном стандарте 2011 года. В разделе «Зачем читать эту книгу» они говорят, что «подчеркивают хороший стиль и объясняют обоснование правил». Первая часть книги охватывает основы C ++, такие как переменные, строки, векторы, массивы, выражения, операторы, функции и классы. Следующий раздел посвящен библиотеке ввода-вывода, последовательным и ассоциативным контейнерам, общим алгоритмам и динамической памяти.Другая часть посвящена контролю копирования, перегруженным операциям и преобразованиям, ООП, шаблонам и общему программированию. В последующих разделах учебник знакомит вас с методами программирования высокого уровня, такими как специализированные библиотечные средства и инструменты для больших программ. Ученикам не обязательно знать C, но они должны быть знакомы с написанием, компиляцией и запуском программы «хотя бы на одном современном блочно-структурированном языке».
Вы можете купить книгу здесь.
Эффективный современный C ++: 42 специальных способа улучшить использование C ++ 11 и C ++ 14 (1-е издание) Скоттом Мейерсом
Часть этой серии книг по эффективному C ++, эта В выпуске рассказывается о том, как эффективно использовать новые функции C ++ 11 и C ++ 14, такие как лямбда-выражения и перемещение семантики.Архитектор программного обеспечения Microsoft и председатель комитета по стандартам ISO C ++ Херб Саттер говорит: «После изучения основ C ++ я научился использовать C ++ в производственном коде из серии книг Мейера по Effective C ++. Effective Modern C ++ — это самая важная практическая инструкция, в которой даются советы по ключевым направлениям, стилям и идиомам эффективного и эффективного использования современного C ++. У вас еще нет? Купи это. Сейчас.»
С помощью этой книги Мейерс гарантирует, что вы можете «создавать правильное, эффективное, удобное в обслуживании и переносимое программное обеспечение.Рассматриваемые темы включают в себя совершенную пересылку, за исключением спецификаций, фигурной инициализации, автоматических объявлений типов и различий между std :: atomic и volatile и их отношением к API параллелизма C ++.
Некоторые обозреватели считают, что для полноценной оценки этого издания на современном C ++ необходимы некоторые базовые знания C ++. Множество замечательных примеров и «предметов» размером с кусочек рассказывают, почему были добавлены функции и что они могут делать; это набор рекомендаций относительно новых дополнений к C ++, а не вводный текст для изучения C ++.
Вы можете купить книгу здесь.
E xceptional C ++: 40 Новые инженерные загадки, проблемы программирования и решения от Херба Саттера
Эта книга высокого качества является частью глубокой серии статей Струструпа C ++. Написанная Гербом Саттером, известным экспертом по C ++, в книге рассказывается о том, что, почему и как практиковаться в «твердой разработке программного обеспечения» с использованием сценариев в формате решения проблем. Саттер отвечает на такие вопросы, как «Как встроенное письмо влияет на производительность? Как безопасность исключений выходит за рамки выражений try и catch? Какова реальная стоимость памяти при использовании стандартных контейнеров? »
Если вы хотите стать одним из лучших программистов на C ++, Exceptional C ++ — это исчерпывающее руководство по таким темам, как общее программирование, написание шаблонов многократного использования, проблемы безопасности исключений, брандмауэры компиляторов, дизайн классов, наследование и полиморфизм, а также оптимизация.Образцовые презентации и занимательные головоломки делают это обязательным приобретением. Его следующая книга, More Exceptional C ++: 40 новых инженерных задач, проблем программирования и решений , продолжает путешествие. С целью помочь вам в написании исключительного кода книга поставляется с новыми подробными разделами (например, многопоточными средами) и информацией по актуальным темам, затронутым в приквеле.
Вы можете купить книгу здесь.
2-е издание, язык программирования Си, Брайан В.Керниган и Деннис М. Ритчи
Несмотря на то, что эта книга была впервые опубликована в 1978 году, она продолжает оставаться библией для программистов на Си. Ричи (1941–2011) был оригинальным разработчиком языка Си, а также он был одним из разработчиков ОС UNIX. Версия K & R (авторы) C отличается от ANSI C или более ранней версии.
В книге обсуждаются сложные упражнения, которые помогут вам получить практические знания о языке C. В нем кратко и четко указаны типы, операторы и выражения, поток управления, функции и структура программы, указатели и массивы, структуры ввода и вывода и UNIX. системный интерфейс.Вам нужен опыт программирования; вам нужно знать, что такое компилятор; Книга обучает вас синтаксису, а не точно принципам программирования. Например, когда он говорит о функциях на четырех страницах, он на самом деле не говорит вам, что такое функция. Тем не менее, этот оригинальный текст имеет первую программу Hello World.
В предисловии ко второму изданию, опубликованному в 1988 году, авторы пишут: «Мы улучшили описание критических функций, таких как указатели, которые являются центральными для программирования на Си».Мы усовершенствовали исходные примеры и добавили новые примеры в несколько глав. Например, обработка сложных объявлений дополняется программами, которые преобразуют объявления в слова и наоборот. Как и прежде, все примеры были протестированы непосредственно из текста, который находится в машиночитаемой форме.
Вы можете купить книгу здесь.
Книга о Си: программирование на С (4-е издание) Аль Келли и Ира Поля
Келли и Пол собрали большое руководство по ANSI C.Авторы использовали уникальные и четкие объяснения программного кода, а также всеобъемлющие упражнения и сводные таблицы, чтобы подчеркнуть мощь C, языка программирования общего назначения.
USP книги включают главу о том, как перейти на Java с C, подробное описание указателей, многофайловое программирование и рекурсию, улучшенное приложение к стандартным функциям библиотеки и больше внимания на абстрактных типах данных. Во всеобъемлющем руководстве по ANSI C также рассматриваются ввод / вывод и операционная система, лексические элементы, операторы и система c, препроцессор, структуры, функции, объединения, переход на C ++ с C, чем ANSI C отличается от традиционного C, и продвинутые приложения.
Вы можете купить книгу здесь.
Эксперт C Программирование: секреты глубокого C Питера ван дер Линдена
Эта книга также не для новичка. После того, как вы узнали C от K & R, книга Линдена может ответить на такие вопросы, как «Как вы можете отлаживать ошибки компоновщика? Что такое запись активации? Почему массивы и указатели не идентичны? В отличие от большинства простых технических книг, Линдену удалось увлечь читателя юмором, головоломками, глубиной содержания, культурными ссылками и упражнениями.Хотя некоторые фрагменты в книге могут показаться неактуальными, она по-прежнему доставляет удовольствие, читая истории о хакерах и многое другое.
Джон Барри, автор Sunburst , Technobabble и других книг, говорит: «В программировании на Expert C Питер ван дер Линден объединяет знания языка C и тонкое чувство юмора для создания книги по программированию на C, которая выделяется среди других. пачка. В жанре, который слишком часто известен как ветреная, безжизненная проза, звучат живые слова ван дер Линдена, насмешливое отношение и примеры из реальной жизни.”
Для энтузиастов программирования на C эта книга рассказывает об историях и оценке языка. Помимо знаний, Линден обсуждает передовые концепции, связанные с компиляцией, указателями и использованием памяти. В 11 главах есть положительные заголовки, которые заставляют вас интересоваться связями, структурами данных времени выполнения, объявлениями, массивами и так далее.
Вы можете купить книгу здесь.
Позвольте нам по Яшавант П. Канеткар
Это книга, которая поможет вам выучить C с нуля.Автор, который говорит, что он выбрал язык из книги Денниса Ритчи по программированию на Си, объяснил основные понятия, такие как инструкция по управлению решением, сложное принятие решения, инструкция по управлению циклом, сложные повторения, инструкция по управлению делом, функции, указатели, рекурсия пересмотренные типы данных, препроцессор c, массивы, строки, структуры, консольный ввод / вывод и ввод / вывод файлов, C в Linux и операции с битами в простом для понимания формате. Книга также научит вас создавать программы с использованием Visual Studio и NetBeans.
Вы можете купить его здесь.
Введение в алгоритмы 3-е издание Томас Х. Кормен, Чарльз Лейзерсон, Рональд Л. Ривест и Клиффорд Стейн и прикладная наука в Йельском университете, должны сказать об этой книге: « Введение в алгоритмы» , «Библия» в этой области, представляет собой всеобъемлющий учебник, охватывающий весь спектр современных алгоритмов: от самых быстрых алгоритмов и структур данных до полиномиальных. алгоритмы для, казалось бы, труднопреодолимых задач: от классических алгоритмов в теории графов до специальных алгоритмов для сопоставления строк, вычислительной геометрии и теории чисел.В пересмотренном третьем издании, в частности, добавлена глава о деревьях Ван-Эмде-Боаса, одной из наиболее полезных структур данных, и о многопоточных алгоритмах, тема все большей важности ».
Книга предназначена для читателей всех уровней. Имея небольшой опыт программирования, учащиеся могут постичь магию — дизайн и анализ — алгоритмов. Книга широко охватывает основы, статистику сортировки и порядка, структуры данных, передовые методы, такие как динамическое программирование и жадные алгоритмы, сложные структуры данных, такие как деревья Фибоначчи и Ван-Эмде-Боаса, алгоритмы графов и некоторые отдельные темы, такие как матричные операторы, линейное программирование, полиномы и БПФ, сопоставление строк, вычислительная геометрия и NP-полнота.
Вы можете купить книгу здесь.
Структуры данных и алгоритмы, упрощенные Нарасимхой Каруманчи
Для кого предназначена эта книга? Профессор Синь-Му Цай, Национальный университет Тайваня, отвечает на это в своей рецензии на книгу. Он говорит: «Эта книга является хорошим дополнением к традиционному учебнику по структуре данных, поскольку она предлагает много хороших примеров кода и подборку соответствующих проблем ** с решениями **. В этой книге нет глубокого анализа или подробных доказательств, которые не предназначены для этой книги (например, в качестве учебника для обучения алгоритму и анализу сложности), и что вы сможете найти в обычном учебнике по структуре данных.Книга также может быть полезна для профессионала, который просто хочет быстро ознакомиться с важными концепциями и реализациями структуры данных ».
Рецензенты на Amazon считают, что эта книга необходима для собеседований и конкурсных экзаменов. Автор акцентирует внимание на проблемном анализе, а не на теории. Книга написана на C и C ++. Комплексное введение, рекурсия и обратный поиск, связанные списки, стеки, очереди, деревья, кучи, алгоритмы графов, сортировка, поиск, алгоритмы выбора, таблицы символов, хеширование, строковые алгоритмы, «разделяй и властвуй» и жадные алгоритмы, классы сложности и Динамическое программирование — ключевые главы книги.Похоже, он покрыл почти все, что нужно для вечернего чтения!
Вы можете купить книгу здесь.
Резюме
Компьютеры — это не вычисления, а информация — ее организация, получение и управление ею. Вы хотите писать эффективные программы? Тогда вам нужно понять и научиться работать со структурами данных. Структуры данных и алгоритмы говорят вам, как вы можете использовать языки программирования, которые вы освоили, для эффективного использования.Возьмите C и C ++, внедрите и поэкспериментируйте со структурами данных и посмотрите, насколько это интересно. Несмотря на молодость, надежные C и C ++ продолжают оставаться языками программирования для нескольких приложений.
.С его помощью вы можете перейти от новичка к эксперту , следуя нашим рекомендованная книжная полка программиста C ++ «Начинающий эксперт». Книги перечислены в том порядке, в котором вы должны прочитать их , но Программирование на C ++ Язык является полезным справочным материалом для работы с другими книгами.
Моя собственная книга, предназначенная для новых программистов. Вы уйдете от знания
ничего о программировании, чтобы иметь сильное понимание C ++ и объектно-ориентированного
программирование! Вы изучите все основы, в том числе
|
вторая по популярности книга , купленная нашими читателями.
Теперь, когда у вас есть представление о том, как работает язык, вы готовы учиться
кое-что о применении этого на практике. Практическое программирование на C ++ delves
во большую глубину во многих областях; вы узнаете практические советы по использованию
язык и написание лучшего кода. Темы включают
| |
Итак, вы приобрели некоторые базовые навыки и научились мыслить как программист. Сейчас
пришло время проверить себя. Программирование Жемчуг бросит пятнадцать сложных
сценарии у тебя. Более того, это одна из моих самых любимых книг о
программирование: это просто , очень весело . Развлекись, ты научишься
| |
Это первая книга, которая действительно выделяет вас.Как только вы прочитаете это,
у вас будет арсенал инструментов для решения любых задач программирования. Хотя
Вы, вероятно, не будете использовать все 50 советов, вы узнаете многие из
нюансы C ++ и избежать многочисленных подводных камней — вскоре после того, как я прочитал это
Книга в первый раз, я обнаружил, что ловит ошибки только из материала
почерпнул из нескольких советов. Среди вещей, которые вы узнаете:
| |
Прочитав Effective C ++ , вы будете взывать к Скотту Майерсу и
это отличная вторая книга. Темы более конкретны — и, следовательно, меньше
в целом применимы — но принципы разумны, и охват
сильный. Вы узнаете о конкретных проблемах дизайна, в том числе
| |
Одна из самых популярных книг, купленных нашими читателями. человек, который изобрел C ++ , Язык программирования C ++ — это Библия
C ++. Он охватывает огромный спектр тем (черт, весь язык!)
Еще лучше, вы поймете , как использовать языковые функции.
Письмо Страуструпа порой плотно, и части этой книги часто могут стоять
быть прочитанным несколько раз, чтобы получить полный эффект.Тем не менее, ширина
покрытия поражает. Эта книга также служит отличным справочником , и я держу ее под рукой всякий раз, когда я работаю с C ++. Если у вас есть вопрос о языке, это почти наверняка ответил здесь . Хотя эта книга настолько обширна, что трудно вытащить из небольшого списка из того, что вы выучите, вот несколько вещей, которые вы можете получить из этой книги
| |
Прочитайте рецензии на книги в следующих категориях или воспользуйтесь некоторыми советами по получению максимальной отдачи книг по программированию.
Следует отметить, что никто не станет экспертом по программированию за одну ночь; эти книги не гарантируют, что вы станете экспертом больше, чем читаете учебник гарантирует вам А.Вы должны применить свои знания на практике в течение длительного периода времени. Эти книги, однако, помогут вам получить максимальное количество знаний и практических советов, которые помогут уменьшить обучение время. ,