Хоттабыч
Местный
[OTUS] Программист С (2025)

Освойте практические навыки программирования на С, решайте задачи уровня Middle+
Для кого этот курс?
Для разработчиков, админов и IoT-специалистов, которые:
достигли предела быстродействия используемого языка программирования: например, Python
хотят задействовать в каком-либо языке программирования стороннюю библиотеку на C, но сталкиваются с проблемами взаимодействия между языками
желают лучше разобраться, как программы взаимодействуют с самой ОС и предоставляемыми ей ресурсами
планируют программировать микроконтроллеры и развиваться в IoT-направлении
стремятся заниматься системным программированием
Необходимые знания
Базовые навыки работы в консоли UNIX-подобных ОС
Знание любого промышленного языка программирования
Что вам даст этот курс?
Вы не только глубоко погрузитесь в возможности языка С, но и изучите низкоуровневые особенности устройства UNIX-совместимых ОС и ОС семейства Windows. Исследуете случаи из практики, поработаете с задачами уровня middle, получите практические советы по написанию классов программ
После обучения вы:
Будете знать синтаксис С, основы архитектуры процессора и памяти, основы ассемблера, структуры данных
Сможете писать низкоуровневые приложения и приложения под UNIX
Сможете писать приложения-клиенты и приложения-серверы, а также быстро находить ошибки
Поймёте, как С используется в играх и веб-приложениях
Поймёте, как пишутся приложения под микроконтроллеры
Поймёте, как язык С интегрируется с PostgreSQL, MySQL, SQLite
Программа
Основы программирования на С
В модуле будет рассмотрено современное состояние языка С, его возможности и особенности в соответствии со стандартами. Будут разбираться базовые конструкции языка С, работа с наиболее распространёнными структурами данных, а так же основы практической разработки под Windows и UNIX-подобные ОС.
Тема 1: Инструментарии разработки
Тема 2: Основы языка C //ДЗ
Тема 3: Стандарты C
Тема 4: Best practices программирования
Тема 5: Препроцессор
Тема 6: Библиотеки / ДЗ
Тема 7: Основы ассемблера / ДЗ
Тема 8: Консультация по вопросам ДЗ (Q&A)
Подготовительный блок: основы C и алгоритмы
Эти занятия помогут освежить базовые знания, которые понадобятся в первом модуле курса. Материалы не входят в обязательную программу. Используйте их: до старта курса, если давно не работали с C; параллельно с первым модулем, если чувствуете, что не хватает базовых знаний; точечно — можно смотреть только те темы, которые необходимо повторить.
Тема 1: Типы данных
Тема 2: Типы данных (продолжение)
Тема 3: Динамические структуры данных
Тема 4: Алгоритмы поиска и сортировки
Современный С
В модуле будут рассмотрены элементы сборки программы на языке С: статические и динамические библиотеки. Будут приведены примеры поиска, обнаружения и обработки ошибок в коде, а также методики ООП в языке C.
Тема 1: История, философия и основы работы в UNIX / ДЗ
Тема 2: Программирование под UNIX / ДЗ
Тема 3: Программирование под Windows, интерфейс WinAPI
Тема 4: ООП в C / ДЗ
Тема 5: Обработка ошибок / ДЗ
Процессы в UNIX
Будут рассмотрены особенности программирования под UNIX подобные операционные системы и существующие для этого инструментальные средства. Будет разбираться понятие программ демонов и механизмы их создания.
Тема 1: Введение в процессы
Тема 2: Демоны UNIX
Тема 3: Взаимодействие между процессами / ДЗ
Тема 4: Разделяемая память / ДЗ
Механизмы многопоточности
В модуле рассматриваются принципы создания потоков, что это такое и для чего они нужны. Будут рассмотрены механизмы синхронизации для обеспечения целостности данных.
Тема 1: Введение в потоки / ДЗ
Тема 2: Механизмы синхронизации
Тема 3: Функции в многопоточных приложениях
Тема 4: Консультация по вопросам ДЗ (Q&A)
Сетевое программирование
В модуле будут рассмотрены методы и технологии взаимодействия программ по сети с помощью кода на языке С. Будут показаны примеры создания серверных и клиентских приложений.
Тема 1: Сетевое взаимодействие / ДЗ
Тема 2: Асинхронные сетевые интерфейсы
Тема 3: Веб-сервисы / ДЗ
Введение в ядро Linux
Тема 1: Современные архитектуры ОС
Тема 2: Ядро Linux
Тема 3: Инструментарий для программистов ядра //ДЗ
Тема 4: Система драйверов //ДЗ
Микроконтроллеры
В модуле рассматриваются вопросы применения языка С для работы с микроконтроллерами. В качестве примера будет рассмотрена архитектура Ардуино и показаны примеры программирования на С с использованием микросхемы Ардуино.
Тема 1: Введение в микроконтроллеры
Тема 2: Введение в Ардуино
Тема 3: Разработка приложений на Ардуино
Базы данных
Познакомимся с основными направлениями развития современных СУБД и научимся писать запросы на С к базам данных, реализованным на СУБД PostgreSQL, MySQL и SQLite.
Тема 1: Современные СУБД
Тема 2: Работа с СУБД из C / ДЗ
Создание игр
В модуле представлены основные принципы разработки игр на С. Будут рассмотрены библиотеки DirectX и OpenGL для работы с графикой. Научимся создавать функции работы с устройствами ввода/вывода и создавать интерактивность в играх.
Тема 1: Графические интерфейсы / ДЗ
Тема 2: Игровые фреймворки на С
Тема 3: Современные паттерны / ДЗ
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект - это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.
Тема 1: Выбор темы и организация проектной работы
Тема 2: Консультация по проектам и домашним заданиям
Тема 3: Защита проектных работ
Тема 4: Подведение итогов курса
Преподаватели
Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания
Виктор Коробков. Консультант команды технологического обеспечения ИТ ИКС 5 Технологии
Андрей Кравчук. C/Python Developer
Виктор Легкоступ. DSP system developer
Ольга Плисенко. Зав. сектором разработки ЦИГИТ АГУ
Скачать:

