Руководство по поиску IT персонала по навыкам и ролям разработчиков
Цифровая трансформация уже не «в ближайшем будущем». Это происходит прямо сейчас. Вот интересная статистика о цифровой трансформации.
Российские организации инвестируют в цифровую трансформацию от 3 до 10% от годовой выручки. Лидирующие отрасли ― ритейл (69%), банки и страхование (65%), телекоммуникации и связь (60%).
Среди ключевых ит направлений, которые российские компании уже активно используют, ― Data Analytics (34%), екоммерс (28%) и роботизация процессов (RPA) с 24%. И в результате ускорения цифровой трансформации каждая компания превратилась в технологическую компанию. Чтобы иметь правильную технологию, вам нужны профессиональные ит специалисты.
Мы составили список / руководство по поиску наиболее востребованных навыков разработчиков, разбили их по уровням (базовый, средний, продвинутый) и поделились определениями ролей и квалификации востребованных разработчиков.
Полный список навыков разработчика
1. .NET
.NET Core — это кроссплатформенная среда с открытым исходным кодом. Приложения .NET Core можно создавать с использованием нескольких языков программирования.
Базовый: Базовый уровень .NET требует понимания классов .NET, средств ввода и вывода, преобразования данных и реализации простых служб REST API.
Средний: .NET Intermediate Skill Level включает настройку доступа к данным, изучение .NET Core и Framework, общеязыковой инфраструктуры, сборок и разработку локализованных приложений.
Продвинутый: .NET Advanced Skill Level включает понимание асинхронного и параллельного программирования, изучение рекомендаций по безопасности .NET и управление памятью.
2. Angular.js
Angular — это фреймворк, который работает с Typescript или JavaScript для отображения динамического содержимого страницы.
Базовый: Базовый уровень навыков включает понимание использования компонентов, TypeScript в Angular, MVC Framework, двусторонней привязки и проверки формы.
Промежуточный: средний уровень навыков включает использование маршрутизации, NgModules, Observables для передачи данных и обработки событий, внедрения зависимостей и API-интерфейсов для передачи данных по HTTP / S.
Продвинутый: Уровень Advanced Skill включает понимание шаблонов проектирования, спецификаций требований, модульного тестирования и отладки консоли браузера.
3. Ansible
Ansible Playbooks используются для настройки приложений, серверов, больших сетей и систем. С помощью Ansible Playbooks и модулей автоматизация таких задач, как непрерывные обновления, становится простой.
Базовый: базовый уровень навыков включает настройку учебника, управление задачами, игровое поведение и выполнение простых задач автоматизации bash.
Средний: средний уровень навыков включает настройку приложений и систем с использованием REST API приложений и возможность тестирования кода Ansible.
Продвинутый: уровень Advanced Skill включает расширенную автоматизацию, включая безопасность и облако.
4. Apache Kafka
Apache Kafka делает возможным крупномасштабное перемещение данных с высокой надежностью. Эта ключевая компетенция включает в себя понимание архитектуры Apache Kafka, кластеров Kafka, систем обмена сообщениями Kafka, понимание разделов и брокеров Apache Kafka, а также производителей и потребителей Kafka.
5. Apache Spark
Apache Spark — это программная среда с открытым исходным кодом, построенная на основе платформы распределенной обработки Hadoop.
Базовый: эта область компетенции включает в себя, среди прочего, установку Spark в автономном режиме, выполнение команд в интерактивной оболочке Spark, чтение и запись данных с использованием фреймов данных, преобразование данных и запуск Spark в облаке.
Средний: Эта область компетенции включает в себя объединение и анализ данных, выполнение агрегирования данных, настройку источников и приемников данных, выполнение настройки, мониторинг заданий Spark, выполнение преобразований и выполнение SQL-запросов к потоковым данным, среди прочего.
Дополнительно: эта область компетенции включает в себя установку Spark в автономном режиме, выполнение команд в интерактивной оболочке Spark, чтение и запись данных с использованием фреймов данных, преобразование данных и запуск Spark в облаке, среди прочего.
6. AWS
Amazon Web Services (AWS) — это платформа, которая предлагает несколько сервисов облачных вычислений из центров обработки данных по всему миру.
Базовый: базовый уровень навыков включает запуск безопасных инстансов Amazon EC2 с политикой автоматического масштабирования, настройку корзины Amazon S3 для статического хостинга веб-сайтов, развертывание бессерверного приложения, обеспечение безопасности корзины Amazon S3 и многое другое.
Промежуточный: AWS Intermediate Skill Level включает создание облачных уведомлений с использованием SNS, развертывание приложения с использованием Elastic Beanstalk, понимание распределения CloudFront для контента, хранящегося в Amazon S3, создание предупреждений мониторинга CloudWatch, изучение DynamoDB, среди прочего.
Продвинутый: AWS Advanced Skill Level включает анализ данных в S3 с помощью Athena, использование AWS CLI для управления ресурсами, миграции данных, автоматизации развертывания кода и т. Д.
7. Bash
Bash или Bourne-Again SHell — это интерпретатор команд и язык сценариев, широко используемый по умолчанию в операционных системах на базе Linux.
Базовый: основные компетенции включают теоретические основы Bash, общие команды, переменные и операторы, условные операторы и операторы цикла, операции ввода-вывода и умение создавать базовые сценарии Bash.
Средний: основные компетенции включают расширенные команды, использование регулярных выражений, понимание и использование конвейеров, обработку файлов, ловушку и сигналы в bash, функции и использование аргументов командной строки.
Продвинутый: основные компетенции включают обработку ошибок, асинхронные команды, умение создавать инструменты командной строки и использование / dev / null.
8. C #
C # — это объектно-ориентированный язык программирования общего назначения, разработанный для Common Language Infrastructure (CLI) и широко известный своими возможностями структурирования, строгой типизации и лексической области видимости.
Базовый: Базовый уровень навыков включает понимание структуры программ C #, типов и переменных, базового ООП, свойств и индексаторов, коллекций, обработки исключений и прочего.
Промежуточный: средний уровень навыков включает понимание общей системы, использование анонимных методов, замыканий и лямбда-синтаксиса, языковой интегрированный запрос (LINQ), управление ресурсами и использование динамических типов, среди прочего.
Продвинутый: Уровень продвинутых навыков включает понимание асинхронного программирования, отражения, небезопасного кода и деревьев выражений.
9. Качество кода
Когда несколько разработчиков работают над одной и той же кодовой базой, важно следовать лучшим практикам, чтобы не допустить фиксации непреднамеренных шаблонов и синтаксических ошибок. Область компетенции включает понимание преимуществ написания модульного, многоразового, поддерживаемого и безопасного кода.
10. CSS
Каскадные таблицы стилей (CSS) в основном используются для включения стилей текста, таблиц и форматирования макета веб-страниц. Сферы компетенции включают изучение каскадирования и наследования, изучение основ стилей текста, понимание использования макетов в CSS, понимание упаковки элементов в CSS и многое другое.
11. Моделирование данных
Моделирование данных включает в себя различные методы моделирования данных для хранения в базах данных. Уровень базовых навыков включает в себя оценку вероятностей с использованием байесовского моделирования, понимание линейной регрессии, логистической регрессии и прогнозирование меток, чтобы назвать несколько.
12. Визуализация данных
Визуализация данных — ключевой аспект анализа данных, позволяющий исследовать и понимать данные. Базовый уровень навыков включает в себя создание визуализаций данных, отображение базовой частоты данных, отображение тенденций данных и использование тепловых карт, среди прочего.
13. Data Wrangling
Data Wrangling включает в себя сбор, выбор и преобразование данных, чтобы сделать их подходящими для аналитики и машинного обучения. Он также включает в себя очистку данных, вменение, обобщение, агрегирование, нормализацию. Базовый уровень квалификации включает в себя обнаружение выбросов / аномалий, очистку данных, преобразование категориальных данных в числовые, группировку данных на основе значений и объединение данных, среди прочего.
14. Django
Django — это фреймворк для веб-приложений с открытым исходным кодом, основанный на Python, со множеством встроенных функций, которые можно использовать для простой и быстрой разработки приложений.
Базовый: базовый уровень навыков включает понимание ключевых понятий, таких как модели, представления, шаблоны и конфигурация URL-адресов, среди прочего.
Средний: средний уровень навыков включает в себя возможность реализовать электронную почту для связи и вести журнал, который может использоваться для отладки приложения по мере необходимости.
Продвинутый: область уровня Advanced Skill включает выполнение сложных операций, связанных с базой данных, с использованием моделей Django в сочетании с представлениями на основе классов и использованием соответствующего сопоставления URL-адресов по мере необходимости. Понимание шаблонов, аутентификации и возможности реализации Rest API, настройки Django Admin, среди прочего.
15. Docker
Docker — это платформа, которая упрощает создание, обновление, развертывание и запуск контейнерных приложений.
Базовый: базовый уровень навыков включает создание образов Docker и файлов Docker, создание, развертывание и запуск простых приложений, а также работу с .NET — контейнерами.
Средний: средний уровень навыков включает в себя создание образов, понимание основных команд DevOps для докеров, тегов и меток, а также запуск нескольких служб в контейнере, среди прочего.
Продвинутый: уровень Advanced Skill включает в себя выполнение команд внутри контейнера, обучение извлечению показателей, адаптацию более строгих методов безопасности и работу с томами, среди прочего.
16. GCP
Google Cloud Platform (GCP), предлагаемая Google, представляет собой набор модульных сервисов облачных вычислений, включая вычисления, хранение данных, аналитику данных и машинное обучение, а также набор инструментов управления.
Базовый: эта область компетенции включает в себя развертывание экземпляров Google App Engine, развертывание и управление облачными функциями Google, создание и управление корзинами хранилища Google, среди прочего.
Средний: эта область компетенции включает в себя развертывание приложений Compute Engine, расширенные развертывания App Engine, Google Kubernetes Engine, использование более продвинутых решений для баз данных, использование, среди прочего, решений в стиле оболочки для управления облачными сервисами.
Продвинутый: эта область компетенции включает в себя всестороннее облачное управление идентификацией и доступом, расширенные решения для обработки данных, более продвинутые варианты развертывания, такие услуги, как Pub / Sub, Cloud CDN, балансировку нагрузки облака и другие.
17. Golang
Golang — популярный язык, изобретенный Google в 2007 году. Он статически типизирован и является компилируемым языком программирования. Это общий язык, который используется с технологиями облачных вычислений, инструментами оркестровки контейнеров, такими как Docker и Kubernetes, простыми в создании инструментами CLI, веб-сервисами и популярными инструментами для создания DevOps и инструментов проектирования надежности сайтов.
Базовый: основные компетенции включают изучение базовых языковых функций Golang, простых структур данных, массивов, карт, типов данных и интерфейсов.
Средний уровень: основные компетенции включают работу с функциями, понимание именованных возвращаемых параметров, указателей, обработку файлов и обработку ошибок.
Продвинутый: основные компетенции включают изучение горутин, мьютексов и каналов, взаимодействие с хранилищем, работу с фиктивными объектами и тестирование конечных точек HTTP, среди прочего.
18. Hadoop
Программная среда с открытым исходным кодом Hadoop широко используется для надежных и масштабируемых распределенных вычислений на кластере машин.
Базовый: эта область компетенции включает понимание кластера с одним узлом в автономном режиме, в псевдораспределенном режиме, выполнение команд оболочки для взаимодействия с HDFS, выполнение задач параллельной обработки, среди прочего.
Промежуточный уровень: эта область компетенции включает, среди прочего, реализацию расширенного параллелизма, реализацию счетчиков, выполнение базовых запросов и подзапросов в Hive.
Продвинутый: эта область компетенции включает выполнение операций ETL с использованием Apache Pig, базы данных Apache Cassandra NoSQL, оптимизацию выполнения задач в Hadoop с использованием Tez, среди прочего.
19. HTML / CSS / JS
HTML, CSS и JavaScript являются ключевыми для создания веб-приложений. При создании веб-приложений HTML обеспечивает базовую структуру веб-сайтов, которая улучшается и модифицируется другими технологиями, такими как CSS и JavaScript. CSS используется для управления представлением, форматированием, стилем и макетом. JavaScript используется для управления поведением различных элементов в приложении.
20. Java
Язык программирования высокого уровня, используемый для создания полных приложений, которые могут работать на одном компьютере или распределяться между серверами и клиентами в сети.
Базовый: Базовый уровень навыков включает в себя использование общих языковых функций в Java, иерархий классов, шаблонов проектирования и др.
Средний: средний уровень квалификации включает многопоточность в Java, работу с сетью на Java, а также сбор и сериализацию.
21. JavaScript
Javascript используется в первую очередь для программирования веб-браузера, а также на стороне сервера с Node. Основные области применения включают добавление интерактивного поведения к веб-страницам, создание веб-приложений и мобильных приложений, создание веб-серверов и разработку серверных приложений, разработку игр и т. д.
Базовый: к ключевым компетенциям относятся, среди прочего, функции, события и обработка ошибок, каррирование, подъем, объем, наследование.
Средний уровень: эта ключевая компетенция включает в себя, среди прочего, шаблоны проектирования, управление памятью, модель параллелизма и циклы событий.
22. Jenkins
Jenkins — это бесплатная серверная система автоматизации сборки и тестирования с открытым исходным кодом, написанная на Java. Эта ключевая область компетенции включает настройку сборок проектов, планирование сборок, настройку уведомлений по электронной почте и создание сценариев для правильного резервного копирования и восстановления сервера Jenkins.
23. Kubernetes
Kubernetes (K8s) — это система с открытым исходным кодом для контейнерных приложений. Он позволяет автоматизировать развертывание, масштабирование и управление контейнерами в любом масштабе.
Базовый: эта область компетенции включает установку и настройку Kubernetes, развертывания и кластеры, работу со службами Kubernetes для доступа к развертываниям, создания конфигураций и секретных данных, среди прочего.
Средний: эта область компетенции включает в себя работу с приложениями с отслеживанием состояния, доступ к панели управления Kubernetes, работу с метками, среди прочего.
Дополнительно: эта область компетенции включает в себя работу и доступ к журналам Kubernetes и приложений в кластере, отладку, сетевую политику, настройку производительности и многое другое.
24. Знание языка
Понимание всех правил, функций и механизмов языка программирования, а также оптимизация простоты, точности и модульности в рамках правил языка программирования являются ключом к реализации решений. Эта область компетенции включает определение того, что делает разработчика хорошим знанием того или иного языка программирования.
25. Linux
Linux относится к семейству операционных систем, основанных на ядре Linux с открытым исходным кодом [впервые выпущенном в 1991 году] с интерфейсом, в основном похожим на Unix. Это семейство операционных систем распространяется и специализируется на различных целях, таких как настольные компьютеры, смартфоны, мэйнфреймы, периферийные вычислительные устройства и т. д. Linux был построен исключительно как проект с открытым исходным кодом и сегодня является наиболее широко используемым семейством операционных систем в мире.
Базовый: компетенции включают теоретические основы, основы работы с bash, использование диспетчера пакетов, текстовых редакторов для редактирования файлов и понимание процесса загрузки Linux.
Средний уровень: основные компетенции включают использование и понимание безопасной оболочки (ssh), мониторинг и управление процессами и памятью, файловые системы, а также понимание процесса инициализации и планирования заданий.
Продвинутый: основные компетенции включают понимание диспетчеров рабочего стола и окон, теоретических основ и использования сетевого уровня в Linux, межпроцессного взаимодействия и управления пользователями для администрирования системы Linux.
Определение ролей и квалификация востребованного разработчика
1. Инженер-программист
Кто такой инженер-программист?
Инженер — программиста нанимают для сборки индивидуальных систем и решения для конкретного заказчика. Они обладают обширными знаниями языков программирования, разработки программного обеспечения и компьютерных операционных систем. Они применяют инженерные принципы к проектированию, разработке, обслуживанию, тестированию и оценке компьютерного программного обеспечения.
Каковы основные навыки инженера-программиста?
- Качество кода
- Владение языком
- Решение проблем
- REST API
- SQL
- Техническая коммуникация
Какие общие вопросы собеседования с программистом ?
- Опишите плохой код, который вы читали или унаследовали недавно.
- Когда вы узнаете, что ваш код готов к производству?
2. Front-end разработчик
Кто такй фронтенд разработчик?
Они разрабатывают графические интерфейсы, где пользователи могут просматривать и взаимодействовать с данными. Некоторые распространенные веб-технологии, используемые интерфейсными разработчиками, включают HTML , CSS , DOM и JavaScript, которые работают на открытой веб-платформе или действуют как входные данные компиляции для сред, не относящихся к веб-платформе.
Каковы основные навыки фронтенд разработчика?
- Качество кода
- CSS
- HTML / CSS / JS
- JavaScript
- Решение проблем
- Техническая коммуникация
Какие вопросы можно задать на собеседовании с фронтенд разработчиком ?
- Какие фреймворки вы использовали и каковы преимущества и недостатки каждого из них?
- Каким образом сервер может взаимодействовать с клиентом?
3. Back-end разработчик
Кто такой back-end разработчик?
Он отвечает за логику приложения на стороне веб-сервера и хранения данных. В то время как интерфейсные разработчики сосредотачиваются на пользовательском интерфейсе, бекенд разработчики пишут веб-службы и API, используемые разработчиками интерфейсных и мобильных приложений.
Каковы основные навыки back-end разработчика?
- Качество кода
- Решение проблем
- REST API
- SQL
- Системный дизайн
- Техническая коммуникация
Какие вопросы можно задать на собеседовании с серверным разработчиком ?
- Какой ваш любимый язык программирования и почему?
- В чем разница между приемочным тестированием и функциональным тестированием?
- В чем разница между базами данных SQL и MongoDB на высоком уровне?
- Каковы передовые практики тестирования производительности?
4. Full-stack инженер
Кто такой full-stack инженер?
Инженер полного стека работает как с фронтом, так и с беком веб — сайта или приложения. Они могут заниматься проектами, которые включают базы данных, создавать веб-сайты, ориентированные на пользователя, и работать с клиентами на этапах планирования этого процесса.
Каковы основные навыки инженера полного цикла?
- Качество кода
- CSS
- JavaScript
- Node.js
- Решение проблем
- REST API
- Техническая коммуникация
Каковы некоторые общие вопросы собеседования с инженерами?
- Когда вам представили новый проект, как вы выбрали задействованные инструменты и технологии?
- Что бы вы назвали лучшим опытом внедрения?
- Допустим, вам нужно написать конечную точку для проверки существования ресурса. Какой путь и метод вы бы использовали?
- Какие 5+ способов оптимизировать веб-сайт, чтобы сделать его максимально эффективным и масштабируемым?
- Как бы вы помешали ботам очистить ваш общедоступный API?
5. Data Science
Кто такой Специалист по данным?
Специалисты по обработке данных собирают и анализируют большие наборы структурированных и неструктурированных данных. С помощью информатики, статистики и математики они анализируют, обрабатывают и упаковывают полезные данные для принятия ключевых решений в организациях.
Каковы некоторые фундаментальные навыки специалиста по данным?
- Apache Spark
- Качество кода
- Моделирование данных
- Визуализация данных
- Преодоление данных
- Машинное обучение
- Python
- R
- SQL
- Системный дизайн
- Техническая коммуникация
Какие общие вопросы собеседования к специалистами по данным?
- В чем разница между обучением с учителем и обучением без учителя?
- Что такое машинное обучение?
- Что такое смещение выборки?
- Как поддерживать развернутую модель?
- Как избежать переобучения вашей модели?
- Как вы выполняете логистическую регрессию?
- Допустим, вам предоставлен набор данных, состоящий из переменных с отсутствующими значениями более 30%. Как бы вы с ними справились?
6. Cloud Engineer
Кто такой облачный инженер?
Он коммерциализирует, стандартизирует и управляет облачными вычислениями. Они используют методы и инструменты инженерии для создания, разработки, эксплуатации и обслуживания систем и решений облачных вычислений. Облачные инженеры несут ответственность за использование облачных ресурсов для решения бизнес-задач.
Каковы основные навыки Cloud Engineer?
- Ansible
- AWS
- Качество кода
- Докер
- Kubernetes
- Системный дизайн
- Техническая коммуникация
- Terraform
Какие общие вопросы собеседования с Cloud Engineer?
- Каковы преимущества облачных вычислений?
- Каковы модели облачных сервисов?
- В чем разница между облачными и локальными вычислениями?
Цифровая трансформация связана с талантами, а не с технологиями. Они обращают внимание на важность переподготовки и повышения квалификации персонала, чтобы они лучше приспособились к изменениям.
Источник : itanddigital.ru