• Ответ на викторину

    В какой среде программирования нужно программировать роботов thefirsttool?

    👍 Beep toolkit (IDE Soft Controller)
    💯 Arduino IDE
    🔥 Python + OpenCV
    ✅ Thefirsttool — не программируется, это конструктор

    Beep toolkit (IDE Soft Controller) — правильный ответ

    The First Tool (thefirsttool) — это не робот, а «библиотека деталей» (parts library), созданная компанией Shenzhen Zhouyu Intelligent Technology . Это набор конструктора для робототехнических соревнований (совместим с goBilda, Tetrix, REV, FTC, FRC), а не готовая роботизированная система .
    Эксперты на Хабре прямо указывают, что «thefirsttool — не роботы»  и предлагают использовать для управления их компонентами Beep toolkit (IDE Soft Controller) .

  • Ответ на викторину

    Что выведет этот код?

    console.log(1);
    setTimeout(() => console.log(2), 0);
    Promise.resolve()
    .then(() => {
    console.log(3);
    return Promise.resolve();
    })
    .then(() => {
    console.log(4);
    });
    async function run() {
    console.log(5);
    await null;
    console.log(6);
    }
    run();
    console.log(7);

    Правильный ответ: 1 5 7 3 4 6 2

    да, тут есть подвох — два варианта выглядят одинаково, но это проверка внимательности, многие начинают сомневаться и менять ответ

    Где тут мясо:
    await null → это сразу microtask, как Promise.resolve()
    первый .then → кладёт следующий .then тоже в microtask queue
    порядок микротасок сохраняется по очереди добавления
    setTimeout → всегда в конце (macrotask)

    Короткий разбор:
    1 → sync
    5 → sync (внутри async)
    7 → sync
    3 → первый then
    4 → второй then
    6 → после await
    2 → setTimeout

  • Ответ на викторину

    Что выведет этот код?
    async function test() {
    console.log(1);
    setTimeout(() => console.log(2), 0);
    await Promise.resolve();
    console.log(3);
    }
    test();
    console.log(4);

    Правильный ответ: 1 4 3 2

    Где ломаются:
    await не «останавливает мир», он отдаёт управление event loop
    Promise.resolve() уходит в microtask queue
    setTimeout — это macrotask, он выполнится позже

    Разбор по шагам (для поста-ответа):
    1 — синхронно
    setTimeout планируется
    await отдаёт управление
    4 — синхронный код вне функции
    3 — microtask после await
    2 — macrotask из setTimeout

  • Ответ на вопрос

    Ты на собеседовании. Что выведет этот код?

    for (var i = 0; i < 3; i++) { setTimeout(() => {
    console.log(i);
    }, 100);
    }

    В чём может быть ошибка:
    var имеет function scope, а не block scope.
    К моменту выполнения setTimeout цикл уже завершился, и i = 3.

    Правильный ответ: 3 3 3

  • Что выведет этот код?

    def add_item(item, items=[]):
    items.append(item)
    return items

    print(add_item(1))
    print(add_item(2))

    В чём подвох:
    Mutable default argument.
    Список items=[] создаётся один раз, а не при каждом вызове функции.
    Поэтому второй вызов использует тот же самый список.
    И ответом будет [1] и [1, 2]

  • ➡️ Винчестер

    Происхождение термина «винчестер» для HDD связано с моделью IBM 3340 и её неофициальным обозначением «30-30», отсылавшим к винтовке Winchester. Прозвище закрепилось, вышло за пределы конкретного устройства и в русскоязычной среде стало общим названием для жёстких дисков. Это яркий пример того, как профессиональный жаргон пережил породившую его технологию.