Какие компьютерные программы должен знать инженер

Содержание

Вокруг профессии «Инженер программист» сформировалась довольно странная ситуация: многие источники начинают приписывать этой профессии чуть ли не магические свойства, мол, и тестированием он занимается, и разработать может что угодно, и «программная инженерия» (что бы это ни значило) – крайне ответственное дело, которым не может заниматься разработчик, но может software engineer. Все это вносит путаницу, и люди начинают думать, что инженер программист – это какой-то высококвалифицированный подвид разработчика. Ниже мы покажем, почему это не так (и почему в этой путанице виноваты ВУЗы), а так же расскажем, какими навыками обладает инженер-программист, что он делает на реальной работе и сколько ему платят.

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

Что почитать по теме
Подведем итоги

Winderton / Куда пойти в программировании?

Инженер-программист – кто такой и чем занимается

Отличия от других профессий

Начнем с той самой путаницы, о которой мы только что говорили. Есть понятия «Инженер-программист», «Программист» и «Девелопер/Разработчик». Так вот, все это – одно и то же. Проблема названий появилась из-за медлительности ВУЗов – раньше, когда компьютеры были ленточными и все писали код на Фортране, программистов действительно называли «Инженерами-программистами», потому что не-инженерам компьютеры были не нужны в принципе – они умели только производить математические вычисления, никаких «Косынок» и «Саперов». Кроме того, даже сейчас формулировка «Инженер-программист» имеет смысл, поскольку любой девелопер должен обладать навыками инженера – приложение в любом случае нужно проектировать перед разработкой, и «Инженер» в названии этот момент как раз отражает.

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

Поскольку лидером в плане рынка разработки были США, многие слова из английского были заимствованы при описании позиций в команде разработки. И вписались они довольно удачно, потому что с точки зрения русского языка «Программист» – это человек, который просто набирает код, который будет исполняться на вычислительном устройстве. «Инженер-программист» – это человек, который придумывает (проектирует) программу + набирает ее. Эти два слова можно заменить одним, «Разработчик», потому что разработкой программных продуктов занимается как раз тот, кто и проектирует этот продукт, и пишет его. То есть инженер-программист = разработчик = девелопер (калькирования слова developer).

Проблема – в том, что слово «Разработчик» (как и девелопер) – довольно широкое и непонятное обывателю. А вот «инженер-программист» – это уже что-то более понятное. Поэтому ВУЗы и госучреждения, которым нужно вести строгую отчетность на русском языке, используют формулировку «Инженер-программист», которую пишут в дипломах и трудовых. Но пусть вас это не обманывает – если госучреждение открыло вакансию Инженер-Программист, оно ищет девелопера под конкретные задачи.

Инженер: плюсы, минусы, зарплата

Особенности профессии

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

  • Что входит в разработку? Есть понятие, которое прекрасно описывает разработку: «Жизненный цикл разработки ПО». Цикл включает в себя составление ТЗ, планирование, проектирование/дизайн, саму разработку, тестирование и поддержку. Составление ТЗ – работа заказчика, разработчиком программного обеспечения она вроде как не должна осуществляться, но на этом этапе разработчик может консультировать заказчика. Планирование – это ранняя стадия проектирования, здесь выбираются основные технологии и оценивается стоимость/трудозатраты. Планированием занимается ведущий инженер-программист, то есть Lead. Дизайн – это планирование конкретных деталей реализации, здесь уже вовлекаются все разработчики, то есть профессия инженера-программиста предполагает знания в области проектирования ПО. Затем все занимаются разработкой приложения по плану – должность инженера-программиста в первую очередь как раз предполагает умение писать код по ТЗ (и решать возникающие проблемы). Когда все готово, готовое приложение отправляется в отдел тестирования, и тестировщики нещадно издеваются над приложением с целью его сломать. Если получилось – приложение возвращается девелоперам, которые дополнительным программным кодом (и обычно кучей нецензурной лексики в адрес тестировщиков, хотя на деле сами виноваты) исправляют приложение. Когда тестировщиков устроил результат – он отправляется в продакшн, то есть пользователям. Если нужно что-то доделать уже после релиза (ухода в продакшн) или резко исправить баг – этим тоже занимаются разработчики, а сама фаза называется «Поддержка».
  • Что подразумевается под приложением? Все, что можно запустить на вычислительном устройстве. Игра для Steam, сайт, онлайн-банкинг, операционная система, управляющий блок для холодильника – все это является приложением.
  • Какие конкретные цели есть у бизнеса? Решить какую-то проблему и/или заработать деньги. Речь может идти о прямом заработке (продаем подписки на свой сервис) или косвенном (снижаем затраты на поддержку документооборота). Прямым заработком обычно занимаются частные компании, косвенным – государственные структуры. ГосУслуги – явный пример косвенного заработка, государство существенно сэкономило на документообороте.

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

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

