Тестові завдання для фронтенд-розробників: приклади з українських компаній

Фронтенд зараз є найбільш конкуретним напрямом на українському IT-ринку: за даними DOU, на одну позицію претендує в середньому 100 кандидатів. При цьому кількість вакансій тримається на рівні 200-250 на місяць (тоді як у 2021 році йшлося про тисячу).

Одна з можливостей проявити себе і продемонструвати експертизу роботодавцю — це виконання тестового. Тож редакція DOU поспілкувалася з українськими компаніями, які наймають Front-end спеціалістів, і отримала приклади реальних тестових завдань для різних рівнів. А також розпитала, на що роботодавці звертають увагу, оцінюючи виконані проєкти, і якими бувають причини відмов.

Приклади тестових завдань

ZONE3000

У нашому проєкті тестові завдання стосуються насамперед TypeScript. Оскільки ми розробляємо бібліотеки компонентів, важливо, щоб людина вміла експресивно описати API.

Кандидат має описати тип для пропсів компонента. Якщо variant = uncontrolled, то onChange — обов’язкова пропсу, а value — заборонена. І навпаки, якщо variant = controlled, то value — обов’язкова, а onChange — заборонена. Користувач компонента повинен розуміти, що якщо він передав variant = controlled, то він має передати value, а не onChange, і отримати відповідну помилку на це.

import * as React from "react";
// Describe props for this component
type Controlled = {
  variant: 'controlled';
  onChange: () => void;
};

type Uncontrolled = {
  variant: 'uncontrolled';
  value: string;
};

type Props = Controlled | Uncontrolled;
export const Textfield = (props: Props) => {
  if (props.variant === "controlled") {
    return <input type="text" onChange={props.onChange} />;
  }
  if (props.variant === "uncontrolled") {
    return <input type="text" value={props.value} />;
  }
};

У компонента React вже прописана невелика логіка. Ми звертаємо увагу на те, чи зможе людина скористатися підказками, які закладені в самому завданні. Більшість кандидатів з наскоку не можуть виконати це завдання. Залежно від того, які передаються властивості, типи змінюються. Зазвичай типи й компоненти простіші, але у нас таких ситуацій багато.

Ми дозволяємо кандидатам скористатися гуглом, але потрібно дати доступ до екрана. Дивлячись на те, як спеціаліст гуглить, ми розуміємо, як він мислить.

Більшість фронтенд-розробників уже працювали з TypeScript, і наша мета не в тому, щоб перевірити знання мови програмування, а побачити, як кандидат розв’язує задачі, з якими він, найімовірніше, не стикався раніше. Одного разу ми співбесідували спеціаліста з багатьма роками досвіду. Він не знав, як розв’язати задачу, і ми дозволили йому погуглити. Утім він дуже швидко здався. На цьому інтерв’ю закінчилося.

На нашому проєкті задачі такі, що потрібна наполегливість у пошуку рішень. Ми не шукаємо рокстарів і розуміємо, що мало хто працював з бібліотекою 40 годин на тиждень. Але нам важливо, щоб людина підсилювала команду, а не навпаки.

Genesis (HOLYWATER)

Похожие статьи:
Время от времени я читаю лекции технической тематики. В этой статье хочу рассказать, зачем я это делаю и зачем это может понадобиться...
Тарас Кльоба — Big Data Engineering Manager у SoftServe і співзасновник спільноти PostgreSQL Ukraine. Свого часу він облишив роботу в IT-департаментах банків...
Технологія React Native, розроблена Facebook, дозволяє писати на JavaScript єдиний код для iOS, Android та Windows. На відміну від Xamarin, де в єдиний код...
З 1 квітня електронне оформлення довідок ВЛК та свідоцтв про хворобу стане обов’язковим для всіх комісій. Про це повідомила...
Время: Суббота + Воскресенье, 11:00-14:00Продолжительность: 3 недели (18 часов) 04 июня стартует Интенсивный курс по основам...
Яндекс.Метрика