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

Практические навыки программирования на C для разработчиков, админов и IoT-специалистов

28 марта

5 месяцев

Онлайн

Пн/Чт 20:00 Мск

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


  • Вы уткнулись в пределы быстродействия используемого вами языка программирования (например, Python)
  • Вам необходимо задействовать в другом языке стороннюю библиотеку, написанную на C, и сталкиваетесь с проблемами взаимодействия между языками
  • Вы хотите подробнее узнать, как программы взаимодействуют с ОС и предоставляемыми ей ресурсами
  • Вы желаете начать разрабатывать под микроконтроллеры и развиваться в IoT-направлении
  • Вы стремитесь заниматься системным программированием

Необходимые знания

  • Базовые навыки работы в консоли UNIX-подобных ОС
  • Знание любого промышленного языка программирования
Тест и скидка

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

  • Изучите синтаксис С; основы архитектуры процессора и памяти; структуры данных; основы ассемблер
  • Сможете писать низкоуровневые приложения и приложения под UNIX, а также понять, как С используется в играх и веб-приложениях
  • Научитесь писать сетевые приложения (и клиенты, и серверы) и быстро находить ошибки
  • Поймете, как пишутся приложения под микроконтроллеры и как интегрируется С с PostgreSQL, MySQL и SQLite

Особенность курса


Вы познакомитесь с аналогами ООП в C, хотя традиционно считается, что ООП в C не бывает

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

Обучение проходит онлайн: вебинары, общение с преподавателями и вашей группой в телеграме курса, сдача домашних работ и получение обратной связи от преподавателя. Вебинары проводятся 2 раза в неделю по 2 академ. часа и сохраняются в записи в личном кабинете. Вы можете посмотреть их в любое удобное для вас время. В ходе обучения вы будете выполнять домашние задания. Каждое из них посвящено одному из компонентов вашей проектной рыботы. После выполнения всех домашних заданий вы получите готовый итоговый проект.

Глубокое погружение


Вы рассмотрите устройство UNIX-подобных ОС и сопутствующего инструментария

Практикоориентированность


Вы сможете использовать C на практике и решать реальные кейсы и задачи Middle-уровня

Эффективное программирование


Получите практические советы по написанию конкретных классов программ

Трудоустройство

Многие студенты еще во время прохождения первой части программы находят или меняют работу, а к концу обучения могут претендовать на повышение в должности. 

  • Получите помощь с оформлением резюме, портфолио и сопроводительного письма
  • Разместите свое резюме в базе OTUS и сможете получать приглашения на собеседования от партнеров

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

Перспективы направления
Средний уровень зарплат в Москве:
120 000Junior+ специалист
175 000Middle+ специалист
280 000Senior специалист
560
актуальных вакансий

Работодатель курса

Формат обучения

Интерактивные вебинары


2 занятия по 2 ак.ч. в неделю. Доступ к записям и материалам остается у вас навсегда

Практика


Домашние задания + проектная работа, которая усилит ваше портфолио

Активное комьюнити


Общайтесь с преподавателями голосом на вебинарах и в Telegram-чате

Программа

Основы программирования на С

В модуле будет рассмотрено современное состояние языка С, его возможности и особенности в соответствии со стандартами. Будут разбираться базовые конструкции языка С, работа с наиболее распространёнными структурами данных, а так же основы практической разработки под Windows и UNIX-подобные ОС.

Тема 1: Инструментарии разработки

Тема 2: Основные конструкции

Тема 3: Типы данных

Тема 4: Типы данных (продолжение)

Тема 5: Динамические структуры данных

Тема 6: Алгоритмы поиска и сортировки

Тема 7: Препроцессор

Тема 8: Библиотеки

Тема 9: Основы ассемблера

Современный С

В модуле будут рассмотрены элементы сборки программы на языке С: статические и динамические библиотеки. Будут приведены примеры поиска, обнаружения и обработки ошибок в коде, а также методики ООП в языке C.

Тема 1: Стандарты C

Тема 2: Best practices программирования

Тема 3: История, философия и основы работы в UNIX

Тема 4: Стандарт POSIX и программирование под UNIX

Тема 5: Программирование под Windows, интерфейс WinAPI

Тема 6: ООП в C

Тема 7: Обработка ошибок

Тема 8: Консультация по вопросам ДЗ (Q&A)

Процессы в UNIX

Будут рассмотрены особенности программирования под UNIX подобные операционные системы и существующие для этого инструментальные средства. Будет разбираться понятие программ демонов и механизмы их создания.

Тема 1: Введение в процессы

Тема 2: Демоны UNIX

Тема 3: Взаимодействие между процессами

Тема 4: Разделяемая память

Механизмы многопоточности

В модуле рассматриваются принципы создания потоков, что это такое и для чего они нужны. Будут рассмотрены механизмы синхронизации для обеспечения целостности данных.

Тема 1: Введение в потоки

Тема 2: Механизмы синхронизации

Тема 3: Функции в многопоточных приложениях

Сетевое программирование

В модуле будут рассмотрены методы и технологии взаимодействия программ по сети с помощью кода на языке С. Будут показаны примеры создания серверных и клиентских приложений.

Тема 1: Сетевое взаимодействие

Тема 2: Асинхронные сетевые интерфейсы

Тема 3: Веб-сервисы

Микроконтроллеры

В модуле рассматриваются вопросы применения языка С для работы с микроконтроллерами. В качестве примера будет рассмотрена архитектура Ардуино и показаны примеры программирования на С с использованием микросхемы Ардуино.

Тема 1: Введение в микроконтроллеры

Тема 2: Введение в Ардуино

Тема 3: Разработка приложений на Ардуино

Базы данных

Познакомимся с основными направлениями развития современных СУБД и научимся писать запросы на С к базам данных, реализованным на СУБД PostgreSQL, MySQL и SQLite.

Тема 1: Современные СУБД

Тема 2: Работа с СУБД из C

Создание игр

В модуле представлены основные принципы разработки игр на С. Будут рассмотрены библиотеки DirectX и OpenGL для работы с графикой. Научимся создавать функции работы с устройствами ввода/вывода и создавать интерактивность в играх.

Тема 1: Графические интерфейсы

Тема 2: Игровые фреймворки на С

Тема 3: Современные паттерны

Проектная работа

Заключительный месяц курса посвящен проектной работе. Свой проект - это то, что интересно писать студенту. То, что можно создать на основе знаний, полученных на курсе. При этом не обязательно закончить его за месяц. В процессе написания по проекту можно получить консультации преподавателей.

Тема 1: Выбор темы и организация проектной работы

Тема 2: Консультация по проектам и домашним заданиям

Тема 3: Защита проектных работ

Тема 4: Подведение итогов курса

Также вы можете получить полную программу, чтобы убедиться, что обучение вам подходит

Проектная работа


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

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

Руководитель курса

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

Консультант команды технологического обеспечения

ИТ ИКС 5 Технологии

Руководитель курса

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

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

Ольга Плисенко

Эксперты-практики делятся опытом, разбирают кейсы студентов и дают развернутый фидбэк на домашние задания

Ближайшие мероприятия

Открытый вебинар — это настоящее занятие в режиме онлайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.

Встраиваемые системы и программирование микроконтроллеров
Виктор Легкоступ
Бесплатный вебинар предоставляет участникам уникальную возможность погрузиться в мир встраиваемых систем и приобрести новые знания о программировании микроконтроллеров.

На вебинаре мы:
- проведем обзор различных микроконтроллеров и их характеристик
- рассмотрим проектирование встраиваемых систем от идеи до реализации
- разберем на конкретном примере программирование микроконтроллеров
- сделаем отладку и тестирование встраиваемых систем

Вебинар рассчитан на разработчиков и инженеров, которые интересуется встраиваемыми системами и программированием микроконтроллеров.

После участия в вебинаре вы научитесь программировать микроконтроллеры для создания встраиваемых систем.

Регистрируйтесь сейчас - напомним перед вебинаром!
...
6 марта в 17:00
Открытый вебинар
Реализация динамических структур данных на Си и Python
Ольга Плисенко
- О чём вебинар:
Обзор, сравнение и вопросы применения функций управления динамической памятью, а также применения их для построения динамических структур данных. Пример реализации бинарного дерева на С и Python.

- Структура вебинара:
1. Примеры динамических структур данных
2. Схемы управления динамической памятью в С и Python
3. Реализация бинарного дерева на С и Python
4. Применение функций управления динамической памятью.

- Кому подойдёт:
Программистам, изучающим языки С и Python, для развития навыков в области эффективного управления памятью. Для разработчиков программного обеспечения в области больших данных.

- Результаты вебинара:
Слушатели смогут описать схемы управления динамической памятью в C и Python, методы построения динамических структур данных на этих языках, особенности и возможности применения функций динамического управления памятью для конкретных задач. Смогут написать шаблонное приложение для собственной реализации бинарного дерева.

Регистрируйтесь сейчас - напомним перед вебинаром!
...
19 марта в 17:00
Открытый вебинар

Прошедшие
мероприятия

Андрей Кравчук
Открытый вебинар
Unicode в С
Ольга Плисенко
Открытый вебинар
Хеш-таблицы на С. Метод цепочек
Для доступа ко всем прошедшим мероприятиям необходимо пройти входное тестирование
Возможность пройти вступительное тестирование повторно появится только через 3 дня
Результаты тестирования будут отправлены вам на email, указанный при регистрации.
Тест рассчитан на 30 минут, после начала тестирования отложить тестирование не получится!

Корпоративное обучение для ваших сотрудников

Отус помогает развивать высокотехнологичные Команды. Почему нам удаётся это делать успешно:
  • Курсы OTUS верифицированы крупными игроками ИТ-рынка и предлагают инструменты и практики, актуальные на данный момент
  • Студенты работают в группах, могут получить консультации не только преподавателей, но и профессионального сообщества
  • OTUS проверяет знания студентов перед стартом обучения и после его завершения
  • Простой и удобный личный кабинет компании, в котором можно видеть статистику по обучению сотрудников
  • Сертификат нашего выпускника за 5 лет стал гарантом качества знаний в обществе
  • OTUS создал в IT более 120 курсов по 7 направлениям, линейка которых расширяется по 40-50 курсов в год

Отзывы

Алексей Сартаков

23.06.2023
Проходил обучение с января 2023 по август 2023. Что могу сказать - пытался 3 года самостоятельно изучить Си. Никак не получалось. Книги, ютуб, статьи. Заплатил и процесс пошел (не зря же платил за курс). Денег ни капельки не жалко, курс превзошел даже самые смелые мои ожидания! Сразу хочу сказать - уровень программы - выше среднего. Теперь о самом курсе. Смотрел много ютуб обучалок, так же имеется штук 9 книг по Си (реально хорошие толмуты по 800 страниц), но то что давали на курсе с лихвой превышает все печатные издания раза в потора (не говоря уже про ютуб). Очень много уникального материала! Что БОЛЬШЕ ВСЕГО ПОНРАВИЛОСЬ. Это две вещи, даже три. Первая - очень грамотный материал с теорией, с примерами и с кучей ссылок на первоисточники!!!! Нужно что то решить - смотришь урок, если что то и в нём непонятно, то идешь по ссылкам из документации к уроку и там все разжеванно. К сожалению, процентов 60 - это англоязычный материал (наверное это особенность специфики данного языка), но на русском так же полно статей. Второе - очень хорошо разжован сам материал, на каверзные вопросы слушателей, практически всегда лектор давал исчерпывающий ответ. Третье - обратная связь. У нас в чате как то чахло (наверное все спецы), но если были вопросы, то ответ от учителей приходил быстро и по существу (ответ давался в течении 0,5-2,0 часа в рабочее время). Ну и вишенка на торт. Когда ты читаешь книгу или смотришь ютуб, то там все как то однобоко, узкоспециализировано и уровень обычно слабый. На курсах - как на работе - сразу потянули за уши и пришлось догонять остальных. Кроме этого, очень много материала дали такого, о котором ты даже не догадывался. Ты даже не знал что такое есть и так можно ! В общем- резюмирую. От курсов получил раза в три больше чем планировал. Если хотите обучится сами для себя, то это лучшее наверное что можно найти. Никогда не думал, что скажу, что онлайн образование даёт реальные знания и к тому же очень сильные знания. Всем рекомендую, кто хочет обучится СИ - вам именно на этот курс.

Андрей Огурцов

31.05.2023
Закончил Даугавпилсский университет (Латвия). Имею докторскую степень в области физики твердого тела и 15 лет опыта в области исследований сенсорных систем на основе метало оксидных полупроводников. На момент начала курса, работал в Институте физики твердого тела Латвийского Университета в должности исследователя по постдок-проекту связанного с разработкой мультисенсорной диагностической системы. Ввиду высокой техническая сложности исследования, возникала необходимость повышения своей компетентности в области информационных технологий, что и привело меня на курс Otus “Программист С”. Структура курса состоит из разноплановых лекций и домашних заданий, что позволяет получить целостное представление об отрасли и дальше уже сделать выбор интересующего направления. Преподаватели настоящие специалисты своего дела, всегда помогут полезным советом. Курс сложный, поэтому новичкам без подготовки будет тяжко. Тут все зависит от целеполагания, если вам нужны именно знания и опыт, то будьте готовы к усердной работы. Так как моя дальнейшая деятельность будет тесно связана с интернетом вещей и встраиваемыми системами, то мой выбор очевиден, так как без хорошего знания языка Си в этих отраслях делать нечего. В принципе от этого курса можно сделать два ‘спин-офф” курса: первый – курс для начинающих, второй – продвинутый (системное программирование, встраиваемые системы и т.д.). Что касается дальнейшего трудоустройства, то мне уже предложили поучаствовать в одном крупном исследовательском проекте. Познания в области низкоуровневого программирования сделают вас гораздо более конкурентоспособным, особенно если занимаетесь экспериментальной физикой, уж можете мне поверить.

Александр Прасолов

06.04.2023
Работаю в GS nanotech(GSgroup) в данный момент инженером по АСУ ТП. Параллельно занимаюсь ремонтом промышленной и бытовой электроникой. Выбрал курс из-за того, что мне очень интересна эта тема и я хотел попробовать себя в разработке на данном языке. И это очень увлекательно. В данном курсе широко обозревается большой функционал языка, на любой вкус. Долго думал над покупкой курса, и не пожалел! Это стоит того. Искал курсы с подобной тематикой в рунете(программирование на си), только на OTUS нашел и цена меня устроила. Посмотрел все демо-занятия по курсу, за это отдельное спасибо OTUS. Проблем с OTUS у меня не возникло. Из-за моего плотного графика работы+учебы у меня возникли проблемы с выполнением дз, ребята из OTUS пошли на встречу, и дали мне дополнительное время на выполнение и сдачу работ. Домашние работы интересные, местами мне приходилось попотеть, но это из-за недостаточности знаний, нет опыта. Обратная связь в закрытой группе, теперь в телеграмме и это однозначный плюс. С порталом проблем не возникло, все материалы остаются в ЛК. Обучение дало мне более полное представление о том, как работает язык, как его можно и нужно правильно использовать в нынешнее время. Полученные навыки буду активно внедрять в свою деятельность. Спасибо всей команде OTUS.

Петр Усольцев

04.04.2023
Работаю программистом в 1С, учился в Иркутском энергетическом колледже 2008-2011 Заинтересовала тема системного программирования, в интернете увидел что курс по Си есть на ОТУС, туда и пошел получать практику. Понравилось все, особенно домашние задания и развернутая обратная связь по ним. Хотелось бы расширение курса до анализа ядра Linux. Курс дал практическую базу, необходимую для самостоятельного программирования, приглашения в компанию мечты не получал. Курс очень понравился именно практической составляющей и взаимодействием с преподавателем Андреем, который очень понятно все объясняет, дает подсказки и рекомендации. Но курс предназначен для тех кто умеет программировать вообще и что-то читал про устройство Linux и программирование в его среде. Если курс расширят до более углубленного я обязательно еще раз запишусь.

