Чем отличается программист от системного программиста
Перейти к содержимому

Чем отличается программист от системного программиста

Системный программист

разрабатывает системное или базовое программное обеспечение, методы и инструменты моделирования, анализа и построения программных продуктов, нацеленных на решение проблем надежности, производительности и безопасности IT-систем

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

Системные программисты требуются в службах обеспечения надежности и безопасности информационных систем; коммерческих и государственных организациях, заинтересованных в методах анализа больших данных, средствах разработки и мониторинга мобильных и распределенных систем; научных центрах, ведущих фундаментальные и прикладные исследования в области компьютерных наук.

Спрос на программистов постоянно растет. Доля системных программистов в общем числе программистов не превышает 1-2%, что объясняется предельно высокими требованиями к компетенциям таких специалистов. Рынок готов «потребить» гораздо больше, однако предложение всегда остается крайне ограниченным.

Оценки рынка

$ 89 млрд
достиг объем мирового рынка технологий и услуг в сфере безопасности информационной среды в 2017 году. Ожидается, что к 2020 году показатель вырастет до 105 млрд долл.

Драйверы профессии

  • стремительное распространение компьютерных технологий и потребность в сложном программном обеспечении
  • информатизация всех сфер экономики и социальной сферы
  • бурный рост разнообразия компьютерных архитектур, каждая из которых требует своего слоя базового программного обеспечения

Какие задачи будет решать специалист

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

Какие знания и навыки у него будут

  • знание принципов построения основных видов системного ПО: операционных систем, компиляторов, систем управления базами данных, компьютерных сетей, средств хранения и обработки больших массивов и потоков данных
  • знание фундаментальных основ методов анализа и синтеза программ
  • знание научных основ и современных технологий анализа разнообразных данных, включая данные на естественных языках, графической и аудио информации
  • умение работать с современными инструментами разработки и анализа программно-аппаратных систем, включая средства анализа, моделирования, мониторинга, верификации и т.д.
  • умение работать в среде крупных открытых международных проектов open source
Где готовят

Другие профессии направления « информатика и бизнес-информатика »

  • Системный архитектор
  • Специалист по кибербезопасности
  • Консультант по электронному бизнесу

Отличие системного администратора от программиста

Часто приходится сталкиваться, что люди не понимают разницы между системным администратором и программистом и всех IT-шников называют программистами. Некоторые обижаются, а кто-то уже привык. Но я хочу попытаться разъяснить эту разницу, чтобы было понятно большинству, прочитавшим эту статью 🙂
Если в организации есть IT отдел (инженерно-технический), а проще говоря компьютерный, то в нем есть следующее разделение:

Системные администраторы – основная задача контролировать работу серверов и серверного ПО, администрирование телефонных станций, политика безопасности – в общем это мозги всей компьютерной структуры организации.

Специалисты (или инженеры) технической поддержки – это ребята, которые занимаются обычными компьютерами пользователей, настраивают их, помогают пользователям решать текущие проблемы, ловят вирусы на компьютерах пользователей и т.д. и т.п. По сути, Специалист – это будущий системный администратор, т.к. системный администратор так же может выполнять работу специалиста. Специалист может выполнять работу системного администратора, если ему разрешит руководство – к системному администратору у руководства больше доверия 🙂

Программисты – это ребята, которые постоянно пишут различные тексты на непонятном для обычного пользователя языке. Эти тексты потом превращаются в полезные программы, утилиты, или просто модули (дополнительные опции) к полезным программам.

Чтобы проще было понимать приведу пример на различие системного администратора от программиста. Программист написал программу, которую в последствии назвал, ну например Windows, а системный администратор ее настроил (используя функции, которые предусмотрел в своей программе программист) для пользователя.

Программист или Системный администратор

Системный администратор или программист – тесты и опросы показывают, что большинство людей просто не различают данные понятия, и думают, что эти люди занимаются одним и тем же. Но на самом деле программеры и админы – это совершенно разные специалисты. Нельзя просто так ответить на вопрос: системный администратор или программист – что лучше? Для каждого есть преимущества в той или иной профессии, но чтобы разобраться в них, необходимо четко разделять понятия и понимать, кто из них и чем занимается.

Итак, кто же такой системный администратор? Обычно это люди, которые самостоятельно обучаются работе с ПО, компьютерами, серверами, различным компьютерным оборудованием и сетями. Высшее образование у таких людей – не то чтобы редкость, но встречается нечасто. Админы выполняют такие работы как контроль и поддержание работы сети, обеспечение безопасности сети, в том числе и информационной, администрирование мини-АТС, создание оптимального ПО. Системный администратор должен вникнуть во все нюансы такой работы, поэтому часто работодатели неохотно принимают в штат компании молодых людей, которые только закончили учебу или недавно занимаются системным администрированием. Для нормального и стабильного функционирования ИТ-сферы предприятия нужен немалый опыт. А вот те админы, которые уже давно работают в данной сфере, очень ценятся, поэтому получают довольно неплохую зарплату.

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

Кстати, программист и системный администратор – это далеко не полный список. Есть еще такие специалисты, как инженеры технической поддержки. Это такие люди, которые выполняют работы по настройке компьютеров пользователей, установке и настройке ПО, различных прикладных программ. Такие функции похожи на те, которые имеют админы, и достаточно часто из таких специалистов получаются неплохие системные администраторы. Часто инженеры начинают выполнять работы, которые входят в сферу деятельности системного администратора, причем руководство компании больше доверяют таким специалистам. А это уверенность в собственных силах и возможный карьерный рост.

Разработка программного обеспечения или системное администрирование?

Выбирая между двумя направлениями, специалист с достаточно большим опытом часто не может решить, куда именно ему направить свои усилия. Никогда не нужно думать, что админы не смогут работать программистами. Да, из системного администратора в программисты перейти довольно сложно, но при этом нет ничего невозможного. К основным профессиональным качествам, которые имеет системный администратор, стоит отнести довольно высокие аналитические способности, гибкость, высокую концентрацию внимания, устойчивость к стрессам, а также желание и возможность выполнять рутинные работы. Также необходимо понимать, что работать придется не только с оборудованием и техникой, а еще и с людьми, поэтому в характере такого специалиста должна присутствовать коммуникабельность и тактичность.

Если говорить о новом поколении специалистов, то здесь намечается тенденция к тому, что новые админы обладают не только базовыми знаниями и умениями работать с компьютерами, могут обслуживать сети и целые системы. Системный администратор нового поколения часто обладает фундаментальными знаниями в области программирования, знает несколько языков программирования.

Бывает и так, что мелкие фирмы, не обладая достаточным бюджетом, нанимают специалиста, который выполняет все обязанности, входящие в профессии системный администратор vs программист. Это наглядно можно увидеть в таком направлении, как 1С, где руководство небольшой фирмы принимает на работу нового сотрудника с тем расчетом, который позволяет в лице одного человека получить сразу двух ценных сотрудников. При этом системный администратор будет заниматься обслуживанием сетей, обеспечивать их жизненный цикл, поддерживать работоспособность. В то же время такой специалист будет разрабатывать СУБД. То есть, взвалит на себя все обязанности по настройке, проектированию, разработке и обслуживанию ИТ-инфраструктуры предприятия. Такой подход является в корне неправильным. Взвалив на плечи одного человека все обязанности, нужно понимать, что качественно выполнять их даже при всем желании он не сможет. Рано или поздно в работе будут допущены серьезные ошибки, и тогда придется потратить немало средств, сил и времени, чтобы исправить их.

Программист, системный администратор – профессии, как считают многие руководители, для молодых. Им кажется, что уже после сорока лет человек не способен своевременно реагировать на изменения в области ИТ, не получает достаточно знаний, ориентируется только на свой предыдущий опыт. Действительно, во многих компаниях сложно встретить программиста или же сисадмина, которому уже больше 40-45 лет. На самом деле такие специалисты не уходят так рано. Они оседают в достаточно солидных и крупных компаниях, находят свою нишу и отлично чувствуют себя в профессиональном и хорошо сформированном коллективе. Огромное значение имеет не только масштабность компании, но и регион. Программист или системный администратор – это своеобразный многорукий Шива, для которого практически нет ничего невозможного. Он занимается любыми задачи, которые ставит перед ним руководство. Именно поэтому перспективные молодые специалисты стараются переехать в большие города, чтобы полностью отдаться своей профессии, а не выполнять многочисленные работы за себя и парня из соседнего отдела.

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

