Язык, на котором работают операционные системы, компиляторы и встроенное оборудование
C — это не историческая редкость, это язык, лежащий в основе Linux, СУБД SQLite, интерпретатора CPython и практически всех микроконтроллерных прошивок, поставляемых сегодня. Понимание C означает понимание того, как действительно работает память, как процессор на самом деле выполняет ваши команды и почему каждый язык более высокого уровня делает те или иные компромиссы. Этот курс охватывает C от первого printf до написания распределителя памяти, хеш-таблицы, связного списка и работающего интерпретатора.
Что вы научитесь делать
Вы начнёте с операторов, управления потоком выполнения, форматированного ввода-вывода и преобразования типов, затем перейдёте к стандартной библиотеке — math.h, string.h, ctype.h — и темам, специфичным для C: перечислениям, аргументам командной строки, классам памяти и макросам препроцессора. Промежуточный раздел охватывает указатели и управление динамической памятью, указатели на функции и обратные вызовы, функции с переменным числом аргументов и модульные многофайловые проекты. Вы реализуете основные структуры данных с нуля: связные списки, бинарные деревья, хеш-таблицы и динамические массивы. Продвинутые курсы охватывают многопоточность и параллелизм, сокет-программирование, межпроцессное взаимодействие, отладку памяти с помощью Valgrind и сетевое программирование с использованием epoll.
Траектория обучения
Тридцать девять курсов охватывают уровни от A1 до C1. Курсы A1 и A2 закладывают синтаксис, рекурсию и стандартную библиотеку. Одиннадцать курсов B1 развивают практические навыки — работа с файлами, побитовые операции, структуры и объединения, препроцессор. Десять курсов B2 углубляют знания: динамическая память, алгоритмы сортировки, хеш-таблицы и заключительный C — создание распределителя памяти. Семь курсов C1 завершают трек работой на уровне системы: Многопоточность и параллелизм, C сокет-программирование, C отладка памяти с Valgrind, C написание простого интерпретатора и C сетевое программирование с epoll.
Как это работает
Каждый курс разделён на короткие, сфокусированные уроки, которые вы выполняете во встроенном редакторе кода с живой обратной связью по вашему выводу. Помощник с искусственным интеллектом доступен всякий раз, когда вы застрянете на segfault, ошибке компоновщика или ошибке на один элемент в арифметике указателей. Прогресс отслеживается для каждого урока, чтобы вы могли делать паузу и возобновлять занятия между сессиями без потери своего места.