Необходимые навыки

Что надо знать/уметь:

  • Языки программирования, используемые на проекте. Вы не можете создать что-то полезное, если не знаете язык, на котором это полезное пишется на данном проекте.
  • Основные фреймворки, используемые на проекте. Новички часто упускают тот момент, что язык при разработке используется не в чистом виде, а в виде фреймворка – функционального расширения базового языка. Нужно знать либо конкретно те фреймворки, которые используются, либо их аналоги (в этом случае вам нужно будет дообучаться).
  • Работа с сопутствующими технологиями. Как минимум Git (система контроля версий), Jira/Trello (система контроля задач) и SQL (язык структурированной базы данных). На проекте могут использоваться и другие технологии, но если вы будете проявлять потенциал – вас возьмут на работу без знания этих сопутствующих технологий и обучат в процессе.
  • Работа в команде. Времена, когда 1-2 девелопера в гараже писали гениальные проекты, прошли. Сейчас небольшой проект – это команда в 5 человек и полгода разработки. Вам ежедневно нужно будет созваниваться с вашими коллегами и обсуждать с ними различные проблемы. Поэтому «стрессоустойчивость», «общительность» и «работа в команде» – это не пустые слова в резюме.
  • Быстрая обучаемость. Приходя на новый проект, вы никогда не будете знать все. Даже когда вы освоитесь, вам все равно придется учить новые технологии. Поэтому приготовьтесь к тому, что вы постоянно будете что-то учить.

Важные личные качества

Основные личные качества хорошего девелопера – это умение быстро учиться и продуктивно общаться с другими участниками команды.

Оба качества мы уже описали выше.

Плюсы и минусы профессии

Плюсы:

  • Хорошо платят.
  • Обычно в команде собираются приятные люди = хороший коллектив.
  • Не требуется высшее техническое образование.

Минусы:

  • Сидячая работа.
  • Интеллектуально тяжелая работа, возможны выгорания.
  • Новичку сложно устроиться – придется минимум пару месяцев ходить на собеседования.

Обучение на инженера-программиста

Платные курсы

  • Веб-разработчик с нуля до PRO. Полный курс для получения профессии, длительность – 10 месяцев. Основные языки: JavaScript, PHP. В результате вы научитесь с нуля создавать сложные и красивые сайты. Дополнительно дают годовой курс английского. Стоимость: 85 000 рублей, есть рассрочка.
  • Курс Java разработчик (Junior). Короткий курс по разработке онлайн-приложений на Java, пре-реквизиты – курсы по Java от этой же школы. Стоимость: 26 000 рублей.
  • Backend разработчик. Вводный курс для веб-разработчиков на 3 месяца, языки – JavaScript и PHP. Стоимость: 42 000 рублей.

Бесплатные курсы

  • Поколение Python. Подробный вводный курс для начинающих программистов. Язык – Python. После прохождения обучения дают сертификат.
  • Основы верстки сайтов. Базовый курс по HTML/CSS.
  • Ruby для начинающих. Вводный курс по Ruby, поможет вам понять, хотите ли вы связываться с веб-разработкой.
Читайте также:
Программа пин код выпуски

Обучение в ВУЗе

ВУЗ – не лучший вариант для получения профессии, и проблема здесь – в длительности обучения. Дело в том, что в IT технологии постоянно меняются и развиваются, кроме того, часто появляются новые. Поскольку стандартное обучение длится 4-5 лет, к моменту получения диплома вы обнаружите, что существенная часть ваших знаний уже устарела.

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

Но если вам все же интересны высшие учебные заведения, то в ТОП-5 входят: МГУ им. Ломоносова, МГТУ им. Н.Э. Баумана, ВШЭ (НИУ), УрФУ им. Б.Н.

Ельцина, СПбГУ ИТМО (НИУ).

Обзор рынка труда – зарплаты, востребованность, перспективы

На hh.ru по запросу «инженер-программист» можно найти 8 100 вакансий. На самом деле вакансий – намного больше, но они обычно разбросаны по Телеграм-каналам и небольшим специализированным сайтам. Если рассматривать исключительно hh.ru, то из 8 100 вакансий зарплата указана только у 3 200 – то есть в большинстве случаев зарплата определяется по результатам собеседования.

