В космической отрасли нужны не только люди, которые наденут скафандр и отправятся на Луну. Исполнять мечту об исследовании планет и поиске жизни за пределами Земли могут инженеры и IT-специалисты. В космической отрасли точно так же, как и везде, нужны фронтендеры и бэкендеры, тестировщики и, конечно же, дата-сайентисты. Рассказываем, в каких областях можно найти себя айтишнику, который мечтает о звездах.
Как Маргарет Гамильтон придумала «разработку ПО» и спасла лунную миссию
Термин «разработка ПО» появился примерно в одно время с первым масштабным космическим проектом. Его придумала инженер Маргарет Гамильтон. Она училась на математика и занималась программированием — занятием, для которого тогда еще не было названия. Когда она стала руководителем отдела разработки в лаборатории Массачусетского технологического института (MIT), то решила дать своему делу устойчивое название — разработка ПО (software engineering).
Именно Маргарет Гамильтон возглавила отдел NASA по разработке ПО для бортовых компьютеров космического аппарата «Апполон», который отправлялся на Луну. Внимание Гамильтон к тестированию, отладке ПО и моделированию самых разных ситуаций помогло сделать бортовой компьютер надежным и устойчивым к человеческому фактору.
![Маргарет Гамильтон](https://blog.skillfactory.ru/wp-content/uploads/2024/05/margaret-hamilton-it-kosmos.jpg)
Когда Нил Армстронг совершил ошибку при управлении компьютером, за счет асинхронности система смогла распознать, что она перегружена. Тогда ПО отбросило некоторые задачи и выбрала приоритетную — обеспечение посадки. Предусмотрительность Гамильтон при разработке обеспечила успех первой в мире высадки на Луну.
Опыт Маргарет Гамильтон в космической индустрии стал большим толчком для развития программирования. Она разработала теорию программного обеспечения и специальный язык для программирования — USL.
Сегодня ПО уже не выглядит как переплетенная нитками стопка перфокарт, но именно с них началась история IT, каким мы его знаем. Перед космической отраслью стоят новые вызовы, для которых нужны не только астронавты, но и программисты.
Космические вызовы IT: какие задачи решает индустрия
Помимо очевидной задачи разрабатывать и совершенствовать программы для бортовых компьютеров и связи с Землей, перед программистами появляется много новых вызовов.
Разработка ПО и оборудования для 3D-печати. Космонавты находятся на станциях годами в невесомости и, конечно, им нужно обновлять инструменты и детали для ремонта. Гораздо быстрее, чем ждать доставку с Земли, — напечатать свое оборудование на 3D-принтере прямо на корабле. Напечатать что-то без гравитации — задача нетривиальная, над которой трудятся как технические специалисты, так и программисты. Для принтера на МКС разработали специальный код, на котором можно отправлять сообщения на бортовой компьютер, а принтер по коду поймет, что нужно напечатать. Так, недавно на МКС напечатали первый гаечный ключ. В дальнейшем разработчикам нужно исследовать объекты и влияние микрогравитации на них, скорректировать свой продукт и научить его печатать в больших масштабах. Может быть, скоро на Луне можно будет поставить напечатанный дом.
![ключ, проект которого выслали по электронной почте](https://blog.skillfactory.ru/wp-content/uploads/2024/05/it-kosmos-3d-printer.jpg)
Исследовательские задачи. Например, управление космическими телескопами типа Хаббла. Они передают на Землю большие объемы данных, которые могут обработать только суперкомпьютеры. Нужно создать систему, которая позволит быстро передавать данные, хранить их и обрабатывать.
Моделирование ситуаций в космосе. В проекте «Большой космический симулятор» ученые испытывают различные объекты, оборудование и роботов-первопроходцев в условиях, приближенных к космическим. Например, эксперименты при низких температурах и высоком давлении. Это помогает снизить вероятность проблем и угроз жизни человека при освоении космоса. Например, повреждения скафандра в низком давлении или сбоя навигатора в луноходе.
Анализ данных. Как и на Земле, в космосе очень полезен искусственный интеллект. Сейчас его используют для анализа больших объемов визуальной информации. Например, с помощью ИИ составляют карту Луны с учетом рельефа. Это помогает планировать маршруты луноходов. Также с помощью ИИ ищут экзопланеты, похожие на Землю. Из последних открытий — Kepler-90, двойник Солнечной системы.
Это только часть приоритетных космических проектов на сегодня. Наверняка, в индустрии есть и более амбициозные проекты, но нам о них не рассказывают. Узнать можно, только попав внутрь. Но как это сделать айтишнику?
Где IT-специалисту искать работу в космической индустрии
Разработчики и тестировщики ПО, дата-сайентситы и фронтендеры могут найти работу в государственных и частных космических компаниях.
Например, в России вакансии для программистов предлагают «Роскосмос» и АО «Российские космические системы». Найти работу можно на официальных сайтах или через hh.ru. В мае 2024 в РКС открыты вакансии программистов на C++, C# и PHP, фронтенд-разработчиков. В Европе и США аналогичные должности можно найти через ESA (European Space Agency) и NASA (National Aeronautics and Space Administration). Важно помнить, что работа на государственные компании доступна не для всех иностранцев. Внимательно читайте условия в вакансиях и уточняйте у HR-а возможность оформить рабочую визу или вид на жительство, если планируете релокацию.
Второй путь в космос — через частные компании. Найти вакансии также можно через официальные сайты или джобборды. Например, на сайте SpaceX сейчас открыты десятки вакансий для разработчиков ПО в разных программах: Starlink, Starshield, Dragon, Raptor. Можно разрабатывать программы для спутников и даже для запуска ракет. В России тоже есть частные космические компании. Например, SRSpace занимается запуском спутников и ракет, съемкой Земли из космоса. В мае 2024 в компании открыта вакансия программиста на C++.
Найти больше вакансий в различных частных космических программах можно на специальных сайтах:
Какие навыки нужны в космическом IT
Главный навык — это, само собой, знание языка программирования. Чаще всего для разработки ПО для космических систем используют низкоуровневые языки — C, C++, C#. Однако, в SpaceX можно встретить вакансии для питонистов, а в «РКС» — для веб- и фронтенд-разработчиков. Таким специалистам пригодятся JavaScript и PHP.
![описание вакансии программиста в космической компании](https://blog.skillfactory.ru/wp-content/uploads/2024/05/it-kosmos-job.jpg)
Также профессионалам в космической отрасли пригодятся знания алгоритмов машинного обучения, умение работать с большими данными (SQL) с различных датчиков. Эти навыки помогут проводить исследования и внедрять искусственный интеллект в космических программах.
Одна из самых сложных и ответственных задач — тестирование ПО. Готовый продукт должен работать почти идеально, потому что в открытом космосе не всегда есть место ошибкам. Бортовое ПО должно быть отказоустойчивым и надежным. Поэтому для тестировщика важно уметь программировать, настраивать автотесты и разбираться в DevOps, например системе CI/CD.
Из мягких навыков пригодится умение работать в команде и, конечно, английский язык, чтобы общаться в международных коллективах.