pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: В чем разница сейчас между mono, xamarin и .net core?

Лучший ответ: Mono - это кросс-платформенная реализация, включающая runtime CLR и подмножество .NET platform. Включает и поддержку настольных приложений.
Замарин (Xamarin) - это набор инструментов для разработки мобильных приложений. Работает поверх Mono runtime. Xamarin.forms позволяет писать меньше платформно-зависимого кода чем просто Xamarin.
 .NET Core - это кросс-платформенная реализация подмножества .NET platform для разработки бэкэнд сервисов, без необходимости в Mono.

Худший ответ: .net core -- просто рантайм. mono -- свободный форк .net framework. xamarin -- порт рантайма моно на мобилки и макось. Что актуально, а что не очень? 
Все 3 рантайма находятся в актуальном состоянии. С приходом .net 5 вообще рантайм можно будет выбирать по желанию для каждой аппы (относительно, за ксамарин есть вопросики).Какие различия?
Моно эмулирует винформы для линух/мак. Корка имеет винформы/wpf только под винды. Ксамарин вообще о своем.
А, да. По байткоду они пока несовместимы и на каждый надо таргетиться отдельно (однако есть .net standart, хитрый тип сборок, предоставляющий некоторый сабсет общего апи).
Вопрос: Может стоит бросить это дело? Что делать если ты медленнее всех да еще и в возрасте?

Лучший ответ: мне 45 и я ещё не в возрасте.
Я думал, что пишет парень 50-60 лет, а тут школьник 25-летний

Худший ответ: Если это ваш первый опыт программирования, то ничего удивительного. Просто слабая база, которую необходимо подтягивать практикуясь. Теорию вам на курсах дают же? Можете еще книжку какую-нибудь почитать, типа "js для детей" (это не шутка).
Вопрос: Влияет скорость python на веб-программирование?

Лучший ответ: Web-приложение это частный случай сетевого ПО, а у сетевого ПО издержки на ввод/вывод такие, что на их фоне издержки на выполнение незначительны. Проще говоря, если программист не криворукий, то Python не уступает в вопросе web-разработки любому другому языку.

Худший ответ: Python очень медленный язык и не годится для профессиональной деятельности, а только для обучения
Питон крайне быстр и ничем не уступает своим конкурентам, если его уметь "варить".

Так вот, я учу Python + Django для веб-разработки и хотел бы спросить, так ли сильно сказывается на веб-программировании его скорость
Если вы планируете работать в условном "хайлоад", то учите Starlette/Sanic в связке с Vue.js
https://www.starlette.io/
Вопрос: Канал на ютубе или курс, где наиболее полно рассказывается про Ubuntu?

Лучший ответ: А какие курсы ты прошел по Windows?
А ты уверен, что ты умеешь настроить Windows для легкой и комфортной работы?

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

Если же хочешь узнать Линукс наиболее полно - пройди официальные курсы для получения сертификации, типа LPIC. Но не думаю что тебе сейчас нужно именно это.

Худший ответ: Полных уж прям вряд ли, а информативных, с возможностью решать допом возникающие вопросы и проблемы, гляди тут:
Compizomania
Losst
ubuntu.ru
Вопрос: Актуальный стек для начинающего C#?

Лучший ответ: Хочу научиться C#
Вот и учите C#. И не забивайте себе голову какими то сторонними фреймворками - вам для начала с головой хватит дотнета или моно.

Худший ответ: Десктоп? AvaloniaUi? - WPF, Windows.FormsМобильная? Uno? Xamarin.Forms? - Xamarin.Forms, Xamarin.Native(Android/IOS)Веб-сервисы? - Asp.Net Core, Asp.Net, Web.Forms
 AvaloniaUi, Uno - это многообещаюшие, но пока это удел энтузиастов
Вопрос: Как посчитать сколько раз цифра повторяется в числе?

Лучший ответ: Есть варианты:const count1 = [
  num => (('' + num).match(/1/g) || []).length,
  num => num.toString().replace(/[^1]/g, '').length,
  num => `${num}`.split('').filter(d => d - 1 === 0).length,
  num => [...String(num)].reduce((s, d) => s + (d == 1), 0),
];

const numbers = [
  23489,
  -11,
  -93481,
  7211231,
  0,
  123.321,
  Infinity,
  NaN,
];

count1.map(f => numbers.filter(n => f(n) === 2)).forEach(n => console.log(n));

Худший ответ: Можно без регулярных выражений, которые под капотом нелегки, старым добрым  indexOf() в лоб. Костыль только для двух повторов, но, по идее, быстрее регулярок:function haz2ones(str) {
    const s = str.toString();
    const search = '1';

    let i = s.indexOf(search);
    if (!~i) return false;

    i = s.indexOf(search, i + 1);
    if (!i) return false;
    if (!!~s.indexOf(search, i + 1)) return false;
    return true;
  }Тестыconst tests = [
    [1, false],
    [11, true],
    [111, false],
    ['1', false],
    ['11', true],
    ['111', false],
    ['100001', true],
    ['000011', true],
    [12345678901234567890, true],
  ];
  
  return tests.map(e => haz2ones(e[0]) === e[1] ? '+' : '- ' + e[0]);
  // +,+,+,+,+,+,+,+,+
Вопрос: Стоит ли учить DS на отдельном факультете?

Лучший ответ: В одном из интервью с нн прогером он говорил, что только идиот потратит 4 года своей жизни на DS факультет, когда можно самому выучить.
Что вы думаете?
Я думаю, что он идиот.

Худший ответ: Сложный вопрос, т.к. есть множество примеров квалифицированных специалистов вообще без дипломов. Но в наше время, лучше все же что-то иметь в бумажном виде - дипломы, сертификаты и т.п. А учится самостоятельно все равно придется и много...
Вопрос: Идейка для стартапа, какой стек подойдет?

Лучший ответ: Еще один Ульянов-Ленин который думает что коммунизм спасет Мир. Не спасет. Я тебе открою секрет - часто бизнес выигрывает от того что люди не могут промониторить все цены в городе на одном сайте. Феде не нужно чтобы бабульки знали что картошка у Васи дешевле на 3 рубля, потому что бабульки поедут к Васе, даже через весь город, а не купят у Феди в шаговой доступности. Для людей + способ найти товар дешевле, ближе к дому или более уникальный. - Плюс для людей и огромный минус для коммерсанта. 
Пойми, когда ты делаешь хорошо одной стороне, второй стороне как правило становится плохо (приходится терять клиентов, платить комиссии и т.д.). Поэтому в коммерции социал-коммунизм невозможен.
Я как-то скачал Едадил, а потом удалил, потому что мне на самом деле пофиг на скидки, если я могу купить подороже но у дома, чем что-то там мониторить, отслеживать и в целом заморачиваться. Иногда комфорт стоит лишних потраченных денег.

Худший ответ: Под RoR и зенд будете долго (дороже) искать разрабов
Идея сама по себе ничего не скажет о том взлетит или нет
Идея в процессе внедрения меняется
Иногда меняется полностью и перелазит в другую область
Вам нужно уловить потребность клиента, возможность ее удовлетворения и целесообразность ниши
Те вам нужен прямой контакт с владельцем магазина, продавцами/менеджерами магазинов и местными потребителями для сбора идей
В текущей постановке основные проблемы
- нормализация и стандартизация ассортимента
- распознавание лейблов
Все останое - ерунда и делается в пол-пинка
Ну и самая убийственная проблема - как вам найти первую тысячу (10к) пользователей
Вопрос: Учить SQLite или сразу перейти к изучению ROOM?

Лучший ответ: SQLite - это одна из самых простых БД. Вам конечно никто не запрещает не учить SQLite(SQL), только учтите, что всякие надстройки над БД - это путь в никуда. Если вы хотите изучать разработку под Android и потом устроится на работу, и вам зададут вопрос - "Есть ли у Вас опыт работы с БД" - вы ответите, что есть опыт работы с надстройкой - вас просто пошлют нах...!

Худший ответ: Стоит ли учить SQLite или можно сразу переходить к ROOM?
Сразу Room, Sqlite это уровень ниже, слишком много лишнего кода.

Можно ROOM освоить "с нуля", без знаний SQL?
Ну, нет.
Вопрос: Свой веб-сервер на Python?

Лучший ответ: Не слушай тех, кто скажет, что ты страдаешь фигнёй!
Да, асинхронно - это точно.
Мультипоточно, но не мультипроцессово!