Если же говорить об уровне заработной платы и о перспективе карьерного роста, то кто в этом плане лучше – программист или сисадмин? Естественно, программеры получают зарплату, которая намного больше, чем зарплата, которую получают админы. Сложность профессии заключается в том, что системный администратор, придя на работу, может выпить кофе, осудить сплетни в офисе, поговорить о жизни с коллегами. Программеры практически всегда лишены такого удовольствия, так как всецело заняты поставленной задачей. И если у них в договоре прописан 8-часовой рабочий день, то и часто они вынуждены работать такой 8-часовой рабочий день без обеда, отдыха и каких-либо отвлекающих моментов. Что касается характера работы, то раньше считалось, что программисты – это сплошные интроверты. Сегодня ситуация кардинально поменялась. Необходимо обладать практически уникальными коммуникативными способностями, так как придется работать в совершенно разных направлениях, причем, находить язык с людьми, которые не смыслят в программировании и даже в компьютерах ровным счетом ничего. Естественно, это очень напрягает, но здесь ничего не поделаешь. Нужно как-то объяснять начальству определенные этапы своей работы, узнавать подробности изменения ПО в компании, которая занимается аудитом в бухгалтерии. В общем, необходимо находить язык практически со всеми в компании, чтобы получить максимальный объем нужной информации, а это бывает довольно сложно.

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

Кто такой DevOps-инженер: программист, сисадмин или всё сразу

Разбираемся, кому подходит профессия, что должен уметь специалист и как им стать.

Лена Шпрингер

Лена Шпрингер
Пишет о бизнесе и IT для Билайна, Mail.Ru Cloud Solutions и технологических стартапов.

DevOps-инженер — не просто универсал, который умеет всё понемногу, а в итоге не умеет ничего. Тут скорее симбиоз программиста и системного администратора — одновременно эволюция каждой из профессий и шаг в сторону от них.

Специалист по DevOps не решает отдельные задачи разработки и администрирования, а ускоряет весь процесс разработки программ, мобильных приложений и сайтов в IT-компаниях отделах. Он разбирается в специфике задач программистов, тестировщиков и системных администраторов и помогает им работать вместе и автоматизировать процессы — чтобы быстрее выпускать новые продукты и обновлять уже готовые.

Разберём, что конкретно делает DevOps-инженер, каким компаниям он нужен, сколько ему готовы платить и каковы перспективы роста.

В чём состоит работа DevOps-инженера

Разработка ПО и сайтов никогда не была быстрым процессом. Одна из причин в том, что между разработчиками, тестировщиками и сисадминами всегда стояла стена, через которую время от времени перекидывались куски кода.

Никто не понимал, что происходит по другую сторону стены: разработчики не знали, с какими проблемами сталкиваются тестировщики и сисадмины; тестировщики ругали разработчиков за то, что их код неудобно тестировать; сисадмины ругали всех — потому что исправление ошибок требовало времени, а выпустить обновление надо было ещё вчера.

Всё это происходило из-за того, что создание ПО делилось на три отдельных процесса:

  • Разработчики писали код и периодически передавали готовые большие куски тестировщикам.
  • Тестировщики тестировали то, что им передали разработчики. Если что-то работало не так, они накапливали отчёты об ошибках и пачкой отправляли их назад разработчикам.
  • Системные администраторы брали протестированный рабочий код и делали его доступным для пользователей — заливали на сервера компаний и выпускали новое приложение или обновление.

Чтобы как-то исправить ситуацию, светлые умы IT-индустрии решили превратить разработку в единый цикл. Они продумали процессы, создали новые стандарты разработки, и в итоге это выросло сначала в методологию, а потом и в целую культуру — DevOps.

Термин собран из двух английских слов: development и operations . Смысл в том, что DevOps превращает разработку в непрерывный конвейер. Даже небольшие куски программ тестируются автоматически, разработчики сразу делают их удобными для ручного тестирования и запуска у пользователей, а сисадмины могут прийти с ошибками и хотелками пользователей прямо к программистам — чтобы те быстро написали новый код.

Но чтобы внедрить красоту и мощь DevOps у себя в компании, нужно:

  • обучить ей программистов, тестировщиков и сисадминов;
  • сделать, чтобы все понимали друг друга и хоть немного прониклись проблемами, с которыми сталкиваются коллеги;
  • настроить автоматизацию, чтобы повторяющиеся процессы занимали меньше времени. Например, чтобы часть готового кода сразу тестировалась с помощью специальных инструментов.

Для решения всех этих вопросов и появилась профессия DevOps-инженера. Его главная задача — сделать так, чтобы разработка в компании шла по методологии DevOps. Для этого он должен:

  • наладить общение между разработчиками, тестировщиками и сисадминами. Говорить с ними на одном языке, понимать их проблемы, хотя бы немного уметь работать с их инструментами;
  • настроить инструменты процесса: репозитории кода, CI/CD -системы, автоматические инструменты тестирования, средства для контейнеризации приложений;
  • постоянно следить за процессом разработки: помогать всем осваиваться с новыми инструментами, обновлять автоматические системы и придумывать, что ещё можно упростить и автоматизировать.

Кто нанимает DevOps-инженеров

Сейчас DevOps — стандарт разработки. Без него не получится быстро выпускать IT-продукты — есть риск, что конкуренты уйдут далеко вперёд, а компания останется без прибыли. Поэтому DevOps-инженеров стараются нанимать все, кто так или иначе связан с разработкой и осознал ценность методологии DevOps.

Такие компании делятся на три группы:

IT-компании. Зарабатывают именно благодаря программам, приложениям и сайтам, то есть разработка — основное направление их деятельности. Google, Mail.ru, Uber, Booking, 1С, разработчики игр — всё это IT-компании. Им жизненно необходим DevOps, так как без него не получится эффективно выпускать главный продукт.

Обычные компании с IT-отделом. Эти компании в основном занимаются чем-то другим: продают одежду, выдают кредиты, строят дома. Но у них есть IT-отдел, который разрабатывает сайты или мобильные приложения. Ozon, Сбербанк, «Лента» — всё это обычные компании с IT-отделом, который занимается их сайтами и приложениями. Теоретически они могут существовать и без DevOps, но тогда конкуренты их обгонят, поскольку будут выпускать приложения быстрее и завоюют больше клиентской любви.

IT-агентства. Это компании, которые занимаются разработкой под заказ — для других компаний. Например, небольшой магазин хочет сайт или приложение, но не может позволить себе целый IT-отдел — и нанимает IT-агентство, которое всё разработает. Таким компаниям DevOps нужен, чтобы быстрее и качественнее делать свою работу для клиентов.

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

Поэтому часто от сисадмина ждут, что он будет выполнять ещё и работу DevOps-инженера — поддерживать разработчиков и помогать тестировщикам. Это нормальная практика в небольших компаниях — здесь не найти столько задач, чтобы понадобились и девопс, и сисадмин.

Насколько востребованы DevOps-инженеры и сколько им платят

DevOps-инженеры нужны во всём мире. Например, согласно исследованию Linux Foundation и edX, в 2020 году 65% IT-компаний искали DevOps-инженеров, но только 59% искали разработчиков. Разница в процентах кажется небольшой, но на практике это сотни и тысячи открытых вакансий. Рынок DevOps растёт даже несмотря на пандемию — это значит, что спрос на девопс-инженеров будет только увеличиваться. В рейтинге лучших должностей Америки должность DevOps-инженера занимает пятое место.

По России такой статистики, к сожалению, нет. Но можно оценить общий спрос, просмотрев вакансии. На «Яндекс.Работе», которая агрегирует данные разных работных ресурсов, сейчас есть больше 8 тысяч предложений для DevOps-инженеров:

Для сравнения, вакансий по запросу «Web-разработчик» — около 7 тысяч, «JavaScript-разработчик» — 8,5 тысяч, а это самый популярный язык веб-программирования в мире. Это совсем не значит, что DevOps требуется больше — на 10–20 разработчиков нужен всего один. Но сами цифры показывают, что потребность в таких специалистах очень высока.

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

