что делает программный инженер
Инженер-программист
Инженер-программист – специалист, занимающийся созданием программного обеспечения, предназначенного для операционных систем вычислительных машин. Профессия относится к типу «человек-знаковая система», подойдет для абитуриентов, которые любят изучать информатику и математику. Кстати, в 2021 году центр профориентации ПрофГид разработал точный тест на профориентацию. Он сам расскажет вам, какие профессии вам подходят, даст заключение о вашем типе личности и интеллекте.
Краткое описание
На сегодняшний день профессии, которые так или иначе связаны с программированием, являются самыми высокооплачиваемыми и популярными. Инженеры-программисты несут ответственность за разработку, проектирование, производство и тестирование разнообразных программных продуктов. Инженеру необходимо высшее образование, выпускникам профильных ссузов присваивается квалификация «техник-программист».
Особенности профессии
Инженеры-программисты необходимы в разных сегментах, ведь в них заинтересованы промышленные предприятия, производители бытовой техники и инноваций, а также компании, занимающиеся созданием IT-продуктов для бизнеса. В обязанности инженера-программиста входят следующие работы:
Это лишь малая часть обязанностей, профессия связана с постоянной аналитикой, технической работой, требует глубоких знаний в области математики, информатики и смежных дисциплин. Инженеры должны знать несколько языков программирования, а также английский на уровне Independent User (B1, B2) и выше. Иностранный язык необходим для ведения профессиональной деятельности. Он понадобится для самообразования, ведь новой научной и технической литературы, переведенной на русский язык, не слишком много.
Инженер-программист использует методы математического моделирования, алгоритмизацию, разные виды типизации, реляционные модели и базы данных, SQL, СУБД. Профессия подойдет для мужчин и женщин любого возраста, однако эту сферу не стоит выбирать людям, которые страдают от проблем со зрением (снижение остроты, катаракта и другие).
Плюсы и минусы профессии
Плюсы
Минусы
Важные личные качества
Инженер-программист отличается повышенной концентрацией внимания, точностью. К работе относится ответственно и скрупулезно, требователен к себе и окружающим. Инженеры-программисты имеют аналитическое мышление, склонны к самообучению, могут быть немного замкнутыми людьми со средним уровнем коммуникабельности.
Обучение на инженера-программиста
Стать инженером-программистом можно только после окончания вуза. Выбор направлений подготовки огромный, рассмотрим некоторые из них:
Во многих технических вузах реализуются программы двух дипломов, позволяющие параллельно получать образование в российском и зарубежном учебном учреждении. При поступлении необходимо сдавать ЕГЭ по профильной математике, а также по физике, информатике, химии или иностранному языку. Эти специальности престижные и пользуются популярностью у абитуриентов, поэтому к вступительной кампании необходимо очень хорошо подготовиться.
Кто ты по професии: Разница между «Programmer», «Software Engineer» и «Computer Scientist»
Как только сегодня ни называют программистов, особенно в зарубежных СМИ. Да и у нас, в частности, при поиске работы, можно встретить абсолютно разные описания должностных обязанностей.
Меняется ли от этого суть работы? Мы в 1cloud попробовали разобраться в том, какую работу подразумевают такие специализации как «Programmer», «Software Engineer» и «Computer Scientist».
Терминология
Изучение сути вопроса логично начать с понимания терминов. Самым понятным является «Programmer», который в Оксфордском словаре определяется как человек, ответственный за написание программы. И с переводом все просто: программист – он и в Африке программист. И даже в России. Сложности начинаются дальше.
«Software Engineer» (SE) (согласно статье в webopedia) — это дипломированный профессиональный инженер, имеющий достаточно знаний и навыков для применения инженерных дисциплин при создании программного обеспечения. Главное отличие — SE занимается разработкой, руководством проектов, а программист их реализует путем написания кода. На русский название должности переводится как «инженер-программист» или просто «программист».
Теперь разберемся с тем, кто такой «Computer Scientist» (CS). Если верить словарю, то речь идет о работе в области теории вычислений и проектирования компьютеров. Разные словари дают разный перевод на русский: «учёный, работающий в области теории вычислительных машин и систем (в области ВТ, в области компьютерных наук)» или «программист».
Итого, имеем три очень разных определения в английском и три «программиста» в русском.
Как сами программисты понимают эту разницу
Западный подход довольно четко разграничивает все три должности. Но у нас часто возникает путаница, и все три понятия используются как взаимозаменяемые. Поэтому лучше обратиться к мнению самих программистов и посмотреть, как они описывают свою деятельность.
Для обеспечения полноценной разработки ПО/кода программист должен быть сконцентрирован на своей работе и обеспечить последующее использование и интеграцию программных компонентов друг с другом. Энтони Щерба (Anthony Scherba), президент и основатель студии разработки Yeti, сравнивает этот процесс с решением сложной алгебраической задачи.
Так, по мнению эксперта, в обязанности программиста входит создание, упрощение, документирование кода и написание тестов. Поскольку он занимается практической реализацией поставленных задач, программист должен разбираться в особенностях языка (языков) программирования, с которыми работает, а также в теории алгоритмов.
Необязательные компетенции: математический анализ, коммуникативные навыки и умение работать в команде — подробнее в блоге Алана Скоркина (Alan Skorkin).
Работа «Software Engineer» подразумевает комплексный подход и иногда ее можно сравнить даже с процессом создания произведения искусства, которое программист старается постоянно усовершенствовать. Так считает и Дэниел Каплан (Daniel Kaplan), опытный программист и сотрудник Pivotal Labs.
Инженер должен видеть всю картину с двух сторон: проект в соответствии с общим планом и отдельные задачи, необходимые для его осуществления. Он должен уметь находить верные комплексные решения, понимать требования клиентов, прогнозировать возможные последствия и распределять задачи по программированию (в команде).
Его работа особенно важна во время разработки новых версий или функциональных возможностей продукта или, например, когда клиент меняет свои требования. Таким образом, инженер-программист отвечает не просто за написание кода, а за весь проект.
«Computer Scientist» — математик и технический специалист в равной степени. Он обладает математическими знаниями и объясняет, как и почему работает тот или иной инструмент, решение или алгоритм. Его работа имеет большое значение для развития программирования в целом. Также CS свойственна специализация в одной или нескольких сферах — ИИ, нейронные сети, теория языков программирования, базы данных.
Представления профессионалов в принципе соотносятся со словарными статьями, что естественно: на то они и профессионалы, чтобы разбираться в своей работе. Сбой в коммуникации и подмена понятий явно происходит на каком-то другом уровне, но на каком?
Какую разницу видят учебные заведения и работодатели
Начнем опять с «программиста». Еще одно его важное отличие от всех остальных: как правило, отучившись в профильном ВУЗе, вчерашний студент становится не просто «программистом», а «инженером/бакалавром/магистром по специальности/направлению…».
Для западной образовательной системы это тоже характерно — взгляните, к примеру, на разнообразие специальностей в направлении «Software Development and Programming» Сиднейского Технологического Университета. Ни одна из них не содержит в своем названии слова «programmer» или «programming».
Нет, конечно, многие университеты предлагают курсы по программированию (даже бесплатные), но редко когда в дипломе написано просто «программист». А что хотят видеть работодатели?
Помимо знания разных языков и/или опыта работы на разных мобильных платформах/ опыта веб-программирования/ администрирования, программисту нельзя обойтись без коммуникативных навыков (примеры тут и тут). В приведенных примерах вакансий требуется навык работы в команде, предполагается общение с вендорами, сотрудничество с другими отделами компании и техническим директором. Ну и организаторские и управленческие способности будут нелишними. А в ряде случаев нужны еще и достаточно глубокие знания математики.
Требования на российском рынке отличаются не сильно и включают разработку проектов, работу в команде, понимание принципов информационной безопасности (и всё те же навыки, отмеченные в абзаце выше). Таким образом, работодатели хотят видеть в программисте универсального (и творчески мыслящего) специалиста, а не просто человека, который пишет и тестирует код на определенном языке, решая кем-то поставленную задачу. Получается, что работодатель (как на Западе, так и у нас) под «программистом» очень часто понимает то, что словари обозначают как минимум как «Software Engineer».
Образовательные программы по профилю «Software Engineering» подразумевают, подход к разработке ПО с научной и инженерной точки зрения, разработку собственных проектов, аналитическую и управленческую деятельность. Помните, в предыдущем разделе эксперты говорили, что SE должен уметь реагировать на изменяющиеся требования? На магистерской программе помимо этого объясняют, как укладываться в бюджет и сроки.
В университете Глазго учат определять технические характеристики, проектировать, создавать и верифицировать крупные программные системы. При этом список предметов включает программирование на разных языках, проектирование баз данных, изучение алгоритмов, то есть все те знания, которые необходимы и для работы «классического программиста».
Что касается точки зрения работодателей, то по их мнению в обязанности инженера-программиста входит написание кода, проверка технической реализации UI/UX, оптимизация работы приложений, разработка внутренней методологии и стандартов, контроль и управление требованиями. Кроме того, соискатель должен обладать лидерскими качествами. Технические требования не сильно отличаются от требований к «обычным» программистам: их примеры можно посмотреть тут: 1, 2 и 3.
Университетские программы по направлению «Computer Science» включают больше математических предметов, изучение теории алгоритмов, а также такие темы как машинное обучение, нейронные сети и облачные вычисления. Студенты изучают больше теории, но должны успешно применять на практике полученные математические знания, выявлять, формулировать и решать инженерные проблемы. Таким образом, у этого типа специалистов формируется наибольшая «широта взглядов» — в теории он может работать и программистом, и SE, и непосредственно по специальности.
Это не означает, что полученных знаний ему «за глаза» хватит для успешного старта карьеры в любой из областей и больше ничему учиться не придется. Например, чтобы построить успешную карьеру разработчика, такому выпускнику явно понадобится «подтянуть» практические навыки по написанию кода — но не придется изучать программирование «с нуля».
Идеальный соискатель на должность «Computer Scientist» должен обладать знаниями по теоретической информатике, теории алгоритмов, проектированию баз данных, компьютерному моделированию, при необходимости выполнять задачи аналитика и проводить исследования, знать весь процесс от проектирования до внедрения ПО… Список можно продолжать долго (подробнее читайте тут и тут).
Работодатели хотят видеть профессионала, который не ограничен применением навыков в сугубо научной сфере. Кстати, русскоязычные работодатели тоже ищут таких специалистов и предлагают свои названия профессии: ведущий алгоритмист и инженер-исследователь. На этих примерах прослеживается та самая специализация, о которой мы упоминали в прошлом разделе.
Что в итоге
Да, действительно программисты, SE и CS — специальности близкие, но не одинаковые, и готовят таких профессионалов на разных университетских специальностях. Наибольшую путаницу в трактовке терминов вносят работодатели – для них, например, разница между «программистом» и Software Engineer может быть совершенно не очевидна.
Судя по требованиям работодателей, от «просто программиста» ждут творческого подхода, универсальных знаний и soft skills, а «computer scientist» может решать важные, но при этом сугубо прикладные, узконаправленные задачи — говорить о том, что одна специальность «по умолчанию» лучше или «сильнее» другой тут не приходится.
О чем еще мы пишем в блоге 1cloud на Хабре:
Будущая профессия
Кто такие программные инженеры?
С течением времени происходит расширение сферы применения информационных технологий (ИТ). В связи с этим профессия ИТ‑специалиста является одной из наиболее востребованных и высокооплачиваемых на рынке труда в настоящее время, и эта тенденция продолжится в ближайшие десять-пятнадцать лет.
Однако процесс разработки программного обеспечения претерпевает качественные изменения, и требования к ИТ‑специалистам тоже меняются. Создание программных систем становится масштабным: разрабатываются крупные программные комплексы, с производством которых одному человеку не справиться. Промышленная разработка программного обеспечения ведется коллективно. При этом увеличение числа программистов не всегда приводит к увеличению производительности коллектива и сокращению сроков разработки. Это, в первую очередь, связано с тем, что большинство программистов, только что закончивших вуз, не обладают навыками и компетенциями коллективной, промышленной разработки программного обеспечения, управления процессами жизненного цикла программных продуктов.
Выпускники образовательной программ «Программная инженерия» – это, с одной стороны, высококвалифицированные программисты, владеющие современными языками, технологиями и инструментальными средствами разработки программного обеспечения, а с другой стороны, – ИТ‑специалисты, способные управлять командой разработчиков, программными проектами, принимать управленческие решения и нести за них ответственность.
Именно такие специалисты являются наиболее востребованными на рынке труда России.
Кем работают программные инженеры?
Студенты и выпускники образовательной программы «Программная инженерия» могут занимать следующие должности:
Где работают программные инженеры?
Учебный план образовательной программы разработан в соответствии с рекомендациями по преподаванию программной инженерии и информатики в ведущих мировых университетах. Это позволяет выпускникам образовательной программы быть востребованными на рынке труда не только РФ, но и за ее пределами.
Выпускники образовательной программы могут работать, как в крупных ИТ‑компаниях, занимающихся разработкой программных систем (ЗАО «ИВС», ГК «IT Professional Solutions», ООО «Перспективные системы», ООО «ГринДата», ООО «ДартИТ», компания «PARMA technologies group» и др.), так и в ИТ‑подразделениях компаний других сфер, где требуется разработка программного обеспечения (банковские организации, промышленные предприятия, консалтинговые фирмы и т.п.).
Высокий уровень подготовки студентов образовательной программы подтверждают и работодатели: крупнейшие ИТ‑предприятия Пермского края приглашают на работу студентов образовательной программы «Программная инженерия» начиная со второго курса.
Инженер-программист👨💻: обзор, зарплата и обучение профессии
Содержание
Software Engineering – этот английский термин переводится как «программная инженерия» и имеет непосредственное отношение к профессии инженера-программиста. Он относится к направлению разработки и поддержки ПО, или программного обеспечения.
Люди, которые трудятся в этой области, занимаются созданием или адаптацией существующего ПО для нужд конкретной компании. Узнаем, насколько востребована профессия инженера-программиста, какими должны быть его компетенции и как пройти обучение.
❓ Чем занимается инженер-программист
Представители профессии обладают знаниями и в сфере инженерии, и в программировании. Их работа предполагает совмещение двух специальностей. Многие задаются вопросом, в чем отличие инженеров от рядовых программистов.
Инженеры-программисты – это квалифицированные специалисты, имеющие диплом о высшем образовании или прошедшие глубокие профильные курсы по специальности. Они разрабатывают программные продукты и занимаются их отладкой. Те сотрудники, которые прошли обучение в заведении среднего профессионального образования, могут претендовать лишь на должность техника-программиста. Перед ними стоят цели проектирования, создания и тестирования ПО.
Программные инженеры трудятся над решением куда более сложных задач – над разработкой качественных многофункциональных программ, которыми можно было бы пользоваться на любом компьютере. К тому же им нередко приходится дорабатывать уже созданные конструкции, анализировать их и выявлять слабые стороны, определять вероятные проблемы и искать способы устранения. Исполнителями идей, которые предлагают инженеры, являются рядовые программисты, работающие с ними в одной команде.
Еще одна задача, стоящая перед программными инженерами, – создание пользовательских программ, которые отвечают требованиям надежности, удобства и безопасности. Специалистам необходимо продумать возможности дальнейшего развития продуктов.
В штате компании могут трудиться несколько инженеров-программистов. В таком случае рабочие обязанности распределяются между коллегами.
🤓 Какие навыки должен иметь специалист
Для успешного и эффективного решения задач инженерам-программистам надо знать:
В списке навыков и умений программных инженеров должны присутствовать:
🌝 Какие личные качества помогут в работе
Чтобы добиться успеха на профессиональном поприще, программному инженеру пригодятся такие личные качества, как:
💼 Обязанности программного инженера
Должности инженера-программиста существуют в различных коммерческих организациях и в компаниях, которые специализируются на производстве ПО. Независимо от места работы круг обязанностей программных инженеров включает:
👍 Преимущества профессии
Специалисты в области программной инженерии востребованы на рынке труда. Но это лишь один из плюсов профессии. Опытные сотрудники отмечают и другие достоинства своей работы:
👎 Недостатки профессии
Инженерам-программистам приходится сталкиваться и с отрицательными моментами:
🤑 Сколько зарабатывают инженеры-программисты в Москве и в регионах России
В столичных компаниях средний размер оплаты труда сотрудников, которые занимают должность инженера-программиста, составляет около 120 000 рублей. В регионах заработная плата специалистов чуть ниже, она может варьироваться от 60 000 до 150 000 рублей в зависимости от опыта, компетенции сотрудников.
Младший инженер может рассчитывать на ежемесячные гонорары в размере 65 000 рублей. Работодатели предъявляют к ним следующие требования:
Программные инженеры со стажем до 3 лет, могут рассчитывать на более высокий ежемесячный доход, около 100 000 рублей. Они должны иметь диплом о высшем техническом образовании и владеть следующими знаниями:
Кроме этого, специалисты должны уметь проектировать приложения с высокой производительностью, контролировать качество кода. Работая над различными проектами, инженеры-программисты взаимодействуют с сервис-инженерами и менеджерами.
Сотрудники, чей стаж работы на должности программного инженера превышает 3 года, могут претендовать на среднюю заработную плату в размере 140-160 тысяч рублей и выше. Помимо наличия профильного высшего образования и хорошего знания иностранного языка инженеры такого уровня умеют:
В своей работе специалисты используют знание сетевых протоколов, стандартных алгоритмов, распределённой системы управления версиями Git, библиотек.
🧑🎓 Как получить профессию инженера-программиста
Людям, которые хотят связать свою карьеру с Software Engineering, необходимо не только иметь аналитическое и математическое мышление, но и обладать техническими навыками. Специалисты должны быть заинтересованы в профессиональном развитии, всегда быть нацеленными на поиск оптимальных технических решений.
Освоить языки программирования можно самостоятельно. Но этих знаний недостаточно для работы на должности программного инженера.
Чтобы пройти комплексное обучение, можно выбрать один из следующих вариантов:
Онлайн-курсы программирования позволяют получить практические навыки. В ходе обучения будущие программисты получают возможность разработать портфолио, которое поможет при трудоустройстве. Регулировать темп занятий слушатели могут самостоятельно, а общение с преподавателями и будущими коллегами делает учебный процесс живым, интересным и эффективным.
«Я думала переехать и работать за рубежом»: сколько зарабатывает инженер-программист
В Санкт-Петербурге
Героиня этого выпуска стала инженером-программистом вслед за братом и отцом. Она начинала в компании, которая создает системы управления авиационными двигателями, и получала 7500 Р в месяц. А сейчас работает в иностранной компании, которая занимается автомобилями нового поколения, и зарабатывает в 25 раз больше.
Выбор профессии
Я хотела поступить на факультет прикладной математики и программирования СПбГУ еще в старших классах. На меня повлияли отец и брат: они оба инженеры-программисты. До этого отец был моряком-подводником, но в 45 лет вышел на пенсию и устроился в ту же контору, где работал мой брат. Они создавали системы управления авиационными двигателями.
Когда слышишь, как люди с жаром и блеском в глазах обсуждают работу, проникаешься. Правда, слушая их тогда, я почти ничего не понимала: там было полно терминов и аббревиатур типа САУ или БАРК. Авиацию в принципе окутывает ореол романтики, и это была возможность к ней прикоснуться.
После третьего курса я начала искать работу по специальности. Поговорила с отцом, он помог устроиться на то же предприятие, где работали они с братом. Не знаю, вышло бы это без посторонней помощи или нет: просто так узнать о вакансиях очень сложно. За работу на половину ставки мне платили 7500 Р в месяц. Полный день я не могла позволить себе из-за учебы. Я и так до последнего семестра носилась как белка в колесе. С режимного предприятия не так просто уйти в середине дня, чтобы попасть на пары.
С братом я почти не общалась по работе, он был очень занят. Отца иногда спрашивала, как устроен двигатель или контроллер. Сначала меня отдали под начало коллеге, он рассказал основные принципы и почти сразу же поручил часть работы. Главное, что я получила на этом предприятии, — опыт. Все, о чем рассказывали в университете, было полезно: нереально самостоятельно освоить математику, физику, теорию управления, разделы механики и электротехники. Но одно дело изучить законы и формулы, другое — видеть их реальное применение. Без практики цена этим знаниям — ноль.
В университете мы изучали среду Matlab, это мощный инструмент для моделирования и вычислений, с тех пор моя карьера связана с ней. В этой среде можно делать математические модели — своего рода программы. Например, я делала модели газотурбинного двигателя, который создает реактивную струю и приводит в движение самолет.
Наше конструкторское бюро писало софт для систем управления двигателем. Сразу устанавливать софт на реальный двигатель нельзя — сначала его проверяют на модели, иначе первое же включение может привести к поломке. Этим занималась моя команда: мы делали модель двигателя на основе данных испытания и проверяли, будет ли имитация работать, не сломается ли что-нибудь.
На вход программе приходят данные вроде температуры и давления воздуха, положения рычага управления двигателем. А на выходе рассчитываются обороты, температура в камере сгорания, тяга. На такой модели мы отлаживали систему управления, которая потом работает на реальном двигателе. Конечно, модель никогда не будет такой же, как сам объект, но это хороший старт для тестов.
Кстати, когда твоя работа связана с самолетами — летать гораздо спокойнее.
Весь страх и волнение — от непонимания того, как устроен и работает самолет. Например, я люблю турбулентность: она никак не влияет на безопасность полета, ничем не грозит стабильности самолета. Единственное проявление — потряхивает в салоне. Конечно, нужно пристегнуться, но так даже веселее: есть ощущение полета.
Через несколько лет я устроилась инженером-программистом в компанию, которая занимается разработкой авиационных тренажеров. Ушла с первой работы, поскольку было подозрение, что после окончания университета меня не повысят в должности. Стала искать запасные варианты, нашла в Гугле список всех авиационных предприятий Питера, обошла все сайты в поисках вакансий. Отправила резюме — и мне перезвонили в течение часа. Я увольнялась первый раз в жизни, переговоры длились неделю: меня не хотели отпускать, спрашивали, что не так и как это исправить. Мне становилось жаль уходить, я звонила на новое место работы, а там меня окутывали розовым туманом перспектив. И все начиналось заново.
Там я занималась тренажерами, которые имитируют работу всех систем самолетов и вертолетов, например полет при разной погоде и даже тряску от турбулентности. Наша команда создавала софт для тренажера, его сердце — от модели турбулентности до индикаторов в кабине, которые должны меняться в зависимости от условий полета.
Чтобы имитировать полет, на тренажер устанавливают систему подвижности — сложное устройство, которое может поднимать и опускать, вращать и трясти кабину. Эту модель мы сначала тестируем на адекватность сами — не слишком ли сильно трясет, например, а потом приглашаем пилота, который может оценить, насколько ощущения похожи на настоящие. Пилоты очень любят эти эффекты и смеются, когда чувствуют происходящее с самолетом попой, а не видят на экранах.
Место работы
Я пришла сюда с некоторым понижением в должности: на предыдущем месте выполняла скорее менеджерские обязанности, а здесь снова разработчик. Но я не жалею. Компания молодая, энергичная, работать интересно. У нас хороший социальный пакет: ДМС, обеды, компенсация занятий языками и спортом. К твоему мнению всегда прислушиваются, чего бы оно ни касалось — организации рабочего процесса или того, какой кофе лучше закупить.
У нас несколько офисов в разных уголках мира, но почти вся софтовая команда находится в России, потому что российские программисты лучшие в мире по соотношению цены и качества.
По работе часто приходится общаться с иностранцами, это не всегда легко. Не только из-за возможного языкового барьера, но и из-за разного менталитета. Например, для нас абсолютно нормально задержаться на работе, чтобы закончить какую-то задачу. Иностранцы это не всегда понимают. Разница во времени тоже добавляет головной боли: бывали дни, когда я начинала работать по Питеру, а заканчивала — по Лондону.
Чтобы тестировать автомобили, у нас есть небольшой гараж в Санкт-Петербурге и большое предприятие в Великобритании. Тестировать на дорогах общего пользования без особого допуска нельзя, так что обычно это происходит на специальном полигоне или на территории, принадлежащей компании. Мы занимаемся несложными тестами, где надо убедиться, что все системы работают правильно, попереключать передачи, немного поездить.
Мой отдел отвечает за разработку систем управления. Современная жизнь напичкана электроникой, контроллерами, которые управляют всем — начиная от микроволновки и заканчивая ракетой. Наша команда создает системы, которые измеряют положение педалей тормоза и газа, ручки переключения передач, включают все системы в автомобиле и управляют оборудованием — тяговым мотором, вспомогательными насосами, преобразователями энергии.
Все проекты сложные и интересные, но мои любимые — это те, где результат виден лучше всего. Например, система управления автоматическими дверями. Со стороны выглядит очень просто: человек нажимает на кнопку, дверь открывается. На самом деле в этом задействовано огромное число механизмов и контроллеров.
Еще сейчас в моде экологичный транспорт. Самое интересное для меня — это автомобили на водородных ячейках.