Из 3 200 вакансий у 2 100 зарплата – больше 80 000 рублей. Зарплата от 390 000 рублей выставлена у 100 вакансий. Касательно стека технологий – «инженеров-программистов» чаще всего идут компании, которым нужно писать приложения для микроконтроллеров и поддерживать легаси-код (древний код на полузабытых языках). Поэтому среди требований нередко встречается знание Delphi и C/С++.

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

Примеры вакансий

Приложения для спутников (нужны сильные математические скилы), з/п до 200 000 рублей:

Ведущий инженер-программист с зарплатой до 90 000 рублей:

Путь инженера-программиста – вероятный карьерный сценарий

Практически все девелоперы проходят один и тот же путь: Junior, Middle, Senior. Junior – это девелопер, который пока еще ничего толком не умеет и не понимает, но подает надежды. Обычно Junior приносит компании больше убытков, чем пользы, но его дообучают на месте и надеются на лучшее.

Когда Junior начинает брать на себя реальные задачи, он становится Middle-разработчиком – большие задачи ему еще не доверяют, но и пристально следить за ним уже не нужно. Наконец, когда разработчик становится настолько матерым, что может самостоятельно решать любые задачи и брать на себя за них ответственность, его повышают до Senior. Зарплата Сеньоров в среднем начинается от 1 500$.

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

Что почитать по теме

Обзор книг для инженера-программиста

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

В остальным же читайте книги либо по технологиям, которые вас интересуют, либо по инженерным навыкам: «Чистый код», книги по рефакторингу, паттерны проектирования и так далее. И да, нужно отметить, что часто вместо книг можно найти хорошие курсы/плейлисты на Ютубе – к примеру, есть прекрасный цикл лекций Немчинского, описывающий паттерны проектирования и затрагивающий ООП.

Форумы и тематические площадки

Форумы уже давно не пользуются популярностью основные тематические площадки: Хабр, StackOverflow и LinkedIn.

FAQ

Стоит ли поступать в ВУЗ?

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

Нужна ли алгоритмизация и другие технические знания, вроде структур данных?

Лишней точно не будет, хотя основам вас научат в процессе обучения языку, на котором вы будете писать. Можете почитывать алгоритмизацию/структуры данных в свободное время.

Подведем итоги

  • Инженер-программист – это то же самое, что разработчик/девелопер, никакой разницы нет.
  • Инженер-программист занимается разработкой программного обеспечения.
  • Основные знания – языки программирования, фреймворки, сопряженные технологии.
  • Нужно уметь быстро учиться и общаться с людьми.
  • Курсы > ВУЗ.
  • Много полезной информации для обучения можно найти на Ютубе.

Источник: www.sravni.ru

Пришёл и всё оптимизировал: что делают и что умеют системные инженеры

Системы, за которые нужно отвечать, есть в государственных структурах и частных компаниях разного масштаба и рода деятельности, в ИТ и других отраслях: от нефтегазовой сферы до розничной торговли.

В небольших ИТ-командах до 10–12 человек обязанности по работе с системами возложены на плечи программистов и сисадминов. Работа системных инженеров требуется там, где уже есть автоматизация рутинных процессов. Такие специалисты поддерживают то, чем люди пользуются каждый день: социальные сети и банковские сервисы, интернет-провайдеры и маркетплейсы, госуслуги и онлайн-образование. Этим они оптимизируют работу программистов и сисадминов, выстраивают культуру работы с программным кодом и сводят к минимуму риск хаотичных вмешательств в работу системы.

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

Системный инженер, DevOps, SRE: в чём разница

На рынке IT существует путаница между ролями DevOps, SRE (Site Reliability Engineer) и системного инженера.

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

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

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

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

Какие проблемы решают системные инженеры

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

Экономят время, деньги, нервы

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

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

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

Оптимизируют все процессы

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

Читайте также:
Что такое программа фантом

Выстраивают правильную культуру работы с кодом

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

Что должен знать и уметь системный инженер

HARD SKILLS

Профессия системного инженера объединяет знания в области ИТ, инженерии и менеджмента. Конкретный список технологий, которыми должен владеть такой специалист, зависит от компании. Но основные навыки, которые встречаются в объявлениях, это:

  • работа с Linux-системами;
  • работа с облачными технологиями;
  • управление пользовательскими группами;
  • документирование процессов;
  • знание сетевых стандартов и протоколов;
  • понимание стандартов иерархии файловой системы;
  • работа с инструментами управления конфигурациями.

Елизавета

Младший системный инженер, Санкт-Петербург

– о навыках для начинающих системных инженеров –

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

Он попросил меня настроить ArchLinux в обмен на обещание трудоустройства. Вскоре открыли вакансию в той компании, где он начинал.

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

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

Сергей

Начальник отдела VMWare, Санкт-Петербург

– о знаниях при трудоустройстве и готовности учиться на ходу –

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

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

При трудоустройстве мне очень пригодились знания по устройству ОС: как общие, так и конкретно по GNU/Linux.

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

Помню своё первое серьёзное знакомство с FreeBSD «вживую»: была задача развернуть ОС на сервер одного из клиентов с использованием программного RAID. C ходу она казалась простой, но я делал это впервые и для заказчика, отвечая за качество головой. Пришлось попотеть, углубиться в документацию, разобраться, как работает программный RAID, изучить утилиты. Но в результате 6 часов спустя всё было готово.

SOFT SKILLS

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

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

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

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

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

ОБРАЗОВАНИЕ

Большинство системных инженеров — люди с техническим образованием в инженерной или математической сфере. Многие начинают работать по этой специальности на старших курсах или сразу после вуза, и позиции уровня Junior оптимальны для старта карьеры. Для более узкой специализации хорошо подходят магистерские программы: например, по биомедицинским системам, кибербезопасности, администрированию информационных систем.

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

  • ASEP (Associate Systems Engineering Professional) → для начинающих;
  • CSEP (Certified Systems Engineering Professional) → для специалистов с опытом работы от 5 лет;
  • ESEP (Expert Systems Engineering Professional) → для профессионалов с многолетним опытом.

Курсы по получению профессии системного инженера для лиц с высшим образованием любого профиля есть и в некоторых технических вузах, например, при МГТУ имени Баумана и ИТМО. Выпускники таких курсов получают диплом о дополнительном профессиональном образовании с правом на работу.

Навыки работы с сетями и информационными системами полезно черпать и из профессиональной литературы. Для ознакомления подойдут книги о внутреннем устройстве GNU/Linux, а также пособия по сетям: например, учебник «Компьютерные сети. Принципы, технологии, протоколы» авторства Виктора и Натальи Олиферов. Для работы с конкретным оборудованием можно изучить специализированные материалы вендоров железа. Также полезны будут тематические материалы и подкасты от проекта linkmeup.

Александр

Старший системный администратор, Санкт-Петербург

– о сдаче сертификата и готовности развиваться –

По образованию я психолог и до какого-то момента я даже не рассматривал ИТ-сферу как профессию. Но ещё в студенческие годы меня очень заинтересовала тема Linux.

Приходилось искать информацию в книжных магазинах, на дисковых развалах, ночами сидеть в интернет-клубах (дело было в самом начале 2000-х), чтобы скачивать информацию скопом.

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

Стал искать признанные сертификаты и остановился на LPIC-1 (сертификация Linux Professional Institute, сейчас недоступна в РФ — прим. ред.), к которому начал интенсивно готовиться. Рассчитывал на то, что сертификат всё же международный и на английском языке. А это хоть какой-то, но вес. Параллельно устроился на первую линию техподдержки в локальный интернет-провайдер.

Уже после сдачи сертификата нашёл работу сисадмином в офисе, где достаточно широко использовался Linux, и параллельно готовился к LPIC-2. После получения второго сертификата я устроился системным инженером в дата-центр.

На собеседовании в дата-центр я не успел расписать все ответы опросника за отведённое время, поэтому на последние отвечал экспромтом.

Приходилось догадываться и предполагать, что я и сделал, но на работу взяли. Потом уже на практике не раз приходилось решать задачи, с которыми раньше не приходилось иметь дело. Например, собирать кластер Oracle DB или настраивать миграцию баз данных из одного дата-центра в другой через репликацию. Что всегда выручало — знание общих принципов, чтение документации и примеров в сочетании с желанием попробовать и разобраться.

Куда двигаться дальше системному инженеру

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

Сергей

Начальник отдела VMWare, Санкт-Петербург

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

Александр

Старший системный администратор, Санкт-Петербург

Сейчас я ушёл в Bare-Metal Deployment. Но среди возможных вариантов были и другие: DevOps, сети, «облака», да много чего. Я просто выбрал то, что мне интереснее. Когда достигаешь достаточной базы, то понимаешь, что у тебя просто физически не хватит времени заниматься всем подряд и нужно выбирать. Оставаться в курсе технологий поможет общение с коллегами из разных команд и даже разных компаний, чтобы люди активно делились опытом и знаниями.

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

Читайте также:
Программа для телефона Самсунг кейс