1. Обязательно не забудь создать и там, и там настраиваемую очередь приоритетов обработки запросов под конкретные "маски" по заголовкам и т.д.
2. Предусмотри заранее шардирование архитектуры вширину и "вглубь".
3. Не забудь: сжатие контента gzip, авторизацию разными типами и OpenSSL.

Худший ответ: Рекомендую вам следующую книгу "TWISTED ИЗ ПЕРВЫХ РУК"
https://dmkpress.com/catalog/computer/programming/...
Событийность, асинхронность и т.д. в вашем контексте.
Вопрос: Вопрос про LocalStorage, почему?

Лучший ответ: Не актуально =)В setCartData не передаете данные (Параметр "O")

Вы упустили перед записью получение уже записанных данных и добавление их в массив, таким образом вы просто записываете новую информацию по верх старой.

я понял - он же данные не видит после обновления а конечно как если он не получает, их поэтому и пишет заново.
@Вячеслав Коростин

Худший ответ: Не актуально =)В setCartData не передаете данные (Параметр "O")

Вы упустили перед записью получение уже записанных данных и добавление их в массив, таким образом вы просто записываете новую информацию по верх старой.

я понял - он же данные не видит после обновления а конечно как если он не получает, их поэтому и пишет заново.
@Вячеслав Коростин
Вопрос: Как ограничить доступ к исходникам разработчкам?

Лучший ответ: Или это вообще невозможно? Возможно. Зависимость проста и понятна: чем меньше разработчик знает о разрабатываемом продукте, тем хуже результат его работы. Для лучшего понимания проблемы почитайте где-нибудь, чем кодер отличается от программиста.

Худший ответ: Как ограничить доступ к исходникам разработчкам?Принцип простой - разделяй и властвуй!

Разделите проект на логически независимые блоки - над каждым работает своя команда, и имеет доступ только к своему блоку.
Вопрос: Можно ли после «информатиционной безопасности» стать разработчиком?

Лучший ответ: Разработчиком можно стать вообще без высшего образования.

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

Выбрать нужное направление, но с программой, которая мне не очень нравится или информационную безопасность с более-менее устраивающим обучением? 
Мне за 4 года обучения на специальности "Информатика и вычислительная техника" понадобилось лишь 1/10 дисциплин для программирования. Остальные были чисто для расширения кругозора.

И смогу ли я с образованием ИБ податься в разработку?
Главное - твои проекты, которые ты разработал. Если у тебя будет диплом топового универа, но не будет готовых проектов, тебя наврятли возьмут в ту компанию, куда ты захочешь.
Вопрос: Яндекс Практикум. 6 урок «Счетчики». Не могу найти ошибку в коде, поможете?

Лучший ответ: у вас счетчик был за пределами функции, сделайте так:
def comfort_count(temperatures):
    n = 0
    for temp in temperatures:
        if temp >= 22 and temp <= 26:
            n += 1
    print("Количество комфортных дней в этом месяце: ", n)

Худший ответ: def comfort_count(temperatures):
    count = 0
    for temp in temperatures:
        if 22 <= temp and temp <= 26:
            count += 1
    print('Количество комфортных дней в этом месяце: ' + str(count))
Вопрос: Возможны ли классы в C?

Лучший ответ: Конечно возможно. C++ написан на С

Худший ответ: Вопрос зачем?
Ответ не полностью. 
Например windows написан  на С, но многие черты реализуются именно через передачу указателей на предварительно подготовленную структуру, только смысл сейчас это делапть?
Вопрос: Почему mysql не записывает данные если есть хоть одно одинаковое данное?

Лучший ответ: Возможно у вас есть у таблицы users уникальный индекс например по полю email. Если так, то дубли при вставке либо вызывают ошибку, либо игнорируют я.

Худший ответ: Я переписал твой код чтобы он был надёжным и безопасным

$host     = 'host';
$database = 'name';
$user     = 'user';
$password = 'passw';
$charset = 'utf8mb4'; // тоже важно!

// обязательно выставляем режим информирования об ошибках
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
// подключаемся к серверу
$link = mysqli_connect($host, $user, $password, $database);
// выставляем кодировку
$link->set_charset($charset);

