- Книги, 21 марта 2017 в 21:09
- Иван Бирюков
Язык Си — это очень мощный язык программирования, и к тому же один из самых популярных. Он очень гибок и не накладывает на программиста никаких ограничений, но именно это и может стать проблемой при изучении. Поэтому мы подобрали для вас несколько книг, которые помогут разобраться с основами языка, не отстрелив себе пару конечностей 😉
The C Book
Книга «The C Book» предназначена для тех, кто уже имеет опыт программирования на высокоуровневых языках. Она посвящена моментам, характерным именно для Си.
- Введение в Си.
- Переменные и арифметика.
- Логические выражения и условные операторы.
- Функции.
- Массивы и указатели.
- Структуры данных.
- Препроцессор.
- Особенности Си.
- Библиотеки.
- Примеры программ.
Программирование на С для начинающих
«Программирование на С для начинающих» — учебник для максимально быстрого освоения языка, содержащий в себе много практического материала. Изложение четкое и простое, вы узнаете, как организовать программу, хранить и отображать данные, работать с переменными, операторами, вводом/выводом, указателями, массивами, функциями и многими другими вещами.
Пособие содержит всё самое важное, что вам нужно знать для программирования на C:
- Структура программы.
- Логические операторы и выражения.
- Переменные.
- Циклы.
- Встроенные функции.
- Массивы и указатели.
- Тестирование программ.
C Elements of Style
«C Elements of Style» — это полезное руководство, описывающее основы хорошего стиля программирования. Оно научит вас писать код, который будет легко читать, понимать и поддерживать.
В книге вы найдёте советы по написанию комментариев, именованию переменных, форматированию, организации каталогов, созданию сборочных файлов и другим темам.
Изучаем программирование на C
Книга из серии Head First, которая использует те же подходы, что и другие книги цикла. Материал подается в достаточно игровой форме и с использованием огромного количества иллюстраций. В книге рассматриваются:
- основы языка Си;
- динамическое управление памятью;
- указатели и арифметические операции с ними;
- многопоточность;
- сетевое программирование.
Если вы не можете осилить классические учебники по Си, то не отчаивайтесь и попробуйте эту книгу. Она подойдет даже для новичков, не изучавших никогда программирование вообще.
Программирование на C для начинающих
Еще один хороший учебник по Си. Рассчитан на читателей, никогда не писавших кода и стремящихся начать свое знакомство с программированием именно с Си. Написан доступным языком. Из-за нацеленности на новичков книга охватывает не все аспекты языка. Из минусов можно выделить опечатки в тексте и программном коде. Но для настоящих кодеров такое никогда не было проблемой!
Build Your Own Lisp
Изучайте язык Си и одновременно пишите свой язык программирования — минималистскую версию Lisp — меньше чем за 1000 строк кода.
Эта книга предназначена для тех, кто хочет изучить Си и / или написать свой язык программирования. Однако вам явно потребуется какой-то опыт написания кода, поэтому в качестве первой книги мы её не рекомендуем.
The GNU C Reference Manual
«The GNU C Reference Manual» — это шпаргалка по языку Си стандартов C89 ANSI, C99 ISO и расширениям GNU. Она точно не нужна начинающим программистам.
- Лексические элементы.
- Типы данных.
- Выражения и операции.
- Операторы.
- Функции.
- Структура программы и области видимости.
- Пример программы.
The GNU C Programming Tutorial
Руководство «The GNU C Programming Tutorial» понятным образом объясняет читателю основы языка. Оно подробно описывает все основные элементы Си и рассказывает, как писать на нём программы, делая акцент на компиляторе GNU/Linux.
Рассматриваются такие темы, как функции, переменные и их объявление, области видимости, операторы, указатели, циклы, массивы, строки, а также многие другие.
Essential C
Эта книга — небольшая методичка, составленная в Стэнфорде. Она вкратце описывает все основы языка Си. Из-за сжатых объяснений рекомендуется, чтобы у читателя уже был опыт программирования.
Затрагиваются такие темы: переменные, операторы, циклы, функции, ссылки, указатели, структуры, препроцессор и стандартная библиотека.
- Вступление.
- Базовые типы и операторы.
- Условные операторы.
- Сложные типы данных.
- Функции.
- Препроцессор.
- Массивы и указатели.
- Стандартная библиотека.
Beej’s Guide to C Programming
Книга «Beej’s Guide to C Programming» пытается вывести читателя из состояния полного непонимания Си и дать ему понять, что Си — это лучший язык программирования.
- Основы программирования.
- Переменные, выражения и операторы.
- Возвращение к основам.
- Функции.
- Переменные, часть 2.
- Указатели.
- Структуры.
- Массивы.
- Строки.
- Динамическая память.
- Продвинутые фичи.
- Стандартная библиотека ввода / вывода.
- Управление строками.
- Математика.
Modern C
«Modern C» стремится мотивировать читателя повысить свой уровень знания языка. Книга разделена на 5 уровней:
- Первый уровень предоставляет читателю базовые знания о программах Си, их целях и структуре.
- Второй уровень описывает основные принципы и фичи, такие как условные операторы, типы данных и функции.
- Третий уровень ведёт к сердцу Си. Он рассказывает об указателях, модели памяти языка и его стандартной библиотекеe.
- Четвёртый уровень затрагивает такие продвинутые темы, как производительность, атомарность, потоки, и другие.
- Пятый уровень — в нём автор описывает своё видение развития языка.
An Introduction to GCC
Руководство «An Introduction to GCC» рассказывает о C и C++ компиляторах GNU, gcc and g++, являющихся частью GNU Compiler Collection (GCC).
- Вступление.
- Компиляция Си-программы.
- Опции компиляции.
- Использование препроцессора.
- Компиляция для отладки.
- Компиляция с оптимизацией.
- Компиляция CPP-программы.
- Платформо-специфические опции.
- Решение проблем.
- Инструменты.
- Принципы работы компилятора.
- Изучение скомпилированных файлов.
- Типичные ошибки.
- Дополнительные материалы.
Вот ещё несколько бесплатных книг по языку Си:
И, разумеется, не стоит забывать про каноничную книгу Кернигана и Ритчи: The C Programming Language. Сложная, не для начинающих, но по праву признана шедевром.
Книги — вещь для профессионалов, и книги для программистов — не исключение. В данной статье мы отобрали 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.
Когда я в свое время учил С, то перебрал массу книг. На мой взгляд, две самые лучшие книги по С для начинающего, это:
Вторая потруднее, но после первой читается легко. Если книга Кинга покажется тяжелой, есть также неплохая полегче:
В ней есть несколько ошибок, но в целом очень неплохая книжка, ее можно параллельно с Кингом читать, и она читается совсем легко. Для нее, к тому же, есть перевод.
Хочу отметить, что книги Кинга и Рика, с моей точки зрения, гораздо быстрее помогут Вам стать профессионалом, чем большинство других, так как они написаны в том же ключе, в котором идет реальная разработка на С, и правильно расставляют акценты. Плюс, там прекрасные упражнения. Разумеется, никакая книга без реальных задач и проектов не поднимет Вас выше определенного уровня.
Дейтелов брать бы не стал — они портят почти любой язык, о котором пишут (хотя формально у них все правильно). Про то, как они изуродовали обучение по Python, есть очень емкий отзыв Питера Норвига, программиста высочайшего класса и директора Google по R & D. Но это из общих соображений, с их творением по С лично не знаком, так что могу быть не прав.