Рубріки: Карьера

Не каждый программист может так себя назвать: кто такой Software Engineer и как им стать

Оленка Пилипчак

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

Немного о Software Engineer

Редакция Highload публикует перевод материала.

Переведено бюро переводов «Профпереклад».

Перевод от

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

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

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

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

Когда речь заходит о работе в IT-сфере — вариантов уйма. Мы решили рассмотреть одно из самых популярных направлений. Инженер ПО или Software Engineer работает над созданием программ и приложений.

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

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

Карьерная лестница Software Engineer

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

  • Программист. На самом деле, как бы заезженно это ни звучало, программист — это человек, пишущий код. Обычно он получает конкретное задание и объяснение, как его решить. Он следует инструкциям и пишет код на том или ином языке программирования.
  • Software Engineer. Цель инженера — создать оптимизированные аккуратные программы, которые можно обновлять и расширять их функционал. Например, инженер может искать оптимальные решения по разработке ПО. Карьера Software Engineer начинается с начального уровня (чаще это специалист по вводу данных). По мере набора опыта и знаний вы начнете накапливать портфолио проектов и решений. Со временем инженер переходит от джуниора к мидлу, а затем уже к уровню сеньора. Но продвижение по карьерной лестнице индивидуально и зависит от политики компании.

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

«Разумеется, Senior Software Engineer — не последняя ступенька карьеры в айти. Но здесь нередко бывает так, что приходится выбирать техническую часть, то есть больше сосредоточиться на инженерно-технических навыках и обмене опытом или же пойти в руководящем направлении. Во втором случае у нас есть такие должности как тимлид, менеджер по программному инжинирингу (Engineering Manager) и так далее. Коммуникационные навыки здесь куда важнее, поскольку ваша задача — обеспечить гладкий, бесперебойный рабочий процесс и продуктивность команды», — говорит Юрий Грушевой, директор информационных технологий в Proxet.

Специализация и обязанности Software Engineer

Теперь рассмотрим основные обязанности инженера ПО на разных уровнях.

Два состояния каждого программиста: «я — бог» и «я не имею представления, что делаю»

Начальный уровень

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

Ваши задачи могут быть какими угодно, но все они будут направлены на то, чтобы вы могли учиться и приобретать опыт. Очень часто придется работать с более опытными сотрудниками, которые будут следить за вашим прогрессом и делиться с вами знаниями. Имейте в виду: чем лучше будете выполнять задания, тем больше возможностей у вас появится в будущем!

Джуниор и мидл

Обычно при найме Junior Software Engineer главное требование — опыт. Для этого уровня наличие опыта — не столько бонус, сколько обязательное условие. На собеседовании вас первым делом спросят о том, есть ли у вас опыт работы на аналогичной должности или в этой сфере.

Тем не менее работа — не единственный способ набраться опыта. У вас могут быть и личные, и групповые проекты. Не лишними окажутся и семинары или курсы. Закончили школу инжиниринга ПО — тоже хорошо.

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

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

То же самое касается и мидл-уровня, но с одним нюансом. На Middle Software Engineer возлагают больше обязанностей, и навыков у него должно быть больше (как технических, так и коммуникационных). Такой эксперт уже может выступать ментором для разработчиков начального и младшего уровней.

Сеньор

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

«Все — вот здесь»

Архитектор

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

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

Честно говоря, с такими навыками уже можно запросто открывать свой стартап.

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

Все, что нужно знать о начальном уровне Software Engineer

А теперь посмотрим, какие профессиональные навыки потребуются инженеру на начальном уровне.

Требования к навыкам здесь довольно непритязательны: наличие диплома бакалавра компьютерных наук, разработки приложений или ПО. На самом деле, любое образование, связанное с компьютерами, уже позволит вам претендовать на должность Software Engineer. Не лишним также будет желание учиться и расти.

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

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

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

Чего ждать: будущее профессии

У IT-сферы большое будущее. Можно даже сказать, что это будущее всего человечества. И разработка ПО — большая часть этой истории.

«Я всегда мечтал увидеть будущее»

  1. Спрос на опытных специалистов по разработке ПО будет только расти. Почему? Потому что весь современный мир работает на программном обеспечении.
  2. Все больше компаний задумываются об автоматизации процессов. По прогнозам Forrester, одного из ведущих исследователей конъюнктуры рынка, к 2023 году компании потратят на автоматизацию глобального маркетинга более 25 млрд долларов.
  3. Взгляните на развитие искусственного интеллекта, интернета вещей, облачных технологий, блокчейна, комплектов инструментальных средств разработки, или даже прогрессивных веб-приложений. Все это так или иначе связано с разработкой ПО. К примеру, в отчете Ericsson Mobility Report сказано, что к 2024 году количество подключенных к сети устройств превысит 22 млрд.
  4. По данным Бюро трудовой статистики США, к 2026 году отрасль разработки ПО резко вырастет.

Большинство экспертов уверены, что у этой сферы большое и светлое будущее.

Примеры должностей

Давайте посмотрим, какие должности могут быть востребованы в этой сфере:

  • Chief Technical Officer (CTO);
  • VP of Engineering или Director of Engineering;
  • Delivery Manager;
  • Chief Architect;
  • Software Architect;
  • Engineering Project Manager или Engineering Manager;
  • Technical Lead или Engineering Lead;
  • Principal Software Engineer;
  • Senior Software Engineer;
  • Software Engineer;
  • Software Developer;
  • Junior Software Developer;
  • Intern Software Developer.

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

Читайте также: Эксперимент с подъемом в 5 утра: 6 полезных привычек Software Engineer

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

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

07.12.2023