$login   = 'oleg33';
$password = '04bf6c984b760ed67e3a9f0b5d9b4cc7';
$email  = 'gggggf1';

// пишем запрос, заменяя все переменне на знаки вопроса
// имя таблицы пишем прямо в запросе, делать его переменной нет ни имлейшего смысла
$sql = "INSERT INTO users (`login` , `password`, `email`) VALUES (?,?,?)");
// подготавливаем запрос
$stmt = $link->prepare($sql);
// привязываем к нему переменные
// сначала в кавычках пишем столько букв s сколько переменных, а потом сами переменные
$stmt->bind_param("sss",$login,$password,$email);
// выполняем запрос
$stmt->execute();
Вопрос: Собираюсь убегать от 1С-Битрикс. А на что убегать-то?

Лучший ответ: Много шишек, нервов, денег и времени отнял 1С-Битрикс. Решил уйти на самописанный сайт.  самописанный сайт отнимет "нервов, денег и времени" в 10 раз больше. Но правда в том, что самописный интернет-магазин  (как вы выразились "сайт без cms, написанный с нуля.) вам никто не сделает. Либо поставят open source, либо сделают такое, что это будет дырявое решето стоящее на протезах и костылях (и что в конечном счете с грохотом упадет).
Позволить себе интернет-магазин заточенный чисто под себя могут не многие. Это дорого. Очень дорого. Для этого нужен постоянный штат разработчиков.

Худший ответ: Laravel - это PHP vs Node.js - это JavaScript  = тут всё зависит от того что ВЫ знаете? 
PHP - более популярен среди разработчиков под Web (Laravel, Yii, Zend, CodeIgniter) и серверов настроенных под работу PHP много больше.
Node.js - удобен при разработках продуктов типа SPA (single page application) - тут тебе и vue / react / angular  несомненно это шустро и качественно работает при правильном проектировании приложения и разработке.
К слову конфигурирование сервера и запуск / перезапуск проекта на Node.js отличаются от привычного PHP и в этом тоже нужно понимать.
Готового решения под ваши задачи нет ни там ни там (так чтоб из коробки - взял + поставил = работает). 
При любом выбранном варианте Вас ожидает продолжительная разработка и отладка данного решения, постоянные доработки и т.д и т.п.
НО при должном проектировании и продуманной системе в действительности может получиться быстрый подходящий продукт.
Воспроизведение функционала доступного в 1С Битрикс (ИМ + 1С + CRM + Касса + Платежная система) займет от 2 до 6 месяцев разработки как следствие ценник.
Вот и думайте оно Вам точно надо?
Может быть вся беда в том что вы неэффективно используете 1С Битрикс или напротив перемудрили?
1С Битрикс - это тоже на PHP но данную систему нужно правильно "кастрировать" и вычищать / отключать не используемое тогда и летать будет и работать как швейцарские часы. 
При наличии адекватного программиста перестать использовать стандартные компоненты для вывода и обработки, а использовать свои компоненты создав их с использованием API 1C Framework.
P.s. Если всё же менять CMS 1С Битрикс то я бы предложил посмотреть в сторону OpenCart.
Всё вышеизложенное является моим Личным мнением основанном на опыте и доступно для дискуссии : )
Вопрос: Хранение данных с датчиков. Как формировать UUID?

Лучший ответ: Зачем? Если вы хотите генерировать uuid на базе - возьмите сразу sequence. Нет причин использовать uuid в этом случае, а неприятные побочные эффекты будут.

Пришлось играться с Autoincrement, раздвинуть диапазон, чтобы нужный участок влез
Зачем?
Взяли данные и вставили данные сгенерировав новые sequence. sequence даёт гарантированно уникальные значения.

Худший ответ: Ну есть же штатные средства для этого
https://postgrespro.ru/docs/postgresql/9.6/datatyp...

Брать и использовать.)
Вопрос: Перемешать вывод товаров в магазине woocommerce?

Лучший ответ: Добавлю к ответу WP Panda ещё парочку более лайтовых вариантов:
1. Мешать товары на каждой странице отдельно. Тогда визуально они будут меняться, но пагинация не сломается и не будет некешируемого RAND.
2. Периодически через cron дергать скрипт, который будет менять порядок товаров в базе. На сайте порядок товаров будет меняться не при каждом открытии, а через заданный интервал времени, но опять же нет возни с пагинацией и проблем с RAND.
Не знаю какая у Вас точная задача по ТЗ, но если использовать один из способов или совместить их, то можно добиться неплохого визуального эффекта псевдослучайности.
P.S. Способ №2 содержит потенциальную проблему в случае, если порядок товаров в базе изменится во время того, как пользователь просматривает каталог. Поэтому этот сценарий тоже стоит как-то обрабатывать.

Худший ответ: Добавлю к ответу WP Panda ещё парочку более лайтовых вариантов:
1. Мешать товары на каждой странице отдельно. Тогда визуально они будут меняться, но пагинация не сломается и не будет некешируемого RAND.
2. Периодически через cron дергать скрипт, который будет менять порядок товаров в базе. На сайте порядок товаров будет меняться не при каждом открытии, а через заданный интервал времени, но опять же нет возни с пагинацией и проблем с RAND.
Не знаю какая у Вас точная задача по ТЗ, но если использовать один из способов или совместить их, то можно добиться неплохого визуального эффекта псевдослучайности.
P.S. Способ №2 содержит потенциальную проблему в случае, если порядок товаров в базе изменится во время того, как пользователь просматривает каталог. Поэтому этот сценарий тоже стоит как-то обрабатывать.
Вопрос: Как работодатели в Москве относятся к отсутствию военного билета?

Лучший ответ: Если устраиваетесь официально, то не оформят.
Ни в Москве, ни в Николаевке, ни программиста, ни уборщицу.

Остаётся только неофициальный вариант.

Худший ответ: Устраивался работать без военника, устроили официально, нужно было только приписное, отметки об отсрочки в нем не было. 
Но в целом все зависит от конкретной компании. Где-то еще на этапе общения с HR спросят есть ли военник, а где-то без него можно даже пройти проверку СБ (мне так офер из одного банка сделали). В небольшой компании с этим конечно легче, т.к. меньше бюрократии.
Вопрос: Как учить JavaScript дальше?

Лучший ответ: Копать в сторону DOM. Первое что в голову приходит, поискать например на ютубе - Понимание javascript - работа с DOM от Дмитрия Лаврика.  Ну или от кого другого. Просто этот товарищ очень доходчиво объясняет.

Худший ответ: Нужно читайть про клиентский JavaScript, про WebAPI коих сейчас великое множество

https://www.amazon.com/JavaScript-Definitive-Most-...

https://developer.mozilla.org/en-US/docs/Learn/Jav...
https://developer.mozilla.org/en-US/docs/Web/JavaScript
https://developer.mozilla.org/en-US/docs/Learn/Jav...
Вопрос: Сколько в среднем занимает вёрстка и натяжка интернет-магазина на CMS?

Лучший ответ: Неделя вполне себе адекватный период и это только на верстку, о какой натяжке вы говорите за 3дня!? Говорю как человек который "натянул" ни один магазин. Верстка уникального дизайна = неделя + натяжка столько же. Итого 2 недели на полноценный магаз как минимум. Не стоит также забывать про фильтры в поиске товаров, вкладки, аккордионы и проч. динамические свистоперделки, которые не всегда есть смысл верстать, а изменить стили у уже готовых плагинов этих CMS, что по времени может оказаться дольше, чем делать самому с нуля

Худший ответ: А чё так долго то с магазинами, они же все одинаковые? Или вы каждый раз с нуля эпически оригинальный дизайн делаете, в мелкой то студии? Обои поменять, чуть с формами подшаманить и готово.
Вопрос: В каком разделе математики изучается вывод формул?

Лучший ответ: Алгебра. 
Начать со школьного учебника.

Худший ответ: Курите LaTeX
Или формулируйте что вам надо.
Математика ни в каком разделе не занимается выводом формул.
Вопрос: Является ли система видеонаблюдения механическим устройством для обеспечения информационной безопасности?

Лучший ответ: Мое ИМХО - система видеонаблюдения -  это электронное, оптико-механическое устройство или система для повышения уровня безопасности или других проблем, связанных с необходимостью визуального мониторинга ситуаций. 
Точно -  не чисто механическое. И точно -  не  "информационная безопасность". Она тут вообще ни к чему. 
А что, на экзамене ляпнули "механическое" и "для ИБ" -  и препод остался недоволен?