Источник: habr.com

Кто такой инженер-программист и чем он занимается

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

Кто такой инженер-программист и чем он занимается

В закладки

Вряд ли заказчик сам сможет сформулировать задачу для разработчика, не имея при этом понятия о том, как данная задача может быть выполнена и на каком языке программирования. В таких ситуациях необходим инженер программист – кто это, чем занимается, что входит в его обязанности и какими знаниями должен обладать специалист, рассказывает сайт поиска работы Login Casino Work.

Кто такой инженер-программист и где нужны его услуги

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

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

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

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

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

Обязанности инженера-программиста

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

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

Какие навыки нужны инженеру-программисту для работы

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

  • языки программирования HTML, C#, C++, CSS, Java, JavaScript;
  • базы данных SQL и типизацию;
  • основы тематического моделирования, алгоритмизации;
  • различные операционные системы, web-технологии, облачные технологии;
  • английский язык на уровне выше среднего;
  • процесс создания схем ввода, обработки, выдачи и хранения информации;
  • настраивать, проверять и тестировать программное обеспечение;
  • эффективно взаимодействовать с другими членами команды, поддерживать продуктивную коммуникацию в ходе реализации проекта;
  • правильно выбирать подходящие для конкретного решения язык и среду разработки;
  • разрабатывать различные продукты, которые будут способны решать задачи заказчика в соответствии с поставленным техническим заданием;
  • вносить корректировки в ранее созданные продукты и решения;
  • готовить техническую документацию, инструкции для пользователей по созданному ПО.

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

Личные качества, помогающие специалисту успешно справляться с работой

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

  • ответственность;
  • самостоятельность;
  • логическое и критическое мышление;
  • внимательность;
  • самоорганизованность;
  • склонность к математике и анализу.

Кроме того, успешные представители профессии отличаются искренним интересом к своему делу, любят искать новые решения и обучаться новому.

Негативные и положительные стороны профессии

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

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

Карьерное развитие специалиста по инженерному программированию

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

  1. Первый или начальный уровень обычно присваивается новичку, стажеру, который не несет никакой ответственности и проходит обучение у более опытных коллег.
  2. Младший специалист, или, как принято его называть в среде программистов, джуниор (Junior), имеет знания, которых достаточно, чтобы решать несложные задачи. Его работа контролируется более опытными коллегами.
  3. Программист (Middle) имеет достаточно знаний, чтобы самостоятельно справиться практически с любой задачей и несет ответственность за качественное и своевременное выполнение своей работы. Кроме того, может еще нести ответственность за работу стажеров и джунов.
  4. Старший программист, или Senior, хорошо знает несколько языков программирования, может самостоятельно принимать важные решения относительно процедуры разработки продукта.
  5. Ведущий программист, или Lead, от старшего разработчика отличается тем, что, помимо наличия опыта разработки, имеет обязанности по управлению коллективом и решает важные вопросы с заказчиком.

Как выучиться на инженера-программиста

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

  1. Обучение в высших учебных заведениях на таких специальностях, как «Программная инженерия», «Информационные системы и технологии», «Информатика и вычислительная техника» и т. д. Конечно, для освоения профессии потребуется потратить пять лет, но вы получите значительный багаж знаний. На последних курсах вуза можно искать компанию, которая будет рада принять вас на стажировку. С тем уровнем востребованности, который существует на рынке (и будет существовать еще длительное время), способному новичку будет достаточно просто найти неплохое место трудоустройства.
  2. Пройти специальные курсы. Такой путь можно посоветовать тем, кто желает сменить профессию и уже имеет за плечами оконченное высшее заведение. Тогда вам легко будет справиться с интенсивностью занятий и большим количеством информации от преподавателей. Кроме того, такие курсы дают много практических занятий, благодаря чему к моменту окончания занятий вы будете иметь готовое портфолио с вашими работами.

Заработная плата инженера-программиста в Украине

В качестве одного из плюсов профессии мы называли высокую заработную плату. О какой сумме идет речь? По данным нескольких сайтов поиска работы, средняя заработная плата, которую готовы платить украинские работодатели, составляет порядка 20 000 по Украине. Для вычисления среднего показателя учитывались зарплаты специалистов всех категорий – от стажеров до сеньоров.

Конечно, чем выше категория, тем выше заработная плата. Кроме того, на размер оплаты труда влияет город и направление деятельности самого работодателя.

Как изменилась заработная плата инженеров-программистов уровня Middle за последние шесть лет в Украине*:

Год

Заработная плата инженеров-программистов, $

Источник: logincasino.work

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru