Курс на Stepik
Обложка курса «Современный язык Си (стандарт C23)» на Stepik
999 ₽

Современный язык Си (стандарт C23) 0.000

Открыть на
STEPIK.ORG
Категории курса

Курс по языку C для инженеров, которые уже пишут системный код на другом языке. Мы разбираем C23 — nullptr, constexpr, typeof, атрибуты, stdckdint.h, stdbit.h, #embed — и параллельно собираем работающее key-value хранилище с сетевым сервером: формат на диске, восстановление после сбоя, фоновая компакция, событийный цикл на epoll.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Современный язык Си (стандарт C23)»Учеников на курсе 1
Сертификаты, выданные на курсе «Современный язык Си (стандарт C23)»Сертификатов выдано 0
Отзывы о курсе «Современный язык Си (стандарт C23)»Отзывов получено 0
Рейтинг курса «Современный язык Си (стандарт C23)»Рейтинг курса 0.000
Уроки в курсе «Современный язык Си (стандарт C23)»Количество уроков 143
Тесты в курсе «Современный язык Си (стандарт C23)»Количество квизов 84
Стоимость курса «Современный язык Си (стандарт C23)»Стоимость курса 999 ₽
Обновления курса «Современный язык Си (стандарт C23)»Обновления курса
Дата публикации курса «Современный язык Си (стандарт C23)»Дата публикации курса
Последнее обновление курса «Современный язык Си (стандарт C23)»Последнее обновление
Сложность hard

Чему вы научитесь

  • Писать на C23 идиоматично: nullptr, constexpr, typeof, auto, атрибуты, перечисления с фиксированным типом
  • Защищать целочисленную арифметику от переполнения через stdckdint.h вместо ручных проверок
  • Проектировать формат данных на диске, независимый от компилятора и архитектуры
  • Различать неопределённое поведение и «работает на моей машине», и понимать, что делает с ним оптимизатор
  • Управлять временем жизни памяти: арены, пулы, передача владения через API
  • Работать с POSIX-вводом-выводом так, чтобы данные переживали отключение питания
  • Собирать проект и Make, и CMake, управлять видимостью символов и ABI библиотеки
  • Находить ошибки санитайзерами, фаззерами и статическим анализом до того, как их найдут пользователи
  • Писать конкурентный код по модели памяти C11/C23, а не по интуиции
  • Строить сетевой сервер на epoll с корректной остановкой, лимитами и наблюдаемостью

О курсе

Курс по языку C для инженеров, которые уже пишут системный код на другом языке. Мы разбираем C23 — nullptr, constexpr, typeof, атрибуты, stdckdint.h, stdbit.h, #embed — и параллельно собираем работающее key-value хранилище с сетевым сервером: формат на диске, восстановление после сбоя, фоновая компакция, событийный цикл на epoll.

Для кого этот курс

Для инженеров уровня middle и выше, которые пишут системный код на Rust, Go, C++, Zig или Java и которым нужен C — читать чужой код, поддерживать существующую систему, писать библиотеку с C ABI или работать ближе к ядру. Курс не подойдёт тем, кто изучает программирование с нуля: мы объясняем язык, а не программирование. Не подойдёт и тем, кому нужен C89 или встраиваемые системы без современного компилятора — здесь C23 и Linux.

Начальные требования

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

Из инструментов понадобятся GCC 15 или Clang 20 (для C23), Linux x86-64 или aarch64, make и CMake. Всё это есть в любом современном дистрибутиве. Санитайзеры входят в поставку компиляторов; для фаззинга нужен Clang.

Преподаватели курса

Формат курса

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

В конце урока — задание, которое стоит выполнить на своём коде, и вопросы для самопроверки. Главы с третьей по четырнадцатую содержат тестовые задачи.

Все листинги проверены компиляцией, все утверждения о поведении — запуском. Где приводится вывод компилятора, дизассемблера или санитайзера, это настоящий вывод, а не пересказ.

Что вы получите

  • Исходники nestor целиком: библиотека, сервер, клиент, бенчмарк, тесты, фаззеры, скрипты проверки
  • Формат данных и сетевой протокол с документацией и обоснованием решений
  • Набор тестов, который запускается в трёх конфигурациях, включая ASan+UBSan и TSan
  • Makefile и CMakeLists, пригодные для переноса в свой проект
  • Юнит systemd и Dockerfile с многоступенчатой сборкой
  • Тестовые задачи с объяснением после неверного ответа

Нагрузка

4–6 часов в неделю

Расскажите о курсе друзьям