Курс на 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)»Учеников на курсе 3
Сертификаты, выданные на курсе «Современный язык Си (стандарт 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 часов в неделю

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