Не каждый программист может так себя назвать: кто такой 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-сферы большое будущее. Можно даже сказать, что это будущее всего человечества. И разработка ПО — большая часть этой истории.
«Я всегда мечтал увидеть будущее»
- Спрос на опытных специалистов по разработке ПО будет только расти. Почему? Потому что весь современный мир работает на программном обеспечении.
- Все больше компаний задумываются об автоматизации процессов. По прогнозам Forrester, одного из ведущих исследователей конъюнктуры рынка, к 2023 году компании потратят на автоматизацию глобального маркетинга более 25 млрд долларов.
- Взгляните на развитие искусственного интеллекта, интернета вещей, облачных технологий, блокчейна, комплектов инструментальных средств разработки, или даже прогрессивных веб-приложений. Все это так или иначе связано с разработкой ПО. К примеру, в отчете Ericsson Mobility Report сказано, что к 2024 году количество подключенных к сети устройств превысит 22 млрд.
- По данным Бюро трудовой статистики США, к 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
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: