Embedded-решения: что это и что нужно знать разработчику

  • 5 декабря, 11:49
  • 5047
  • 0

Сегодня embedded-решения пользуются все большей популярностью. По данным MarketsandMarkets, рынок embedded-систем будет стоить 110,46 млрд долларов США к 2023 году. И это не удивительно, ведь встроенные системы используются фактически везде - это ваш телефон, игровая приставка, автомобиль нового поколения, “умные” медицинские устройства и бытовые приборы.

Эксперти GlobalLogic Дов Нимрац, Embedded Solution Architect и Алексей Савочкин, Senior Project Manager поделились особенностями этого направления, рассказали о последних трендах и дали несколько советов для начинающих.

Embedded-решения: что это и что нужно знать разработчику

Дов Нимрац (слева) и Алексей Савочкин (справа)

Многие популярные мировые бренды доверяют разработку встроенных решений украинским инженерам. К примеру, системы пользовательского интерфейса в автомобилях, “умные” дефибрилляторы, консоли Venue для живых концертов и многие другие всемирно известные решения.

Несмотря на популярность этого направления, компетентных разработчиков не так много. Все дело в том, что обучение таких инженеров возможно только на специальной аппаратуре, стоимость которой измеряется десятками тысяч долларов. Это все значительно повышает затраты как на обучение специалистов, так и их востребованность на рынке. Поскольку встроенные системы − одно из самых перспективных направлений, вот что нужно знать, если вы планируете обучиться на embedded-разработчика. 

Инженерия + программирование

Embedded-разработка объединяет в себе умение создавать программное обеспечение и основные знания и навыки в инженерии. Необходимо понимать физические процессы разнообразных электрических компонент, − датчиков, актуаторов, логики SoC (в основном ARM). Кроме того, такие специалисты должны ориентироваться в процессах преобразовании одного типа энергии в другую, знать каким образом работают электрические двигатели и реле разных типов, ведь именно они составляют большинство управляющих устройств.

К примеру, если вы работаете с автомобильными технологиями, то кроме программирования важно понимать аппаратную часть устройства - будь то информационно-развлекательная система, инструментальный кластер или системы помощи водителю. Более того, необходимо понимание разнообразных моделей передачи данных между устройствами, не только по протоколам типа I2C, OneWire, CAN, но и понимание физических механизмов обмена информацией, так как все линии передачи данных имеют свои уникальные характеристики. 

Еще нужно разбираться в цифровой безопасности − обеспечивать защищенную передачу информации внутри одной системы, например, обезопасить её от атак посредников. Разработчик должен понимать, как система будет поддерживаться на всех этапах использования: pre-manufacture setup, configuration, activation, bootstrapping, update/backup/restore for embedded.  

Что касается программирования, то стоит начать его с изучения языка программирования C. Владение им считается обязательным для инженеров встроенного программного обеспечения. C является одним из универсальных языков программирования, который пригодится даже в том случае, если вы не будете работать со встроенными системами. У подавляющего большинства Embedded, а также Linux систем под капотом работают решения написанные на С. Многие высокоуровневые языки программирования также написаны на С.

Тренировки и прикладные знания

В своей работе, embedded-разработчики ежедневно занимаются разработкой специальной программной и аппаратной платформы, её интеграцией. Это довольно ответственная работа, которая требует большой экспертизы, особенно если речь идет о разработках в медицинской и автомобильной сферах. Часто цена ошибки в подобных разработках − очень высока и может стоить жизни и здоровья людей. 

Embedded-решения: что это и что нужно знать разработчику

Для практики в больших компаниях есть различные некоммерческие, внутренние проекты. Это помогает повысить экспертизу инженеров, отработать навыки и минимизировать возможность ошибки на более ответственных проектах. Некоторые компании зашли еще дальше, к примеру, в компании GlobalLogic выпустили Embedded starter kit, специальную аппаратную платформу, на которой обучаются студенты и молодые специалисты. Это демоверсия настоящей платформы, которую в реальной жизни разрабатывают embedded-специалисты. Такие наборы уже доступны в таких ВУЗах как КПИ имени Сикорского и Львовская Политехника. Крупные игроки рынка стараются расширить сообщество разработчиков встроенных систем. 

Кейс обучения, профильные выставки

Кроме практики в лабораториях и на рабочем месте, важно также понимать общие тренды. В embedded, как и в других сферах ІТ, развитие очень стремительное. Поэтому важно учиться на примере разных кейсов как в своей сфере, так и понимать общие тренды отрасли. К примеру, многие инженеры встроенных систем каждый год посещают выставку Embedded World. Это узкоспециализированная конференция, которая собирает ежегодно разработчиков встроенных систем для обмена опытом, презентации новинок и трендов в сфере. 

Например, в этом году такими трендами стали: 

  1. Компьютерное зрение. Эта технология используется для создания самоуправляемых машин и в будущем станет основой для беспилотных авто. 
  2. Инструменты для более легкого подключения Embedded-систем к облаку. Присоединиться к облачным сервисам становится проще за счет снижения сложности аппаратного обеспечения.
  3. Инструменты визуализации данных в режиме реального времени. Эти инструменты позволят разработчикам контролировать ключевые показатели, такие как необработанные или обработанные данные датчиков и переключатели контекста на основе событий, для отслеживания производительности встроенных систем.
  4. Прогнозы искусственного интеллекта. Они будут касаться дорожных ситуаций и рекомендаций для избежания несчастных случаев.

Личные характеристики

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

Кроме этого, важно внимание к мелочам и умение мыслить за рамками. Если в случае просто программирования нужно найти баг и его отладить, в embedded-разработках нужно искать нестандартные подходы к решению проблемы. 

IT-индустрия активно развивается на территории Украины и нашим инженерам все больше доверяют сложные разработки всемирно известные компании. 

Создание embedded-систем − это однозначно новый вызов и уровень для украинской IT-индустрии. И хотя в Украине есть компании, которые занимаются разработкой таких решений, инженеров способных справиться со сложными системами все еще критически мало. Поэтому, если вы раздумываете какое направление выбрать − подумайте над embedded. Именно эти разработки объединяют железо и программное обеспечение, дают возможность специалисту не просто создавать инновации, но еще и буквально тестировать их действии, прикрутить или спаять аппаратную часть технологии. 


0 комментариев
Сортировка:
Добавить комментарий

IT Новости

Смотреть все