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

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

Похожие статьи:
Смартфон Samsung Galaxy S7 стал одним из самых «утекших» флагманов в истории компании Samsung, и чем ближе к официальному анонсу, тем больше...
The introduction of a much more family friendly fiesta in 2016 is reaping major rewards for the City Council of Pamplona with data collected from the 2018 event showed yet another year of increases in the number of people involved in the arts...
В Краснодаре совершен первый тестовый звонок с базовой станции 3G+, установленной компанией Ростелеком. Коммерческая эксплуатация...
Цієї осені готуйтесь почути історію успіху людини, яка згуртувала 105 тисяч ІТ-шників з усієї України в одному місці — Макса...
Привет всем! Апрель выдался чрезвычайно продуктивным для Ruby-сообщества. Начнем с того, что были официально представлены...
Яндекс.Метрика