OTUS

Программист С

  • Начальный уровень
  • Наставник: Нет
  • Сертификат: Нет
  • Формат: Online
  • Рассрочка: Нет
  • Язык: Русский
  • Осталось мест: Неограничено
Записаться

Программист С

Что даст вам этот курс


Вы сможете использовать C на практике и решать задачи Middle-уровня. В процессе обучения вы рассмотрите устройство UNIX-подобных ОС и сопутствующего инструментария. Получите практические советы по написанию конкретных классов программ: веб-сервисов, демонов, игр, взаимодействия с БД, конкурентного программирования (многопоточных и многопроцессных программ).
Еще одна особенность курса в том, что вы познакомитесь с аналогами ООП в C, хотя традиционно считается, что ООП в C не бывает.

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


Курс для тех, кто:

Уткнулся в пределы быстродействия используемого им языка программирования, например, Python.

Хочет задействовать в другом языке, опять же к примеру в Python, стороннюю библиотеку, написанную на C, и сталкивается с проблемами взаимодействия между языками.

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

Хочет начать разрабатывать под микроконтроллеры и развиваться в IoT-направлении

Хочет заниматься системным программированием

Что даст вам обучение на курсе?


Изучите синтаксис С

Изучите основы архитектуры процессора и памяти

Изучите основы ассемблер

Сможете писать низкоуровневые приложения

Изучите структуры данных

Научитесь писать сетевые приложения (и клиенты, и серверы)

Научитесь быстро находить ошибки

Сможете написать приложения под UNIX

Сможете понять, как С используется в играх и веб-приложениях

Поймете, как пишутся приложения под микроконтроллеры

Поймете, как интегрируется С с PostgreSQL, MySQL и SQLite

В конце курса вы реализуете полноценный проект на C: это может быть какая-то ваша рабочая задача, своя идея или предложенная нами тема.

Процесс обучения


Образовательный процесс происходит ONLINE в формате вебинаров (язык преподавания — русский). В рамках курса слушателям предлагаются к выполнению домашние задания, которые позволяют применить на практике знания, полученные на занятиях. По каждому домашнему заданию преподаватель дает развернутый фидбек. В течение всего учебного процесса преподаватель находится в едином коммуникационном пространстве с группой, т. е. при обучении слушатель может задавать преподавателю уточняющие вопросы по учебным материалам.
Программа обучения
Современный С
  • Тема 1. Инструментарии разработки
  • Тема 2. Основные конструкции
  • Тема 3. Типы данных
  • Тема 4. Типы данных (продолжение)
  • Тема 5. Стандарты C90/C99/C11
  • Тема 6. Современные практики программирования на С
Сложные структуры данных
  • Тема 7. Динамические структуры данных
  • Тема 8. Алгоритмы поиска и сортировки
Методики программирования
  • Тема 9. Библиотеки языка С
  • Тема 10. Препроцессор
  • Тема 11. ООП в C
  • Тема 12. Обработка ошибок
  • Тема 13. Основы ассемблера
  • Тема 14. Консультация по вопросам ДЗ (Q&A)
Среда UNIX
  • Тема 15. История, философия и основы работы в UNIX
  • Тема 16. Стандарт POSIX и программирование под UNIX
  • Тема 17. Введение в процессы
  • Тема 18. Демоны UNIX
Процессы в С
  • Тема 19. Взаимодействие между процессами
  • Тема 20. Разделяемая память
Многопоточность в С
  • Тема 21. Введение в потоки
  • Тема 22. Механизмы синхронизации
  • Тема 23. Функции в многопоточных приложениях
Сетевое взаимодействие
  • Тема 24. Сетевое взаимодействие
  • Тема 25. Асинхронные сетевые интерфейсы
  • Тема 26. Веб-сервисы
Микроконтроллеры
  • Тема 27. Введение в микроконтроллеры
  • Тема 28. Введение в Ардуино
  • Тема 29. Разработка приложений на Ардуино
Работа с базами данных
  • Тема 30. Современные СУБД
  • Тема 31. Работа с СУБД из C
Создание игр
  • Тема 32. Библиотеки DirectX и OpenGL
  • Тема 33. Работа с устройствами ввода
  • Тема 34. Интерактивность в играх
Проектная работа
  • Тема 35. Выбор темы и организация проектной работы
  • Тема 36. Консультация по проектам и домашним заданиям
  • Тема 37. Защита проектных работ
  • Тема 38. Подведение итогов курса
Что нужно знать?
  • Базовые навыки работы в консоли UNIX-подобных ОС;
  • - Знание любого промышленного языка программирования
Знания и навыки, которые приобретете
  • Получите материалы по всем пройденным занятиям (видеозаписи вебинаров, выполненные домашние задания, выпускной проект)
  • Научитесь писать многопоточные и многопроцессные приложения
  • Получите сертификат об окончании курса от OTUS
  • Научитесь писать нетривиальные макросы
  • Поймете, как используется С в играх и веб-сервисах
Партнеры

Преподаватели

  • Андрей Кравчук

    10 лет опыта коммерческой разработки на Python, 12 лет опыта на C/C++. На данный момент занимается разработкой и поддержкой проектов на фрилансе.Участник релиза 5-ой версии Free Download Manager. В рамках работы на фрилансе разрабатывал аналог Яндекс.маркета для печатной продукции на европейском рынке. Автор ряда библиотек с открытым исходным кодом. Ценитель концептуальной стройности UNIX-подобных систем.Закончил университет «Дубна», в котором впоследствии преподавал дисциплины «C++», «Python», «Программирование в UNIX». Академическая степень - магистр прикладной математики и информатики.Область интересов - highload, машинное обучение, LISP-подобные языки. Преподаватель

  • Виктор Коробков

    Опыт работы в IT-индустрии более 15 лет, опыт преподавания более 20ти. В настоящее время:-программист Центра интеллектуальных геоинформационных технологий (ЦИГИТ) ФГБОУ ВО "АГУ";- старший преподаватель кафедры Автоматизированных систем обработки информации и управления по направлениям "Программирование и основы алгоритмизации", "Базы данных", "Системы искусственного интеллекта";- соучредитель малого инновационного предприятия ООО "ФореСайс" - научные исследования в области естественных и технических наук, разработка программного обеспечения. Навыки: программирование С/С++, Delphi; проектирование и разработка баз данных: СУБД MSVisualFoxPro, MSAccess, MSSQLServer, PostgreSQL.Имеет 2 патента и 8 свидетельств о регистрации программ для ЭВМ Преподаватель

  • Виктор Легкоступ

    Научный сотрудник предприятия ВПК

    Специалист по математике, электронике, статистике, компьютерной алгебре, численному моделированию. Опытный научно-технический работник.Более 5 лет работает на предприятии военно-промышленного комплекса Республики Беларусь на должности научного сотрудника. Занимается системами радиолокации, навигации и управления беспилотными летательными аппаратами.Ключевые навыки: C++, Python, Matlab/Simulink, программный пакет Mathematica.Образование:— физический факультет БГУ;— магистратура и аспирантура в Белорусском государственном университете информатики и радиоэлектроники (БГУИР). Преподаватель