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

Конечно, любой рекрутер, который брал интервью у нескольких разработчиков программного обеспечения, знает, что у каждой технологии или языка есть свой секретный словарь. Даже если вы просто пойдете по библиотекам, к тем, которые вы найдете в Python или C #, добавлено множество Java. Поэтому важно ознакомиться с типами технологий, о которых ваш кандидат должен уметь говорить.

Глоссарии для Java, SQL, JavaScript, Python, Scala и .NET

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

Ява

Знаете ли вы? Мир Java часто меняется, поэтому опыт работы с фреймворком, полученный 5 лет назад, уже не актуален. Имейте это в виду, когда оцениваете навыки Java-кандидата.

Глоссарий Java

Компоненты Java EE

  • Страницы сервера Java (JSP), сервлеты, корпоративные компоненты Java (EJB), JAX-RS, JAX-WS, служба сообщений Java (JMS)

Веб-фреймворки Java

  • Java Server Faces (JSF), Spring MVC, Vaadin/GWT, Wicket, Play

ОРМ

  • Hibernate, Java Persistence API (JPA), EclipseLink, OpenJPA

Инструменты сборки Java

  • Maven, Gradle, Муравей

Контейнеры приложений Java

  • Tomcat, JBoss/Wildfly, Undertow, Jetty, WebLogic, WebSphere

Инструменты тестирования Java

  • JUnit, TestNG, Спок, Мокито, Огурец

Структуры IoC

  • Spring Framework, Guice, CDI

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

SQL

Знаете ли вы? Чтобы стать экспертом по SQL, разработчику требуется особый склад ума и опыт. В то время как базовые задачи могут быть очень легко реализованы всеми (включая непрограммистов, таких как бизнес-аналитики, инженеры по требованиям, менеджеры проектов и т. д.), сложный SQL довольно сложно сделать правильно.

Глоссарий SQL

Декларативное программирование, 4GL

  • SQL — это принципиально другой язык программирования (см. также введение). Тот факт, что он следует парадигме декларативного программирования, важен для рекрутера.

DDL

  • Язык определения данных, подмножество языка SQL, которое используется для определения базы данных.

DML

  • Язык манипулирования данными, подмножество языка SQL, которое используется для манипулирования данными в базе данных. Большинство запросов являются DML

План выполнения

  • Алгоритм, выбранный оптимизатором для данного оператора SQL.

Оптимизатор

  • Механизм, преобразующий оператор SQL в план выполнения. Даже простые операторы имеют десятки возможных правильных планов выполнения. База данных может поддерживать несколько планов на оператор.

Оптимизатор на основе затрат (CBO)

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

Оптимизатор на основе правил

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

Присоединиться

  • Одна из самых фундаментальных операций в реляционной алгебре, которая помогает «объединять» / «соединять» две таблицы базы данных, например книги и авторов, для получения результатов.

PL/SQL, T-SQL, pgplsql и т. д.

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

Нормализация

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

Реляционная база данных (реляционная модель, реляционная алгебра и т. д.)

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

Е.Ф. Кодд

  • Дополнительные базовые знания: Кодд внес наибольший вклад в реляционную алгебру и многое другое.

Чтобы узнать больше о том, какой опыт важен для разработчика SQL, ознакомьтесь с Как проверить навыки разработчика SQL, чтобы найти лучших — руководство по подбору ИТ-специалистов.

JavaScript

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

Глоссарий JavaScript

Версии JavaScript

  • EcmaScript 5 (ES5 — доступен везде), EcmaScript 6 (ES6 — доступен в новейших браузерах), EcmaScript 2016 (ES7)

Фреймворки и библиотеки JavaScript

  • Angular.js, jQuery, React, Backbone, Ember, Vue.js, Polymer, Aurelia, Knockout, Rx.js

Фреймворки JavaScript для Node.js

  • Express.js, Hapi.js, Коа, Паруса, Метеор

Менеджеры пакетов Node.js

  • НПМ, Бауэр, JSPM

Средства запуска задач и инструменты сборки на основе Node.js

  • Gulp, Grunt, Broccoli, Webpack

Средства тестирования JavaScript

  • Каспер, Мокко, Жасмин, Шутка, Карма

Транспилеры JavaScript

  • Трейсер, Бабель

Структуры гибридных мобильных приложений

  • Sencha Touch, Ionic, Apache Cordova, IntelXDK

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

  • TypeScript, CoffeScript, Elm, Дарт

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

Питон

Знаете ли вы? Поскольку у Python есть множество применений, часто бывает трудно отличить кандидатов от ученых, от сетевого программирования и веб-приложений до простых сценариев. Тем не менее, разработчику часто проще выучить новый Python, чем сменить предметную область (например, с науки о данных на веб-приложения).

Глоссарий Python

Язык Python

  • Популярная версия 2.6, 2.7, 3.4, 3.5

Веб-фреймворки Python

  • Джанго, Фляга, Бутылка, Торнадо, web2py

ОРМ

  • SQLAlchemy, Django ORM

Инструменты сборки

  • Инструменты настройки, pip, tox

Средства тестирования

  • UnitTest, py.test, нос

Асинхронный

  • Python 3.5, Торнадо, Витой

Инструменты анализа данных

  • NumPy, SciPy, панды

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

Скала

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

Глоссарий Скала

Фреймворки и библиотеки Scala

Внутренняя часть

  • Акка, Финагл

Большие данные

  • Искра, Ожог

Интернет

  • Играть, Лифт, Скалатра

Утилиты

  • Скалаз, Кошки

Инструменты тестирования Scala

*ScalaTest, Спецификации2

Инструменты сборки Scala

  • sbt (Простой инструмент сборки)

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

.СЕТЬ

Знаете ли вы? .NET был ответом Microsoft на быстрый рост платформы Java, и поэтому многие концепции (начиная с синтаксиса языков и включая идею выполнения программ на виртуальной машине) этих двух похожий. Платформа .NET поддерживает множество языков, таких как C#, Visual Basic .NET, F#, C++ .NET.

. NET Глоссарий

Версии платформы .NET

  • .NET 1.0 — .NET 4.5.

Языки

  • C#, Visual Basic .NET, F#, C++ .NET

Веб-фреймворки

  • ASP.NET MVC 1–6, ASP.NET Web Api, ASP.NET Web Forms (старая школа)

Настольные платформы

  • WPF, Windows Forms (старая школа)

Коммуникационные платформы*

  • WCF, ASP.NET Web Api, веб-службы (старая школа)

Контейнеры IoC

Castle Windsor Container, Unity, Структурная карта, Ninject, AutoFac

ОРМ

  • Entity Framework, нхибернате, Linq2SQL, ADO.NET

Средства модульного тестирования C#

  • nUnit, SpecFlow, MSTest, xUnit

Инструменты сборки C#

  • TFS, Team City, Jenkins, круиз-контроль .NET

*используется для обмена данными и создания сервис-ориентированных приложений.

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

Следующий шаг

Конечно, все эти глоссарии хороши только в том случае, если вы можете проверить навыки своего кандидата. Лучший способ сделать это с помощью Devskiller. Методология Devskiller RealLifeTesting™ проверяет навыки разработчика, используя те же задачи, над которыми он будет работать в первый рабочий день. "Попробуй сам.