Программист С [2022]
OTUS
Виктор Коробков, Андрей Кравчук, Виктор Легкоступ
Вы сможете использовать C на практике и решать задачи Middle-уровня.
В процессе обучения вы рассмотрите устройство UNIX-подобных ОС и сопутствующего инструментария. Получите практические советы по написанию конкретных классов программ: веб-сервисов, демонов, игр, взаимодействия с БД, конкурентного программирования (многопоточных и многопроцессных программ).
Еще одна особенность курса в том, что вы познакомитесь с аналогами ООП в C, хотя традиционно считается, что ООП в C не бывает.
Курс для тех, кто:
- Уткнулся в пределы быстродействия используемого им языка программирования, например, Python.
- Хочет задействовать в другом языке, опять же к примеру в Python, стороннюю библиотеку, написанную на C, и сталкивается с проблемами взаимодействия между языками.
- Хочет подробнее узнать, как программы взаимодействуют с ОС и предоставляемыми ей ресурсами.
- Хочет начать разрабатывать под микроконтроллеры и развиваться в IoT-направлении.
- Хочет заниматься системным программированием.
- Изучите синтаксис С
- Изучите основы архитектуры процессора и памяти
- Изучите основы ассемблер
- Сможете писать низкоуровневые приложения
- Изучите структуры данных
- Научитесь писать сетевые приложения (и клиенты, и серверы)
- Научитесь быстро находить ошибки
- Сможете написать приложения под UNIX
- Сможете понять, как С используется в играх и веб-приложениях
- Поймете, как пишутся приложения под микроконтроллеры
- Поймете, как интегрируется С с PostgreSQL, MySQL и SQLite
- Получите материалы по всем пройденным занятиям (видеозаписи вебинаров, выполненные домашние задания, выпускной проект);
- Научитесь писать многопоточные и многопроцессные приложения;
- Научитесь писать нетривиальные макросы;
- Поймете, как используется С в играх и веб-сервисах.
Модуль 1 - Современный С
Тема 1. Инструментарии разработки
Тема 2. Основные конструкции
Тема 3. Типы данных
Тема 4. Типы данных (продолжение)
Тема 5. Стандарты C90/C99/C11
Тема 6. Современные практики программирования на С
Тема 2. Основные конструкции
Тема 3. Типы данных
Тема 4. Типы данных (продолжение)
Тема 5. Стандарты C90/C99/C11
Тема 6. Современные практики программирования на С
Модуль 2 - Сложные структуры данных
Тема 7. Динамические структуры данных
Тема 8. Алгоритмы поиска и сортировки
Тема 9. Аналоги ООП
Модуль 3 - Методики программированияТема 8. Алгоритмы поиска и сортировки
Тема 9. Аналоги ООП
Тема 10. Библиотеки языка С
Тема 11. Макросы
Тема 12. Обработка ошибок
Тема 13. Основы ассемблера
Модуль 4 - Среда UNIXТема 11. Макросы
Тема 12. Обработка ошибок
Тема 13. Основы ассемблера
Тема 14. Стандарт POSIX и программирование под UNIX
Тема 15. Введение в процессы
Тема 16. Создание демонов
Модуль 5 - Процессы в СТема 15. Введение в процессы
Тема 16. Создание демонов
Тема 17. Межпроцессное взаимодействие
Тема 18. Shared memory
Модуль 6 - Многопоточность в СТема 18. Shared memory
Тема 19. Введение в потоки
Тема 20. Механизмы синхронизации
Тема 21. Функции в многопоточных приложениях
Модуль 7 - Сетевое взаимодействиеТема 20. Механизмы синхронизации
Тема 21. Функции в многопоточных приложениях
Тема 22. Работа с сетью
Тема 23. Асинхронные сетевые интерфейсы
Тема 24. Веб-сервисы
Модуль 8 - МикроконтроллерыТема 23. Асинхронные сетевые интерфейсы
Тема 24. Веб-сервисы
Тема 25. Введение в микроконтроллеры
Тема 26. Введение в Ардуино
Тема 27. Разработка приложений на Ардуино
Модуль 9 - Работа с базами данныхТема 26. Введение в Ардуино
Тема 27. Разработка приложений на Ардуино
Тема 28. Современные СУБД
Тема 29. Интеграция С и СУБД
Модуль 10 - Создание игрТема 29. Интеграция С и СУБД
Тема 30. Библиотеки DirectX и OpenGL
Тема 31. Работа с устройствами ввода
Тема 32. Интерактивность в играх
Модуль 11 - Проектная работаТема 31. Работа с устройствами ввода
Тема 32. Интерактивность в играх
Тема 33. Выбор темы и организация проектной работы
Тема 34. Консультация по проектам и домашним заданиям
Тема 35. Защита проектных работ
Тема 36. Подведение итогов курса
Тема 34. Консультация по проектам и домашним заданиям
Тема 35. Защита проектных работ
Тема 36. Подведение итогов курса
https://otus.ru/lessons/dev_c/?int_source=courses_catalog&int_term=programming