JavaRush /Курсы /Карьерный центр /Великий и ужасный LiveCoding

Великий и ужасный LiveCoding

Карьерный центр
3 уровень , 5 лекция
Открыта

Livecoding… Это действо напоминает один из самых жестких видов экзаменов. Из тех, где нужно сходу решить задачу у доски. Да еще и перед незнакомой аудиторией. Или как выступление на сцене с импровизацией. Становится страшно от одной мысли об этом!.. Впрочем, есть люди, которые ловят от этого кайф. Ну а тех, кто не ловят, можно просто научить держать удар. Как и все в этом мире, навык прохождения Livecoding’ов развивается посредством упорных тренировок. Кратко подытожим и немного расширим то, что говорил в видеолекции Андрей Латышев.

Алгоритм прохождения Livecoding’а

Livecoding может быть удаленным (нужно расшарить свой экран) или очным.

Итак, ситуация: вам дают условие задачи, включают компьютер (или CodePen/Sandbox), становятся за спиной и смотрят, как вы дрожащими пальцами начинаете набирать код… Постойте, не спешите его набирать.

1. Остановитесь и осознайте условие

Сначала просто вдумайтесь в условие задачи и попробуйте понять, чего в принципе от вас хотят. Обязательно задайте уточняющие вопросы (граничные случаи, тип входных данных).

2. Подумайте, какое решение будет оптимальным?

Попробуйте придумать разные решения. Оцените сложность (Big O) и выберите наиболее оптимальное. При этом озвучивайте ход своих мыслей.

3. Начинайте программировать!

Когда пишете код, старайтесь, чтобы он был чистым. Используйте понятные имена переменных (`userList` вместо `arr`). Обязательно объясняйте каждую строчку кода.

Полезно:
В JS/TS сообществе стандартом стиля считается Airbnb Style Guide или правила Prettier. Старайтесь следовать им интуитивно (const вместо var, стрелочные функции где уместно).

4. Проверьте решение.

Это гораздо солиднее, чем просто запустить и надеяться на удачу. Прогоните алгоритм в уме на тестовых данных.

Важно!
Не оставляйте в финальном коде десятки console.log(), которые вы использовали для отладки. Это выглядит грязно. Уберите их перед тем, как сказать «Я закончил».

О чем нельзя забывать во время Livecoding’а

  • Говорите вслух! Озвучивайте свои мысли.
  • Если вы не можете придумать переменным адекватные имена, лучше скажите об этом.
  • Всегда думайте о пограничных случаях (пустой массив, null, undefined).

Примеры задач на Livecoding’е

На самом деле их может быть очень много. Обычно это задачи на логику или знание особенностей JavaScript.

  1. Простые задачи.

    Такие задачи часто просят написать в блокноте.

    Примеры:

    
    Проверить, является ли строка палиндромом
    
    Реализовать функцию flatten (развернуть вложенные массивы)
    
    Написать свой Promise.all или Debounce функцию
    
    Задачи на замыкание (что выведет console.log в цикле с setTimeout?)
                

  2. Задачи на онлайн-платформе вроде LeetCode/Codewars. Работа с массивами, строками, хэш-таблицами (Map/Set).
  3. Практические задачи. Например: "Сверстать карточку товара и получить данные с API", "Сделать бесконечный скролл" или "Реализовать ToDo список на React за 20 минут".

Советы

  • Подготовьте окружение (настройте VS Code, установите Node.js) заранее.
  • Пользуйтесь сниппетами (например, `rfce` для создания React-компонента).
  • Подумайте, как вы будете обрабатывать ошибки (try/catch).

Платформы для подготовки

  1. LeetCode (Top Interview Questions)
  2. Codewars
  3. BigFrontEnd.dev (специализированный ресурс для фронтендеров!)

План подготовки

  1. Решайте одну задачу раз в пару дней.
  2. Проговаривайте ход мыслей вслух.
  3. Решайте задачи на JS, не используя готовые методы (например, отсортировать массив без `.sort()`), чтобы понимать алгоритмы.
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