Всё это значит, что DevOps-инженер легко может найти работу в России, а при желании — уехать за рубеж. И спрос на таких специалистов будет только расти.

В США DevOps зарабатывает в среднем 7–10 тысяч долларов. В России даже начинающим специалистам готовы платить от 90 тысяч рублей в месяц уже после вычета налогов, а зарплаты опытных доходят до 250 тысяч рублей и больше.

Что нужно узнать, чтобы стать DevOps-инженером

Сложность профессии в том, что она включает в себя два набора компетенций: знания в разработке и в администрировании. Изучать сразу оба непросто, поэтому проще стать DevOps-инженером, если вы уже сисадмин или программист. Тогда понадобится освоить специфику другого направления — и можно будет приступать к работе.

Если хочется получить профессию с нуля, лучше сначала изучить системное администрирование или программирование, немного набраться опыта — и потом осваивать специфические инструменты, необходимые именно для DevOps.

Каждый DevOps должен уметь:

  • работать с GitLab, создавать пространство для коллективной работы, разрешать внутренние конфликты версий, настраивать CI/CD — конвейер, который позволяет непрерывно вносить в код небольшие изменения и быстро запускать приложения на боевых серверах;
  • программировать на Python. Это понадобится, чтобы писать программы для автоматизации и в целом понимать специфику работы программистов;
  • работать с контейнерами Docker — ПО для автоматического развёртывания и управления приложениями в средах с поддержкой контейнеризации;
  • настраивать всю инфраструктуру разработки;
  • мониторить статусы сервисов, серверов и сетевого оборудования с помощью инструментов вроде Zabbix;
  • настраивать инструменты для автоматизации тестирования.

Другие компетенции зависят от компании, в которой будет работать DevOps. Например, может потребоваться умение администрировать Linux, работать с облачными технологиями, настраивать виртуализацию. Но для старта хватит базовых навыков.

Кроме того, понадобятся прокачанные софт-скиллы: аналитический склад ума, желание организовывать и автоматизировать, умение логически мыслить и видеть всё системно. Без них даже освоить профессию DevOps будет непросто. Также полезно уметь общаться — придётся много разговаривать с разработчиками, тестировщиками и сисадминами, обучать их методологии DevOps, презентовать свои решения руководству.

Знание английского тоже пригодится: документация ко многим программам написана на английском, а решения для каких-то проблем часто проще найти на зарубежных сайтах и форумах, так как там культура DevOps развита сильнее.

Какие перспективы роста есть у DevOps-инженера

Даже на старте DevOps-инженеры зарабатывают неплохо. В основном потому, что DevOps считается следующим шагом в карьере программиста и сисадмина — пусть и шагом слегка в сторону.

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

Чтобы получать больше, можно наращивать дополнительные компетенции: учиться строить инфраструктуру в облаке, работать с базами данных, осваивать системы оркестрации контейнеров и новые инструменты автоматизации. А вот дальше для роста понадобится прокачивать уже не конкретные навыки или знания, а опыт и умение решать нестандартные проблемы. Тогда девопса охотнее наймут в большую компанию, где всё это пригодится.

В особенно крупных обычно есть целые отделы DevOps. Здесь можно в итоге вырасти до руководителя такого отдела — то есть задавать направление развития разработки во всей компании. Конечно для этого понадобятся управленческие навыки — умение руководить, делегировать, планировать работы и презентовать решения высшему руководству.

Где всему этому научиться

Если вы уже разработчик или системный администратор, можно попытаться освоить профессию самостоятельно. Для этого понадобится проникнуть в специфику смежной области, освоить нужные для DevOps инструменты и разобраться в автоматизации и контейнеризации. Сисадминам обычно проще — знаний в языках программирования от DevOps ждут совсем немного, а вот в IT-инфраструктуре нужно разбираться глубже.

Если боитесь зайти не туда или не хотите тратить много времени на самостоятельное освоение, можно получить более основательное образование. Например, окончить курс «Профессия DevOps-инженер» в Skillbox — здесь сразу дают системные знания из всех областей и не грузят тем, что девопсу знать не обязательно.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *