Профессия Embedded-программист
Embedded-программист (Embedded developer) разрабатывает, сопровождает, тестирует встроенное программное обеспечение систем, которые создаются на уровне микропроцессоров и микроконтроллеров и отвечают за отдельные функции приложения или устройства. Кстати, недавно центр профориентации ПрофГид разработал точный тест на профориентацию, который сам расскажет, какие профессии вам подходят, даст заключение о вашем типе личности и интеллекте.
Профессия подходит тем, кого интересует информатика (см. выбор профессии по интересу к школьным предметам).Краткое описание
Embedded Developer проектирует, разрабатывает, тестирует, настраивает и сопровождает встроенное ПО для систем, которые состоят из аппаратных и программных компонентов и отвечают за точное выполнение приложением или устройством возложенных на него функций. Профессия на стыке программирования и аппаратной инженерии.
Разработчики встраиваемых систем – это опытные инженеры-программисты, которые проектируют аппаратную часть («железо») микросистемы и пишут коды для управления машинами и устройствами. Они специализируются на разработке программ для конкретного оборудования, используемого, например, в автомобилях, модемах, бытовой технике или сотовых устройствах. Embedded-программист участвует во всем процессе разработки встраиваемых систем – от проектирования до интеграции.
Особенности профессии
В отличие от классических Software-программистов, Embedded-разработчики занимаются не только кодом, но и «железом»: своими скриптами они оживляют аппаратную часть. Поэтому Embedded-программист – в большей степени электронщик (примерно на 80 %), чем программист.
Для программирования встроенных систем (Embedded Systems) мало знать язык разработки (чаще всего C и C++), нужно хорошо разбираться в электронике, автоматизации процессов, робототехнике, информатике. Набор знаний зависит от сферы применения встраиваемых систем, а они используются в самых разных устройствах и приборах:
- в домашних и промышленных роботах;
- банкоматах;
- бытовой технике (стиральные машины, мультиварки, телевизоры и т. д.);
- игровых консолях, приставках;
- измерительном оборудовании (счетчики, осциллографы, тестеры и т. д.);
- медицинском оборудовании (томографы, тонометры, глюкометры, хирургические роботы и т. д.);
- автомобильных компьютерах, навигаторах;
- системах сигнализации;
- смартфонах;
- носимых смарт-устройствах (наушники, фитнес-браслеты и т. д.).
Создание встроенной системы состоит из проектирования ее аппаратной части и разработки под нее программных скриптов. Их сложность определяет приложение, для которого они пишутся. Во многих отраслях (робототехника, медоборудование, авиатехника, вооружение, космос) есть специальные библиотеки и инструменты разработки специфических встраиваемых систем. Поэтому Embedded-программист, работающий для этих сфер, – это узкопрофильный разработчик, который в совершенстве владеет инструментами только для конкретной области.
В типичные обязанности Embedded-программиста входит:
- проектирование аппаратной части встроенной системы;
- разработка программного обеспечения;
- знание особенностей заводского программного обеспечения;
- тестирование ПО, отладка;
- сопровождение созданных программных продуктов;
- работа с оборудованием;
- проведение анализа производительности устройств;
- оптимизация работы оборудования;
- поиск решений в случае проблем с кодом прошивки;
- предупреждение сбоев в работе устройств, разработка продуктов для самодиагностики устройств;
- проведение консультаций, составление сметы;
- оперативное устранение аварийных ситуаций.
Embedded-программист работает в команде, поэтому он должен уметь подчиняться руководителю, точно выполняя его требования и поставленные задачи.
Плюсы и минусы профессии
Плюсы:
- Высокая заработная плата.
- Трудоустройство всегда официальное.
- Много вакантных мест.
- Возможно трудоустройство за рубежом.
- Карьерный рост.
- Посещение семинаров, лекций, консультаций от производителей оборудования, что помогает достичь еще больших успехов в работе.
Минусы:
- Много требований.
- Специфические технические знания.
- Необходим опыт работы в разработке встроенных систем не менее 3 лет.
- Частые командировки.
Важные личные качества
- Коммуникабельность.
- Аналитический склад ума.
- Отличное логическое мышление.
- Склонность к точным наукам.
- Целеустремленность.
- Активность.
- Самоорганизация.
- Ответственность.
- Способность работать в команде.
Embedded-программист должен иметь желание постоянно обучаться.
Обучение на Embedded-программиста
Разработчик встриваемых систем – это инженер, поэтому без высшего образования в этой профессии не обойтись.
Для учебы в вузе подойдут несколько направлений и профилей:
- «Информатика и вычислительная техника» 09.03.01. Профили:
- «Программные и аппаратные средства встраиваемых вычислительных систем» (КТИ ЮРГПУ (НПИ) им. Платова в Каменске-Шахтинском);
- «Компьютерные науки и инженерия» (МФТИ);
- «Киберфизические системы» (МИРЭА, Московский политех).
- «Управление в технических системах» 27.03.04. Профиль:
- «Информационные технологии в проектировании встраиваемых систем управления технологическими процессами» (РГУ им. Косыгина, МГОТУ).
- «Электроника и наноэлектроника» 11.03.04. Профили:
- «Программирование микропроцессорной техники» (ТУСУР, Тюмень).
- «Проектирование и программирование систем Интернета вещей» (МГТУ им. Носова);
- «Программирование и электроника информационных систем» (МГТУ им. Носова, БашГУ).
- «Конструирование и технология электронных средств» 11.03.03. Профили:
- «Информационные технологии проектирования электронных средств» (СевГУ);
- «Инжиниринг электронных средств и радиоэлектронных систем» (РГАТУ им. Соловьева);
- «Проектирование и технология электронно-вычислительных средств» (МГТУ им. Баумана, МАИ, ГУАП, ТУСУР, РГРТУ, Волгатех).
- «Мехатроника и робототехника» 15.03.06. Профиль:
- «Мобильные робототехнические комплексы и системы» (Томский политех).
Есть в вузах и узкоспециализированные программы подготовки Embedded-программистов для определенных отраслей, например в МАИ – «Интегрированные системы летательных аппаратов» 24.05.05 с профилем «Интегрированные интеллектуальные робототехнические комплексы».
Курсы алгоритмов программирования
Место работы
Embedded-программисты требуются практически в каждую компанию, которая оснащена электроникой или специализируется на монтаже и обслуживании разных видов оборудования. Чаще всего их ищут компании, занимающиеся установкой интернет-оборудования, производственные предприятия. Разработчики встроенных систем могут работать в офисе, но часто их труд сопряжен с командировками, во время которых специалист проводит тюнинг, настройку или тестирование оборудования и ПО в филиалах компании.
Востребованность Embedded-программистов связана с тем, что компьютеры, локальные сети, маршрутизаторы используются повсеместно. Промышленные предприятия максимально автоматизируют производственные и управленческие процессы. Все эти устройства необходимо обслуживать и настраивать, поэтому на поиск работы Embedded-программист потратит немного времени.
Оплата труда
Средняя заработная плата Embedded-программиста очень высокая, но во многом зависит от компании, в которой он работает. На уровень дохода влияют опыт, объем профессиональных обязанностей, вид оборудования, в котором специалист разбирается.
Профессиональные знания
Embedded-программист должен:
- разбираться в специфике оборудования;
- знать языки программирования C и C++, Python (часто нужен еще и ассемблер – на нем пишут программы микроконтроллеров);
- владеть английским языком (чтобы изучать зарубежные инструкции к оборудованию и посещать обучающие курсы);
- уметь разрабатывать, тестировать, отлаживать, сопровождать программное обеспечение;
- иметь базовые знания по физике, геометрии, алгебре.
Embedded-программист должен уметь работать с другими техническими специалистами, выполняя задания или же составляя план работ для каждого члена команды.
Чаще всего работодатели требуют, чтобы у Embedded-разработчика был стаж работы не менее 3–5 лет и хотя бы поверхностные знания особенностей оборудования, для которого разрабатывается ПО.