Освойте практические навыки программирования на С, решайте задачи уровня Middle+
Для кого этот курс?
Для разработчиков, админов и IoT-специалистов, которые:
достигли предела быстродействия используемого языка программирования: например, Python
хотят задействовать в каком-либо языке программирования стороннюю библиотеку на C, но сталкиваются с проблемами взаимодействия между языками
желают лучше разобраться, как программы взаимодействуют с самой ОС и предоставляемыми ей ресурсами
планируют программировать микроконтроллеры и развиваться в IoT-направлении
стремятся заниматься системным программированием
Необходимые знания
Базовые навыки работы в консоли UNIX-подобных ОС
Знание любого промышленного языка программирования
Что вам даст этот курс?
Вы не только глубоко погрузитесь в возможности языка С, но и изучите низкоуровневые особенности устройства UNIX-совместимых ОС и ОС семейства Windows. Исследуете случаи из практики, поработаете с задачами уровня middle, получите практические советы по написанию классов программ
После обучения вы:
Будете знать синтаксис С, основы архитектуры процессора и памяти, основы ассемблера, структуры данных
Сможете писать низкоуровневые приложения и приложения под UNIX
Сможете писать приложения-клиенты и приложения-серверы, а также быстро находить ошибки
Поймёте, как С используется в играх и веб-приложениях
Поймёте, как пишутся приложения под микроконтроллеры
Поймёте, как язык С интегрируется с PostgreSQL, MySQL, SQLite
Программа
Основы программирования на С
В модуле будет рассмотрено современное состояние языка С, его возможности и особенности в соответствии со стандартами. Будут разбираться базовые конструкции языка С, работа с наиболее распространёнными структурами данных, а так же основы практической разработки под Windows и UNIX-подобные ОС.
Тема 1: Инструментарии разработки
Тема 2: Основы языка C //ДЗ
Тема 3: Стандарты C
Тема 4: Best practices программирования
Тема 5: Препроцессор
Тема 6: Библиотеки / ДЗ
Тема 7: Основы ассемблера / ДЗ
Тема 8: Консультация по вопросам ДЗ (Q&A)
Подготовительный блок: основы C и алгоритмы
Эти занятия помогут освежить базовые знания, которые понадобятся в первом модуле курса. Материалы не входят в обязательную программу. Используйте их: до старта курса, если давно не работали с C; параллельно с первым модулем, если чувствуете, что не хватает базовых знаний; точечно — можно смотреть только те темы, которые необходимо повторить.
Тема 1: Типы данных
Тема 2: Типы данных (продолжение)
Тема 3: Динамические структуры данных
Тема 4: Алгоритмы поиска и сортировки
Современный С
В модуле будут рассмотрены элементы сборки программы на языке С: статические и динамические библиотеки. Будут приведены примеры поиска, обнаружения и обработки ошибок в коде, а также методики ООП в языке C.
Тема 1: История, философия и основы работы в UNIX / ДЗ
Тема 2: Программирование под UNIX / ДЗ
Тема 3: Программирование под Windows, интерфейс WinAPI
Тема 4: ООП в C / ДЗ
Тема 5: Обработка ошибок / ДЗ
Процессы в UNIX
Будут рассмотрены особенности программирования под UNIX подобные операционные системы и существующие для этого инструментальные средства. Будет разбираться понятие программ демонов и механизмы их создания.
Тема 1: Введение в процессы
Тема 2: Демоны UNIX
Тема 3: Взаимодействие между процессами / ДЗ
Тема 4: Разделяемая память / ДЗ
Механизмы многопоточности
В модуле рассматриваются принципы создания потоков, что это такое и для чего они нужны. Будут рассмотрены механизмы синхронизации для обеспечения целостности данных.
Тема 1: Введение в потоки / ДЗ
Тема 2: Механизмы синхронизации
Тема 3: Функции в многопоточных приложениях
Тема 4: Консультация по вопросам ДЗ (Q&A)
Сетевое программирование
В модуле будут рассмотрены методы и технологии взаимодействия программ по сети с помощью кода на языке С. Будут показаны примеры создания серверных и клиентских приложений.
Тема 1: Сетевое взаимодействие / ДЗ
Тема 2: Асинхронные сетевые интерфейсы
Тема 3: Веб-сервисы / ДЗ
Введение в ядро Linux
Тема 1: Современные архитектуры ОС
Тема 2: Ядро Linux
Тема 3: Инструментарий для программистов ядра //ДЗ
Тема 4: Система драйверов //ДЗ
Микроконтроллеры
В модуле рассматриваются вопросы применения языка С для работы с микроконтроллерами. В качестве примера будет рассмотрена архитектура Ардуино и показаны примеры программирования на С с использованием микросхемы Ардуино.
Тема 1: Введение в микроконтроллеры
Тема 2: Введение в Ардуино
Тема 3: Разработка приложений на Ардуино
Базы данных
Познакомимся с основными направлениями развития современных СУБД и научимся писать запросы на С к базам данных, реализованным на СУБД PostgreSQL, MySQL и SQLite.
Тема 1: Современные СУБД
Тема 2: Работа с СУБД из C / ДЗ
Создание игр
В модуле представлены основные принципы разработки игр на С. Будут рассмотрены библиотеки DirectX и OpenGL для работы с графикой. Научимся создавать функции работы с устройствами ввода/вывода и создавать интерактивность в играх.
Тема 1: Графические интерфейсы / ДЗ
Тема 2: Игровые фреймворки на С
Тема 3: Современные паттерны / ДЗ
Проектная работа
Заключительный месяц курса посвящен проектной работе. Свой проект - это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.
Тема 1: Выбор темы и организация проектной работы
Тема 2: Консультация по проектам и домашним заданиям
Тема 3: Защита проектных работ
Тема 4: Подведение итогов курса
Преподаватели
Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания
Виктор Коробков. Консультант команды технологического обеспечения ИТ ИКС 5 Технологии
Андрей Кравчук. C/Python Developer
Виктор Легкоступ. DSP system developer
Ольга Плисенко. Зав. сектором разработки ЦИГИТ АГУ
Скачать:
 📥 Скрытое содержимое! Войдите или Зарегистрируйтесь