Александр Конобеев

03.04.2023
Очень долго искал этот курс, поскольку тема довольно редкая. Ни разу не пожалел в итоге. Но надо быть готовым тратить достаточно много времени, поскольку курс вышел довольно фундаментальным. Домашние задания на курсе не совсем простые, но очень интересные, и главное полезны для реального применения. Преподавательский состав просто огонь, отдельное спасибо Андрею за его терпение)) Всем рекомендую!

Александр Вдовыдченко

29.11.2022
Курс очень сильно расширят понимание, как в целом работает компьютер и любой язык программирования, а не только учит языку программирования, как многие другие курсы. Кроме этого, происходит знакомство и со структурами данных, алгоритмами, потоками, сетевым стеком и основными библиотеками языка. Иногда мне казалось, что я устроился на вторую работу, поэтому если беретесь за курс - готовьтесь к испытаниям и рассчитывайте свободное время. Отдельное спасибо Андрею Кравчуку за передачу своей экспертизы и знаний, комментариям по ДЗ.

Владимир Белов

01.07.2022
Курс отличный! Несмотря на то, что требуются начальные знания в Computer Science, многие темы "разжевываются" до простого. Большая благодарность преподавателям курса за структурированный материал и полезные комментарии к домашним заданиям.

Игорь Кузнецов

23.06.2022
Очень хороший курс, который охватывает базовые вещи для разработки в целом, а не только на языке С. В нем рассматриваются все основные понятия без которых практически не возможно писать качественные и безопасные программы

Мария Ходырева

23.06.2022
Интересные лекции, приятные преподаватели! Непростые домашние задания, однако в беде не оставят и направят :)). Подробные фидбеки по домашним заданиям, которые помогут углубить знания. Параллельно с течением курса потребуется самостоятельное заполнение пробелов в подготовке по части синтаксиса языка.

Михаил Гулев

28.06.2021
Хороший курс! Все понравилось, особенно ДЗ - было прямо реально интересно. К моему сожалению, из-за нехватки времени я сделал не все, что хотел - но вышесказанного это ни как не отменяет. В общем спасибо преподавателям большое за их труд. Единственное замечание касается организации курса - иногда, занятия прямо перед своим началом, неожиданно переносились на другие дни. Я бы посоветовал, в будущем исключить эту практику. Так как планируешь свое время - сдвигаешь другие дела, а тут раз и нет занятия. Понятно, что это, без сомнений, вызвано объективными причинами, но некоторые неудобства это причиняло. В итоге я стал слушать лекции в записи - так проще планировать время, хотя поначалу слушал "живьем".

Алексей Комаров

18.04.2021
Достаточно структурированный материал. Подача на высоте. Замечательные комментарии по результатам выполнения домашних заданий, которые расширяют кругозор. Лично для меня много нового. Часть полученных навыков сразу применялось в повседневной работе. Весьма доволен что оказался на курсе Спасибо за курс. Рекомендую!

Сертификат о прохождении курса

OTUS осуществляет лицензированную образовательную деятельность. В конце обучения вы получите сертификат OTUS о прохождении курса

После обучения вы:

  • научитесь писать многопоточные и многопроцессные приложения, а также нетривиальные макросы
  • поймете, как используется С в играх и веб-сервисах
  • получите материалы по всем пройденным занятиям (видеозаписи вебинаров, выполненные домашние задания, итоговый проект)
  • получите сертификат об окончании курса от OTUS

Частые вопросы

Что, если в середине курса я не смогу продолжать обучение?
У вас есть право одного бесплатного трансфера в другую группу.
Обязательно ли защищать итоговый проект?
Для получения сертификата OTUS сдавать проект необязательно (в сертификате будет отражено кол-во выполненныз домашних работ). Для получения Удостоверения о повышении квалификации необходимо выполнить итоговый проект. Кроме того, проект необязательно защищать перед аудиторией, а можно сдать в чате с преподавателем.
Я могу вернуть деньги?
Да, вы можете сделать возврат средств пропорционально оставшимся месяцам обучения.