11 типов разработчиков (каким вы будете?)

Опубликовано: 2022-10-05

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

Мы могли бы классифицировать разработчиков по используемому ими языку программирования — например, «разработчик JavaScript» или «разработчик Python» — но это не раскрывало бы то, что они создают, или их роль в процессе. Кроме того, разработчики обычно знают несколько языков.

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

Что такое разработчик?

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

Член группы программистов, стоящей за программным обеспечением базы данных Microsoft SQL Server, является разработчиком. Кто-то, кто использует язык структурированных запросов для работы с информацией, хранящейся в такой базе данных, также может быть разработчиком.

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

Все эти типы разработчиков создали что-то с кодом.

Компьютерные экраны с кодом, используемым различными типами разработчиков
Код на экранах. (Фото Фотиса Фотопулоса на Unsplash)
Встречайте разработчиков! Погрузитесь в 11 различных типов разработки (и что на самом деле означают названия) в этом посте Нажмите, чтобы твитнуть

Сколько существует типов разработчиков?

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

Всего здесь мы рассмотрим 11 типов разработчиков.

1. Фронтенд-веб-разработчик

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

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

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

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

Являются ли разработчики интерфейса веб-дизайнерами?

Многие фронтенд-разработчики также являются дизайнерами, но это не обязательное условие для титула «фронтенд». Точно так же многие веб-дизайнеры хорошо разбираются в HTML и CSS и могут использовать их в макетах, но не считают себя разработчиками.

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

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

2. Бэкенд-веб-разработчик

Бэкэнд-разработчик создает серверные приложения, которые обычно требуют опыта работы с программным обеспечением веб-сервера, базами данных и операционными системами, на которых они работают. Примером полностью открытого исходного кода может быть операционная система Linux, веб-сервер Nginx или Apache и база данных MariaDB или PostgreSQL.

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

PHP, на котором работают WordPress и другие популярные CMS, а также такие среды разработки, как Laravel, является наиболее распространенным языком сценариев на стороне сервера в Интернете. Тем не менее, бэкэнд-разработчики могут использовать такие технологии, как C# и Microsoft .NET framework, Python, Java, Ruby on Rails или Node.js.

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

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

3. Веб-разработчик с полным стеком

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

Тем не менее, освоение всех уровней веб-разработки, похоже, имеет свои преимущества. Опрос разработчиков, проведенный StackOverflow в 2022 году, показал, что «разработчик полного стека» был самым популярным ответом (почти 47%), когда респондентов попросили описать свои роли.

Диаграмма, показывающая распространенные типы разработчиков в 2022 году
Лучшие типы разработчиков в 2022 году. (Источник изображения: StackOverflow)

Являются ли разработчики WordPress полноценными разработчиками?

Возможности управляемого хостинга WordPress здесь, в Kinsta, позволяют любому, кто разбирается в PHP, заниматься серьезной разработкой, не углубляясь в серверную часть вещей.

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

«Разработчик WordPress» мог бы быть здесь отдельной категорией, но тогда нам пришлось бы сделать то же самое для разработчиков, использующих продукты CMS, такие как Drupal, Joomla и DNN, и такие фреймворки, как Laravel, .NET и Django.

У многих разработчиков WordPress, особенно тех, кто создает темы и плагины для WordPress, есть вдохновляющие идеи полного стека. Итак, ответ на вопрос «Являются ли разработчики WordPress полноценными разработчиками?» это: Это зависит.

4. Разработчик мобильных приложений

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

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

Разработчики мобильных приложений знакомы с комплектами разработки программного обеспечения (SDK) и соответствующими инструментами, используемыми для создания приложений для операционной системы устройства, такой как iOS от Apple или Android от Google.

Swift — родной язык программирования для iOS, а Java и Kotlin чаще всего используются для Android. Кроме того, большая экосистема инструментов для создания приложений, таких как Apache Cordova и NativeScript, может превратить код, основанный на веб-дружественных JavaScript, HTML и CSS, в собственное мобильное программное обеспечение.

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

5. Разработчик настольного программного обеспечения

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

Разработчики обычно создают настольные приложения для конкретных операционных систем, поэтому активность в этой области отражает относительную долю рынка таких платформ, как Windows от Microsoft, macOS от Apple, Chrome OS от Google и операционная система с открытым исходным кодом Linux.

Используя данные, собранные при посещениях веб-сайтов по всему миру, Statcounter подсчитал в августе 2022 года, что доля Windows на рынке настольных операционных систем составляет 74%.

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

Доля рынка настольных операционных систем, август 2022 г. (Источник изображения: Statcounter)

Разработчики, скорее всего, будут программировать, используя инструменты интегрированной среды разработки (IDE) для быстрого редактирования, отладки и компиляции исходного кода.

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

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

6. Data Scientist (разработчик больших данных)

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

Специалист по данным — это волшебник математики с компьютером, который может выявить закономерности во всей этой информации.

Скорее всего, эти разработчики используют язык программирования Python или что-то более специализированное, например R, Scala или Julia.

«Большие данные» обычно попадают в реляционную базу данных, поэтому специалист по данным, скорее всего, будет иметь SQL в своем наборе инструментов для программирования.

7. Разработчик искусственного интеллекта/машинного обучения

Разработчики программного обеспечения для искусственного интеллекта (ИИ) стремятся имитировать человеческое поведение, например, принятие решений. Добавьте машинное обучение (ML), и со временем приложение станет умнее.

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

Исследовательская компания IDC обнаружила, что мировой доход от приложений, оборудования и услуг, связанных с ИИ, в 2021 году превысил 383 миллиарда долларов, что почти на 21% больше, чем в 2020 году.

Боретесь с простоями и проблемами WordPress? Kinsta — это решение для хостинга, предназначенное для экономии вашего времени! Ознакомьтесь с нашими функциями

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

Диаграмма, показывающая ценность программного обеспечения ИИ во всем мире
Стоимость программного обеспечения ИИ во всем мире, 2020 г. и 2021 г. (Источник изображения: IDC)

8. Разработчик игр

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

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

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

Разработчики игр обычно имеют опыт работы с инструментами 3D-рендеринга и другим программным обеспечением, связанным с анимацией.

И, сосредоточившись на передовых технологиях, недавние опросы разработчиков, проведенные SlashData Developer Nation, показали, что чуть более 37% приложений дополненной реальности (AR) или виртуальной реальности (VR) были играми AR/VR. Еще 27,9% проектов касались создания виртуальных миров, в том числе для игр.

Диаграмма, показывающая типы разработчиков, использующих дополненную/виртуальную реальность
Виды разработки с использованием AR/VR. (Источник изображения: SlashData's Developer Nation)

9. Разработчик операционных систем

В то время как тысячи разработчиков работают над самыми популярными операционными системами — внося свой вклад в Linux или работая в Microsoft, Apple или Google — это по-прежнему эксклюзивная группа. В конце концов, SlashData утверждает, что, согласно его опросам, общая численность разработчиков во всем мире составляет более 24 миллионов человек.

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

Ядром большинства операционных систем является ядро, которое управляет доступом к ЦП, памяти, файловым системам и устройствам ввода-вывода. C является основным языком программирования для ядер Microsoft Windows, Apple macOS и Linux. Также используется некоторый низкоуровневый код, написанный на ассемблере.

А ядро ​​Android развилось из ядра Linux.

Помимо ядра, операционная система имеет драйверы для управления различными аппаратными устройствами и приложениями для обслуживания системы. А еще есть графический пользовательский интерфейс системы. Для этих компонентов разработчики могут использовать C, C++, Objective C (macOS) и даже Python (Linux).

10. Инженер DevOps

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

«DevOps» — это сочетание слов «разработка» и «эксплуатация», и специалисты-практики автоматизируют повторяющиеся задачи разработки программного обеспечения — от управления кодом до тестирования, развертывания, мониторинга, обслуживания и устранения неполадок.

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

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

DevOps требует продвинутых навыков, и зарплата инженера DevOps обычно отражает это.

11. Разработчик безопасности (SecDevOps)

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

В разработке программного обеспечения безопасность часто является компонентом процесса DevOps. Кого-то, кто занимается безопасностью в этой среде, можно назвать инженером SecDevOps.

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

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

Каким разработчиком вы хотите быть?

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

Возможно, вам будет интересно узнать, что нужно, чтобы стать разработчиком Laravel, или сосредоточиться на изучении WordPress, самой популярной в мире CMS.

Тогда, возможно, когда-нибудь вы присоединитесь к нам и сделаете карьеру в Kinsta.

Вы когда-нибудь задумывались, чем на самом деле занимаются разработчики? (Подсказка: их много и они разные!) Узнайте больше в этом руководстве Нажмите, чтобы твитнуть

Резюме

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

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

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