Худший ответ: Является ли система видеонаблюдения механическим устройствомНет это электронное устройство.  Хотя в частных случаях если камеры поворотные используются - можно назвать электронно-механическим.

для обеспечения информационной безопасности?К информационной безопасности система не имеет никакого отношения.
Вопрос: Зависание Linux без причины?

Лучший ответ: Запустите где-нибудь на втором мониторе или во всегда открытом терминале что-нибудь типаjournalctl -b -k -f
И посмотрите, что там появилось во время зависания. Скорее всего, у вас паника ядра.
Можно ещё с помощью того же journalctl попробовать посмотреть логи предыдущего сеанса, но там на диск может и не попасть самое важное.

Худший ответ: Скорее всего видео. Либо дрова гонят, либо modeset/nomodeset. Замени дрова на другие (если nouveau - на nvidia и наоборот). Попробуй версию дров обновить (разумеется учитывая поддержку видео - оно довольно старое). Если есть интеграха - попробую на нее переключиться.
Вопрос: Регистратор с маскировкой домена?

Лучший ответ: кирилические символы в DNS отсутствовали всегда и ближайшие лет 100 не появятся по тому что кодировка не поддерживает. Кириллические имена всегда имеют другой вид, просто браузеры научились их рендерить. Например:тест.рф
на самом деле выглядит какxn--e1aybc.xn--p1ai

Худший ответ: Для начала попробуйте сделать мир лучше — напишите в поддержку GoDaddy.

Проверил, из используемых мною служб, поддерживающих такую возможность, с кириллическими буквами в заголовке работают:

Uniregistry — Title, без мета-тегов, только один целевой адрес на поддомен (без сохранения пути/запроса).
Регистратор, требуется перенос домена.
freedns.afraid.org — Title, без мета-тегов, favicon; перенаправление как с сохранением пути, так и без. 
Смена регистратора не требуется, требуется делегирование домена (указание NS-серверов). Можно пользоваться бесплатно.
dynu.com — Title, Description, Keywords; favicon берётся у целевого сайта (не всегда безошибочно); перенаправление как с сохранением пути, так и без.
Смена регистратора не требуется, требуется делегирование домена (указание NS-серверов). Можно пользоваться бесплатно.
Вопрос: Скачет пинг, как можно исправить?

Лучший ответ: Ставь роутер, который умеет 5Ггц и на ПК usb-свисток тоже умеющий 5Ггц.
Ну а вообще лучше не мучить ПК и протянуть кабель до роутера

Худший ответ: Смиритесь, wifi - общая среда передачи. И плавающий пинг на wifi - нормальное положение дел (только если вы не в чистом поле и кроме ваших устройств у эфире ни кого нет).
Вопрос: Дистрибутив для VPN сервера?

Лучший ответ: Вообщем заманало меня 3 день перелопачивать все дистрибутивы....
Купил лицензию ROS  CHR\p1 , благо каналы гигабитные...
теперь все как у людей, всего за 2500р....

Худший ответ: SoftEther VPN не отвечает Вашим потребностям?
Вопрос: Как обойти ограничения вай-фая?

Лучший ответ: должен помочь VPN +  попробовать в торрент-клиенте включить настройки "шифрование трафика" и "случайный порт при соединении"

Худший ответ: Можно, вариантов обхода много.
Но для начала нужно определить что именно блокируется и как.
Самые популярные варианты обхода - тоннели и прокси сервера.

В данном случае скорее всего поможет VPN тоннель до сервера, где нет таких ограничений.
Вопрос: Ребята, объясните пожалуйста как это работает?

Лучший ответ: Все очень просто. Смотрите, у нас есть массив const numbers = [1, 2, 4, 8];. Мы проходим по нему циклом for, при этом заранее не сохраняя длину массива, таким образом, если удалять в цикле каждый раз текущий индекс, то при следующей итерации будет пересчитано условие i < arr.length, но 1 элемент то мы удалили, и следовательно цикл завершится раньше. Чтобы этого не произошло, i уменьшают на 1. В тот момент, когда удаляется элемент, i при следующей итерации «остается на месте».

Худший ответ: Это унарный оператор. Он уменьшает переменную на единицуВикипедия