Веб-разработка: учимся решать задачи для поступления в Эльбрус Буткемп

Веб-разработка: учимся решать задачи для поступления в Эльбрус Буткемп

Сможете ли вы пройти техническое интервью для поступления в Эльбрус Буткемп на направление веб-разработки? Попробуйте свои силы прямо сейчас!

Для поступления в буткемп на любое направление необходимо пройти вступительное испытание. Будущим веб-разработчикам предстоит одолеть техническое интервью с выпускником буткемпа, куратором или ментором. Интервью состоит из:

  • 1 технического вопроса из базовой темы: типы данных, циклы, массивы, функции и переменные
  • Решения 3 практических задач в формате life-coding на языке JavaScript: во время решения задач вам будут задавать вопросы о том, в чем логика вашего кода.
Что вам понадобится? Встреча проходит в Zoom или Google Meet (скачайте понравившееся приложение и загрузить его себе на ПК). Для написания кода чаще всего используют VSCode. Приложение должно быть установлено на ваш ПК заранее. В случае использования веб-версии мы также рекомендуем пройти регистрацию до начала интервью. В процессе решения задач вам будет нужно включить демонстрацию экрана в Zoom, чтобы экзаменатор мог задавать вопросы, пока он будет наблюдать за вашей работой.

* Все необходимые навыки и знания для прохождения технического интервью вы можете получить на нашем курсе Основы JavaScript.

Внимание! До 4 августа 2024 года у нас проходит конкурс на грант в 100 тысяч рублей на обучение в Эльбрус Буткемп. Что надо сделать, чтобы его получить, читайте здесь. А о победителях прошлого года читайте тут.

В этой статье мы собрали 3 задачи, похожие на те, что вам придется решать на техническом интервью. Предлагаем вам проверить ваши силы прямо сейчас ↓

Задача №1

Напишите функцию, которая выведет в консоль чётные числа от 10 до 0, а потом выведет любое сообщение, переданное аргументом. Наш аргумент будет «Поехали!».

Решение задачи №1

* Пропустите этот пункт, если хотите попробовать решить задачу самостоятельно, и вернитесь к нему после решения.

  • ШАГ 1: Создайте функцию printNumbersAndMessage, которая принимает один аргумент message.
function printNumbersAndMessage(message) {
    // Здесь будет тело функции
}
  • ШАГ 2: Внутри функции напишите цикл for, который идет от 10 до 0 (включая 0).
function printNumbersAndMessage(message) {
    for (let i = 10; i >= 0; i--) {
        // Здесь будет условие
    }
}
  • ШАГ 3: Внутри цикла проверьте, является ли текущее число i четным, используя оператор % (остаток от деления на 2). Если число четное, то выведите его в консоль с помощью console.log(i).
function printNumbersAndMessage(message) {
    for (let i = 10; i >= 0; i--) {
        if (i % 2 === 0) {
            console.log(i);
        }
    }
}
  • ШАГ 4: После цикла выведите сообщение, переданное в качестве аргумента функции, снова с помощью console.log(message).
function printNumbersAndMessage(message) {
    for (let i = 10; i >= 0; i--) {
        if (i % 2 === 0) {
            console.log(i);
        }
    }

    console.log(message);
}
  • ШАГ 5: Затем вызовите функцию printNumbersAndMessage с аргументом «Поехали!».
function printNumbersAndMessage(message) {
    for (let i = 10; i >= 0; i--) {
        if (i % 2 === 0) {
            console.log(i);
        }
    }

    console.log(message);
}

printNumbersAndMessage("Поехали!");
  • Шаг 6: Проверьте результат работы функции в консоли.
10
8
6
4
2
0
Поехали!

Практическая польза задания

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

Задача №2

Напишите функцию, которая принимает массив чисел и возвращает их сумму. Если массив не передан или пуст, функция должна вывести в консоль  текст «Введите массив чисел». Например, если массив чисел состоит из 8, 1, 5, 2, то функция выведет сумму 16.

Решение  задачи №2

  • ШАГ 1: Для начала создайте функцию на JavaScript и назовите ее, например, calculateSum. Функция должна принимать один аргумент — массив чисел. Используйте синтаксис стрелочной функции для определения функции (можно использовать и обычную функцию, которая пишется через function).
const calculateSum = (numbers) => {
    // Здесь будет тело функции
}
  • ШАГ 2: Далее внутри функции calculateSum проверьте, был ли передан массив чисел и не пуст ли он.
const calculateSum = (numbers) => {
    if (!numbers || numbers.length === 0) {
        // Здесь будет действие, которое выполнится если массив не передан или пуст
    }
}
  • ШАГ 3: Если массив не был передан или он пуст, то наша функция должна вывести в консоль сообщение: «Введите массив чисел».
const calculateSum = (numbers) => {
    if (!numbers || numbers.length === 0) {
        return "Введите массив чисел";
    }
}
  • ШАГ 4: Если же массив чисел передан и не пуст, то мы будем вычислять сумму всех чисел в массиве с помощью метода forEach. Этот метод перебирает каждый элемент и добавляет его значение к заранее подготовленной переменной sum. Пример 8 + 1 + 5 + 2 по итогу превратится в 16.
const calculateSum = (numbers) => {
    if (!numbers || numbers.length === 0) {
        return "Введите массив чисел";
    }

    let sum = 0;
    numbers.forEach((number) => {
        sum += number;
    });

    return sum;
}
  • Шаг 5: Вызовите функцию, передав в нее массив чисел и посмотрите на результат.
const result = calculateSum([8,1,5,2]);
console.log(result); 
// Выведет 16
  • Шаг 6: Проделайте последний шаг, только передайте пустой массив, или вообще оставьте скобки пустыми.
// Передайте пустой массив
const result2 = calculateSum([]);
console.log(result2)
// Вы получите сообщение: Введите массив чисел

// Оставьте скобки пустыми
const result3 = calculateSum();
console.log(result3)
// Вы получите сообщение: Введите массив чисел

Практическая польза задания

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

Задача №3

Напиши функцию, которая ищет иголку в стоге сена. Функция принимает массив строк и при нахождении строки «иголка» возвращает сообщение: «иголка найдена, <индекс иголки>», например:

[«сено», «ещё сено», «иголка»] → «иголка найдена, 2»
[«соседская собака», «иголка», «сено»] → «иголка найдена, 1»

Решение задачи №3

  • ШАГ 1: Для начала создайте функцию, которая будет искать иголку в массиве строк. Назовите её findNeedle. Функция findNeedle должна принимать два аргумента — массив строк и искомый аргумент (в нашем случае это «иголка»).
const findNeedle = (haystack, searchElement) => {
  // Здесь будет тело функции
}
  • ШАГ 2: Затем удобнее будет использовать метод массива findindex(), который позволит вам найти индекс элемента в массиве. В функции пройдите по каждой строке массива и проверьте, содержит ли она подстроку «иголка».
const findNeedle = (haystack, searchElement) => {
    const index = haystack.findIndex((str) => str === searchElement);
}
  • ШАГ 3: Если строка содержит подстроку «иголка», то выведите в консоль сообщение «иголка найдена, » + индекс этой строки. Индекс считается с нуля.
const findNeedle = (haystack, searchElement) => {
    const index = haystack.findIndex((str) => str === searchElement);

    if (index !== -1) {
        return `Иголка найдена, её индекс: ${index}`;
    } 
}
  • ШАГ 4: Если иголка не найдена во всем массиве, то верните сообщение: «Иголка не найдена».
const findNeedle = (haystack, searchElement) => {
    const index = haystack.findIndex((str) => str === searchElement);

    if (index !== -1) {
        return `Иголка найдена, её индекс: ${index}`;
    } else {
        return "Иголка не найдена";
    }
}
  • Шаг 5: Проверьте работу функции.
// Передайте в функцию массив, в котором нет слова "иголка"
const haystack1 = ["сено", "ещё сено", "больше сена"];
const result1 = findNeedle(haystack1, "иголка");
console.log(result1); 
// Вы получите сообщение в консоли: «Иголка не найдена»

// Передайте в функцию массив, в котором есть слово "иголка"
const haystack2 = ["соседская собака", "иголка", "сено"];
const result2 = findNeedle(haystack2, "иголка");
console.log(result2); 
// Вы получите сообщение в консоли: «Иголка найдена,её индекс: 1»

Практическая польза задания

Знание методов поиска информации в массиве необходимо любому разработчику. Поиск нужных данных — регулярная задача программиста.

* О том, как подготовиться к поступлению в буткемп на направление веб-разработка, читайте тут. А попрактиковаться в решении JavaScript-задач можно в нашем бесплатном тренажере.

Софья Пирогова

Софья Пирогова

Главный редактор / Автор статей
Александра Боченкова

Александра Боченкова

Автор статей / Копирайтер