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

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

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

В ближайшие годы спрос на инженеров-программистов, скорее всего, вырастет на 20–25 %.

Так что, если вы думаете о новой карьере! Действуй! Это лучший момент, чтобы заняться технологиями.

Фото ThisIsEngineering: https://www.pexels.com/photo/woman-coding-on-computer-3861958/

Итак, давайте начнем с Кто такой инженер-программист.

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

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

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

Что такое программное обеспечение

Что не является программным обеспечением — программное обеспечение и аппаратное обеспечение

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

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

Некоторые примеры программного обеспечения:

а. Ваша операционная система, которая работает на вашем компьютере: например, iOS или Windows.
b. Любое приложение, которое вы можете придумать: WhatsApp, Youtube, Instagram…
c. Видеоигра, в которую вы играете, является частью программного обеспечения.
эл. И в принципе, любое цифровое устройство, вероятно, имеет какое-то программное обеспечение.

Крайне важно отличать программное обеспечение от оборудования.

Оборудование — это физическая часть компьютера, электронной книги, iPad… а программное обеспечение — это программа, работающая внутри и позволяющая нам его использовать.

Без программного обеспечения все эти элементы… были бы просто украшениями.

Важно различать обе части. Оба зависят друг от друга. Они имеют смысл только вместе. Но на самом деле это разные понятия. Люди, которые проектируют и производят оборудование, имеют разные типы работы и навыки.

Я вношу свой вклад, потому что мне задавали вопросы в стиле…

Вы можете починить мой ноутбук? Или… мои наушники не работают, и когда я говорю «Нет, я не знаю об этом», они выглядят шокированными, как будто программное и аппаратное обеспечение одно и то же, или я должен знать об этом как часть моей роли инженера-программиста.

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

Итак, если вы думаете о своем Smart TV. Все физические части вашего телевизора не изменятся

И инженер-программист должен создать что-то, скажем, NETFLIX, которое должно работать в вашем бренде SMART TV у вашего соседа, ваших родителей и так далее.

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

Основные инженерные правила

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

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

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

Например:

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

Основные этапы жизненного цикла разработки программного обеспечения

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

Давайте используем пример приложения Netflix, чтобы понять все эти этапы.

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

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

Дизайн

Затем вы перейдете к этапу Дизайн системы. Речь идет о разработке программного обеспечения, которое вы создаете, с технической точки зрения.

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

Нам нужны заголовок, видео и изображения фильмов в примере с Netflix.

И нам также нужно подумать о том, где мы будем хранить наши данные.

Точно так же вы, вероятно, используете Google Диск или Dropbox для хранения изображений или документов. Как инженер-программист, вы также должны учитывать, какой сервис вы будете использовать.

Кроме того, сколько пользователей мы ожидаем иметь? В каких странах мы собираемся сделать Netflix доступным?

Где мы будем хранить все данные пользователя? Их данные для входа, предпочтения…

Еще одна особенность Netflix — отображение персонализированного контента. Как мы собираемся создать эту логику? Что будем учитывать?

К концу этого этапа у вас будет подробная архитектура со схемами и техническими деталями.

Этот этап является ключом к созданию успешного продукта.

Разработка

Затем мы разрабатываем программное обеспечение. Это этап кодирования.

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

Поэтому, если вы хотите создать собственное приложение Netflix для смартфонов: iPhone или Android, вы должны использовать совершенно другую технологию, чем если бы вы создавали приложение, которое можно открыть в браузере. [Веб-сайт АКА.]

И здесь начинается разница между инженерами. Но об этом я расскажу чуть позже.

Тестирование

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

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

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

Но наша работа на этом не заканчивается. Мы не просто переходим к следующему.

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

Оценка

Здесь начинается этап оценки.

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

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

Техническое обслуживание

И, наконец, нам нужно убедиться, что наш продукт постоянно работает.

А также исправление любых ошибок и безупречный функционал.

И обновление нашего программного обеспечения для добавления лучших функций на основе отчетов об оценке.

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

РОЛИ инженера-программиста

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

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

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

Некоторые из этих ролей могут быть:

Веб-разработчик: Front-end, Back-end или Full Stack разработчик.

Разработчик приложений: создание приложений для Android или Apple.

Инженер DevOps, системный инженер, инженер по обеспечению качества, инженер по данным

и т. д.

Если вы нашли этот контент полезным и интересным, вы можете проверить мой канал YouTube и 👏🏻👏🏻.

Спасибо!!