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

Фронтенд зараз є найбільш конкуретним напрямом на українському 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)

Похожие статьи:
На зустрічі поговоримо про те, як ІТ рішення на базі відкритих даних можуть допомогти підвищити прозорість роботи органів влади,...
У зв’язку з повномасштабним вторгненням росії з 24 лютого в Україні діє воєнний стан, а Указом Президента № 69/2022 оголошено...
Компьютерное программирование — это то, что можно изучить только путем практики. Чтобы хорошо и быстро изучить язык...
Projector Institute, Prometheus та ВУМ (Відкритий університет Майдану) в рамках грантової програми INCO Academy «Work in Tech» за підтримки...
Сьогодні Нацбанк оприлюднив інформацію щодо експорту ІТ-послуг з України. Відповідно до оновлених даних,...
Яндекс.Метрика