Проводить техническое обследование разработчика программного обеспечения сложно никому, кроме профильных специалистов. У технических рекрутеров есть такие инструменты, как 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™ проверяет навыки разработчика, используя те же задачи, над которыми он будет работать в первый рабочий день. "Попробуй сам.