Системный программист
разрабатывает системное или базовое программное обеспечение, методы и инструменты моделирования, анализа и построения программных продуктов, нацеленных на решение проблем надежности, производительности и безопасности IT-систем
Стремительное распространение компьютерных технологий и повсеместное проникновение программных систем ведут к росту их взаимозависимости и сложности. Во всем мире отмечается беспрецедентно бурное развитие технологий разработки программ и анализа различных видов данных, а также научных дисциплин, на которые опираются эти технологии. Параллельно растут риски, связанные с отказом систем или их некорректным поведением. По этой причине современный системный программист должен совмещать в себе качества инженера и исследователя, уметь создавать решения, сочетающие рациональный инженерный расчет и строгий математический анализ.
Системные программисты требуются в службах обеспечения надежности и безопасности информационных систем; коммерческих и государственных организациях, заинтересованных в методах анализа больших данных, средствах разработки и мониторинга мобильных и распределенных систем; научных центрах, ведущих фундаментальные и прикладные исследования в области компьютерных наук.
Спрос на программистов постоянно растет. Доля системных программистов в общем числе программистов не превышает 1-2%, что объясняется предельно высокими требованиями к компетенциям таких специалистов. Рынок готов «потребить» гораздо больше, однако предложение всегда остается крайне ограниченным.
Оценки рынка
$89 млрд
достиг объем мирового рынка технологий и услуг в сфере безопасности информационной среды в 2017 году. Ожидается, что к 2020 году показатель вырастет до 105 млрд долл.
Драйверы профессии
- стремительное распространение компьютерных технологий и потребность в сложном программном обеспечении
- информатизация всех сфер экономики и социальной сферы
- бурный рост разнообразия компьютерных архитектур, каждая из которых требует своего слоя базового программного обеспечения
Какие задачи будет решать специалист
- проектирование и разработка эффективных и надежных программных комплексов и операционных систем, координирующих работу различных элементов компьютера и/или компьютерных систем
- автоматизация процессов, где возможно применение современных информационных технологий (большие данные, машинное обучение, семантические сети, нейросети и др.)
- обеспечение надежности, безопасности и эффективности устройств и систем, включающих в себя программные составляющие
- анализ проблем внедрения и применения компьютерных средств и программных продуктов для автоматизации бизнес-процессов предприятия
Какие знания и навыки у него будут
- знание принципов построения основных видов системного ПО: операционных систем, компиляторов, систем управления базами данных, компьютерных сетей, средств хранения и обработки больших массивов и потоков данных
- знание фундаментальных основ методов анализа и синтеза программ
- знание научных основ и современных технологий анализа разнообразных данных, включая данные на естественных языках, графической и аудио информации
- умение работать с современными инструментами разработки и анализа программно-аппаратных систем, включая средства анализа, моделирования, мониторинга, верификации и т.д.
- умение работать в среде крупных открытых международных проектов open source