Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: C# или C++ для знающего C#?

Лучший ответ:
Вам всего 15 лет! Чего паритесь то? Детей кормить надо? Жену одевать, содержать надо? На квартиру зарабатывать надо?
Нет же ! У вас времени дофига! Пробуйте как можно больше. Ищите себя. Если вас к чему-то тянет, то и не стоит себя отговаривать. Вот когда будет 25, тогда и начните фокусироваться в строго очерченном направлении, а до тех пор пробуйте и эксперементируйте!

Худший ответ:
C# лучше, так как: Проще в изучении (много документации, примеров, фреймворков, библиотек, компонентов и т.п.)Хороший инструментарий (Visual Studio), который позволяет и код писать и кучу сопутствующих дел делать - втроенные инструменты на любой случай (task management, source control, test tools, database tools, инструменты для анализа, отладки и всего прочего).На нем проще и быстрее работать (несмотря на smart указатели в C++, в дотнете все-таки не требуется меньше размышлять о выделяемых ресурсах и их освобождении)
В частности также вы уже начали - продолжайте. Зачем усложнять себе жизнь? Не стоит "рефакторить автогенеренный код" :) Так как веб разработки вам скорее всего не удастся избежать - осваивайте параллельно сопутствующие технологии и языки - JavaScript, например, набирает обороты уже года 3 и не собирается тормозить.
Вопрос: Фундаментальные знания для программиста?

Лучший ответ:
Всякие глубоко теоритические математики да теории алгоритмов, да сортировки - штука полезная для тренировки мозга, но не полезная на практике.
Не знания теоретические важны.А практические знания, практический опыт.
Каждодневной основной для программиста является его собственная практика и т.н. "лучшие практики" и т.н. "паттерны" (которые не стоит учить, они сами придут, но почитать про них все же стоит).
Лучший способ:
Пойти работать в крупную компанию, где более опытные коллеги.
Самостоятельно - худший способ, но можно:Читать актуальные статьи по твоим технологиям. Читать актуальные статьи по технологиям в смежных с твоей областям.

Худший ответ:
Обычно в университете дают фундаментальные знания. Да и для разных специалистов они нужны разные.
Разработчики игр должны знать физику, веб-разработчики - уметь проектировать базы данных.
За python сказать не могу - но вот за php вполне. Первое что нужно сделать - определить последовательность цикла разработки, для веб разработки, из личного опыта, выделяю такие этапы:Составляем ТЗСоздаем дизайнПроектируем БДПишем логику сайтаОтладка
Нарушение последовательности или пропуск пункта - ведет к необратимому краху. Тут еще важно не быть перфекционистом, не нужно стараться впихнуть все функции в первый релиз, в этом случае можно даже не начинать писать ТЗ, ничего не выйдет, также как и ваша программа никогда не выйдет. Нужно ограничиться базовым функционалом.
Относительно веба:  нужно хоть минимально работать с git, применять различные сборщики которые экономят тонну времени (grunt, gulp), использовать пакетные менеджеры (composer, npm; в случае python это pip), использовать фреймворки и CMS (не изобретать велосипеды), уметь изобретать велосипеды (для мелких одноразовых задач).
Поймите для каких целей вам нужен python и начните изучать все стороны вопроса. Белые пятна увидите сами.
Вопрос: Замена процессора на более мощный. Какие могут быть проблемы?

Лучший ответ:
Ставить процессор с большим  TDP не имеет смысла - не справится система охлаждения, и процессор будет перегреваться и работать  медленнее штатного.
Разница в скорости работы процессоров с одинаковым TDP в пределах одной линейки зависит не столько от марки процессора, сколько от эффективности его охлаждения. Невооруженным глазом заметить разницу невозможно.
В тестах можно наблюдать небольшие отличия.
Вывод - процессоры в ноутбуках меняют при их неисправности, но уж никак не для повышения производительности.

Худший ответ:
А можно ли поставить процессор с другой архитектурой с таким же сокетом и тдп?
Вопрос: Как правильно строить таблицу с товарами, на примере?

Лучший ответ:
Цена это характеристика товара, если не зависит от конфигурации. А про цвет - у вас не правильное понятие товара. Магазины из агрегируют для простоты подачи пользователю. На самом деле футболка красная и синяя это разные футболки с разной, потенциально, стоимостью. Это вообще разные предметы

Худший ответ:
Цена это характеристика товара, если не зависит от конфигурации. А про цвет - у вас не правильное понятие товара. Магазины из агрегируют для простоты подачи пользователю. На самом деле футболка красная и синяя это разные футболки с разной, потенциально, стоимостью. Это вообще разные предметы
Вопрос: Язык программирования для 3D-шника?

Лучший ответ:
С чего начинать путь к наставнику Илона )
с математики.
Если именно 3d рендерер и вот это все - то я бы советовал c++. Но можно и что угодно другое, что сможет взаимодействовать с DirectX/OpenGL API. НАпример, тот же c#. 
Но сам ЯП при работе с 3d вторичен.

Худший ответ:
JavaScript и трёхмерный движок Three.js. Просто, бесплатно и быстро получите результат без вкуривания тонн литературы.
Вопрос: Вывод esxi хостов в отдельный VLAN, нужно ли?

Лучший ответ:
Во-первых, VLAN -- он по определнию не физический :-) Как вы понимаете, название "VIRTUAL LAN" нам как бы об этом намекает :-) Физический канал всё равно делится поровну между клиентами, независимо от того, есть у вас деление на вланы или нет.
Во-вторых, Ваш коллега отчасти прав. Но только отчасти. Сегментация сети действительно даёт больше возможностей контроля, и да, стоит разделить сеть на вланы. Причём не только гипервизоры вынести в отдельный VLAN, а вообще сети разделить. Чтобы управление vSphere -- в одном влане, storage-трафик -- в другом, трафик виртуальных машин -- в отдельных VLAN'ах. у вас же виртуалки не одной задачей занимаются, а разными? Соответственно, их нужно сгруппировать и рассадить по вланам. Веб-сервера -- одна сеть, бухгалтерские сервера с 1С -- в другой сети, контроллеры домена -- в третьей. И контроль на на маршрутизатор, чтобы с веб-серверов, доступных через интернет, нельзя было зайти на сервер бухгалтерии, равно как и наоборот.
Клиентов тоже поделить по группам/отделам, и каждый отдел -- в свой VLAN. С раздачей прав доступа, кому куда можно, а куда нельзя.
В идеале, сеть должна быть как можно сильнее сегментирована, и должен быть запрещён любой доступ между хостами, кроме явным образом разрешённого. Есть даже такой термин -- микросегментация. Там хосты даже в рамках одного влана могут друг с другом общаться только по явным образом разрешённым протоколам и портам, а вся остальная коммуникация между ниим запрещена. Но микросегментация -- это не ваша история, это всё реализуется решениями типа VMware NSX или Cisco ACI, т. е. это уже для больших дядек.
Да, и файрвол ESXi можно настроить, но лучше пользоваться более подходящими средствами для этого -- файрволами на маршрутизаторах. Т. е. делим сеть на подсети с помощью вланов и маршрутизации, и настраиваем правила хождения трафика между подсетями файрволом на маршрутизаторе.

Худший ответ:
Если вы доверяете администраторам гостевых машин, можете держать в одной сети. Могут в сети нагадить, если сеть не изолировать.
Вопрос: Как установить Laravel?

Лучший ответ:
Здравствуйте, Влад. 
Composer установить на Windows для меня были танцы с бубном. Насколько я понял, там нужно два раза установить, и только после этого composer заработает. 
Это из личного опыта.
Вы умеете пользоваться командной строкой ?
Открой пуск, введите cmd и там появится "Командная строка"
Потом можете для теста ввести composer -v, если все установлено правильно, то должна появиться эти данные.
В OpenServer уже установлен Composer... 
Можете не устанавливать через composer.exe
Для запуска composer из openServer действия следующие:Правой кнопкой мыши клик по иконке openserverМеню ДополнительноКонсоль
Затем откроется консоль, она выглядит следующим образом:
Для установки фреймворка Laravel в папку Domains действия следующие:
Вводите в командную строку следующие команды:
cd /domains - переходим в папку Domains
composer create-project --prefer-dist laravel/laravel blog - Устанавливаем Laravel! blog это название папки в котором будет Laravel.
А дальше уже как то сами.
На последнем скриншоте идет установка фреймворка.
Надеюсь я вам смог чем то помочь.
Удачи!

Худший ответ:
В openserver уже предустановлен композер. Запустите консоль опенсервера, в нее вводите команды. Оф. линк на установкуЯ новичок в PHP.
Вы уверены что подошли к вопросу с нужного конца?
Вопрос: Как сделать ссылку на другой сайт из меню Yii2?

Лучший ответ:
да, просто укажите ссылку в стиле http://vk.com
например:Nav::widget([
    'items' => [
        [
            'label' => 'Item label',
            'url' => 'http://vk.com',
        ],
    ]
]);

Худший ответ:
Читаем документацию
www.yiiframework.com/doc-2.0/yii-bootstrap-nav.htm...
Вопрос: Как заблокировать Viber в локальной сети?

Лучший ответ:
Можно блокировать исполняемый файл (как по имени так и по котрольной сумме) групповыми/локальными политиками.

Худший ответ:
Подсмотрите в том же керио, на какие сервера стучится вайбер и создайте соответствующее правило.
Вопрос: У вас есть такие табы?

Лучший ответ:
Просто сделайте для табов flex-direction: columnsnippet

Худший ответ:
https://jqueryui.com/accordion/
Есть и другие плагины и библиотеки с похожим функционалом, ищутся обычно по слову "accordion"
Вопрос: Как решить беду со связкой nginx и wsgi?

Лучший ответ:
В файле wsgi.py не хранится конфигурация nginx, поэтому пытаться подключать его директивой include - странное действие.

Худший ответ:
Нужно было вот так в nginx uwsgi указывать:location / {
    include /etc/nginx/uwsgi_params;
  }
Вопрос: Есть ли аналог curl для Rust?

Лучший ответ:
Если пишете в web на Rust, то маст-хэв эту ссылку:www.arewewebyet.org
Там расписано большинство аспектов касающихся web и текущее состояние экосистемы Rust по ним.
Касательно Вашего вопроса, то это к HTTP Clients:
www.arewewebyet.org/topics/clients
Пишет "getting there, stable but still maturing", значит все достаточно неплохо.

Худший ответ:
Оставлю ответ для будущих поколений.
Есть вполне хороший пакет - reqwest.
https://github.com/seanmonstar/reqwest

Код будет такой:
(сначала надо добавить зависимость)
[dependencies]
reqwest = { version = "0.11", features = ["blocking", "json"] } #blocking - только для примера, чтобы не нагружать await-ами. json - чтобы добавить возможность десериализации ответа при помощи serde-json

use std::collections::HashMap;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let resp = reqwest::blocking::get("https://httpbin.org/ip")?
        .json::<HashMap<String, String>>()?; // Тут нужно подставлять тот тип, который реализует трейт Deserialize
    println!("{:#?}", resp);
    Ok(())
}
Вопрос: Как в цикле получить сразу два поста за одну итерацию?

Лучший ответ:
Получите сначала все нужные посты в какой-нибудь массив. Потом уже организуйте цикл в котором будет выводится по два поста за раз.

Худший ответ:
Ну или как-то так:<?php if ( have_posts() ) : ?>
            
                <?php
                $i = 0;
                while ( have_posts() ) : the_post();
                    if($i = 2) {
                          echo $my_posts;
                          $i = 0;
                    } else {
                        $my_posts .=  get_template_part( 'single-templates/content/content', get_post_format() );
                         $i++;
                     }
                    

                endwhile;

                cms_paging_nav();
                ?>
Вопрос: (Unity3d) В чем может быть проблема с версией apk вышедшего из Unity? Из двух девайсов на одном только работает?

Лучший ответ:
с Unity5.6 и выше обработчики отказались поддерживать старые версии андроидов..минимум 4.1
Пробуйте ставить старую версию Юнити и пересобрать в ней

Худший ответ:
Второй андроид уже много лет как не поддерживается, четвёртому тоже уже седьмой год пошёл, но он ещё не так давно работал. В настройках плеера есть пункт "Minimum API Level", возьмите версию юнити постарше и поменяйте настройку.
Вопрос: NGINX не редиректит на HTTPS, как исправить?

Лучший ответ:
и последнем блоке server (где :80) добавьте www домен тоже,
и в блоке https сервера уберите строки listen: 80

Худший ответ:
еще можно в основном конфиге прописать if ($scheme = http) {
    return 301 https://$host$request_uri;
}
Вопрос: Как после клика по ссылке, проскролить до определенного блока?

Лучший ответ:
Делайте ссылки вида: site.ru/page/#id-block - страница сразу откроется на нужном блоке

Худший ответ:
перезагрузка страницы идет по клику - это важный момент. Ведь тогда бессмысленно делать коллбак на событие click. Нужно не делать перезагрузку, а если это не возможно, то сделать скролл внутри onload или ready, причем глубину скролла предварительно по клику сохранить в локасторадж
Вопрос: В чем соль FANN (php)?

Лучший ответ:
504 - ошибка веб-сервера. 
такие вещи никто в здравом уме не запускает под сервером, только в консоли.

Худший ответ:
Первый раз услышал про fann.
Попробую предположить:ini_set('max_execution_time', 900); — 900 секунд мало для скриптаесть ограничения сервера (если код выполняется не через консоль)
Вопрос: Ошибка в open server?

Лучший ответ:
В OpenServer: Дополнительно -> Первый запуск.

Худший ответ:
Установите Microsoft Visual C++ Redistributable: www.microsoft.com/ru-ru/download/details.aspx?id=30679
Вопрос: Как выключить ПК средствами Си?

Лучший ответ:
Помните времена windows 98? "Теперь можно отключить питание компьютера"
Windows не могла отключить питание компьютера из-за отсутствия поддержки ACPI либо другого интерфейса управления питанием.
Команды "выключить компьютер" не существует, это происходит как раз таки через ACPI. Как он реализован - обращайтесь к документации производителя материнской платы и к спецификации ACPI (или APM, если плата очень старая).

Худший ответ:
все что находил либо не работаетТак выключить компьютер — особая привилегия,  не всякий её достоин.
Вопрос: Как вы относитесь к тестовым заданиям на Upwork?

Лучший ответ:
Я не очень знаю структуру Апворка, но правильно будет попросить создать на нем это тестовое задание со всеми вводными и без конкурса отдать вам.
Если функционал площадки позволяет.
А в бесплатную работу я не верю. Вы можете без оплаты дать понять заказчику как вы планируете решать его задачу. То есть, некую схему "в общем виде".
Или. Если тестовое задание достаточно небольшое, и вы, в принципе, не напряжетесь его сделать, то вполне можете. Но.
Вы от Апворка планируете иметь, фактически, 2 важных момента. Рейтинг и деньги. И, даже если, вы готовы выполнить тестовое задание без оплаты, то поиметь + к рейтингу ваше святое право.

Худший ответ:
Тестовые задания должны оплачиваться. С непроверенным клиентов не нужно работать в обход апворка.
Вопрос: Можно через SSH терминал обратиться к странице/сайту по IP или домену?

Лучший ответ:
Если Вам именно заголовки нужны, то:curl -X HEAD -i http://www.google.com

Худший ответ:
текстовый браузер можете попробывать
Вопрос: Оформление первой записи в цикле wordpress?

Лучший ответ:
1. Зачем вам custom_query, изменения в основной запрос делайте через хук pre_get_posts
2. Проверяйте первый пост по индексу current_post объекта $wp_query// В functions.php, модифицируем основной запрос:
function modify_my_query( $query ) {
    if ( $query->is_main_query() && ! $query->is_admin() ) {
        $query->set( 'posts_per_page', 24 );
    }
}
add_action( 'pre_get_posts', 'modify_my_query' );

// В самом шаблоне, для изоляции первого поста в стандартном цикле:
if ( have_posts() ) :

    while ( have_posts() ) : the_post();

        if ( $wp_query->current_post == 0 ) : // Это первый пост в цикле

            // вот тут произвольный код для вывода/оформления первого поста

        else : // Это все остальные посты

            // а тут - для всех остальных

        endif;

    endwhile;

endif;
И пагинация будет работать, и граблей никаких нет.

Худший ответ:
//не хватает аргумента paged
$args = array (
            'post_type'              => array( 'post' ),
            'post_status'            => array( 'publish' ),
            'posts_per_page'			=> 24,

          );
//Вместо этого должно быть так
$paged = get_query_var('paged', 1);//Получаем номер страницы
$args = array (
            'post_type'              => array( 'post' ),
            'post_status'            => array( 'publish' ),
            'posts_per_page'			=> 24,
            'paged' => $paged
          );
Вопрос: Что означает такая запись?

Лучший ответ:
propэто свойства, которые есть в объекте data.yandex
Подробнее: https://www.w3schools.com/js/js_arrays.asp пункт Associative Arrays
Формально это ассоциативный массив, когда вместо числового индекса может быть что-то другое, например просто строка. Но в JS  такое представлено объектом, который и состоит из данных с именованными индексами

Худший ответ:
название свойств
Вопрос: Допустимо ли подключение по SSH (Putty) по ключу, но без пароля самого ключа?

Лучший ответ:
pageant
ну или сбросьте пароль на ключ

Худший ответ:
Или создать новый ключ с пустым паролем, что бы не спрашивало его - это нормально?
Нормально
Вопрос: Почему pip не хочет обновляться?

Лучший ответ:
Самая последняя строка говорит тебе что лучше сделать.python -m pip install --upgrade pip
Т.к. ты используешь две версии питона на машине под виндой, советую обновлять pip немного подругому.py -3 -m pip install --upgrade pip
Команда "py" устанавливается в системную директорию ОС и является приложением Python version checker.
Благодаря ней ты можешь запускать питон нужной версии (py -2 или py -3).
Аналогично команде "py", команду "pip" тоже можно запустить строго для нужной версии питона. По умолчанию имя pip относится только к питону 2й версии. Если тебе надо использовать именно pip 3й версии питона, то вызывать его надо через "pip3".
Можно вот так:pip3 install Django==1.10.3
А можно и вот так:py -3 -m pip install Django==1.10.3

Худший ответ:
Сперва проверьте сетевую связанность, вот мой провайдер взял и забанил bugs.python.org, mail.python.org и прочие сервисы которыми обновляется pip, чисто случайно выяснил что такое поведение вызвано блокировками роспотребнадзора. Проверку можете сделать через opera-vpn.
Вопрос: Какие требования, чтобы написать первый сайт на базе ASP .NET?

Лучший ответ:
Для полного ASP.NET достаточно Visual Studio Community, а для ASP.NET Core - SDK, блокнота и консоли.

Худший ответ:
В целом достаточно только visual studio, т.к в нее входит урезанный mssql. Опять же, все зависит от того какой сайт вы собрались делать и какие технологии юзать(mvc, webforms).
Вопрос: Сомнительный заказчик на Upwork, обман ли?

Лучший ответ:
Обман, отказывайтесь, а то забанят и вас.

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

Лучший ответ:
> скрипт создает оптимальную конфигурацию nginx
Не существует оптимальной конфы для nginx, каждый инстанс конфигурится под свою задачу и железо.
То что вы спрашиваете это https://centminmod.com/
О вопросе котором вы упоминаете это вот Какие есть сборки на подобии LAMP/LEMP для web-сервера? (12-й по тегу nginx)

Худший ответ:
Спасибо, но это не немного не то и только для CentOS.
По вашей наводке нашел то, что нужно.
https://easyengine.io/
Вопрос: Вопрос наискорейшего заработка (какую площадку выбрать)?

Лучший ответ:
Наискорейшего ? Тогда строительную площадку выбирайте

Худший ответ:
Смотря от категории, качества и уникальности приложения. Для начала лучше попробовать вариант с рекламой. Юридическое оформление до заработка $500-$1000 не нужно (ваши гроши никому не интересные), так что можете расслабиться.
Вопрос: Unity(C#) — Как перемещать объект?

Лучший ответ:
В общих чертах:void Update()
{
transform.position+=Vector3.left*Mathf.sin(Time.time);
}

Худший ответ:
https://docs.unity3d.com/ScriptReference/Vector3.M...
по достижении позиции меняем точки местами
Вопрос: Как сравнить 2 тхт файла и удалить повторы?

Лучший ответ:
Как то так:file_1 = open('1.txt', 'r').read().split('\n')
file_2 = open('2.txt', 'r').read().split('\n')

array = []
for email in file_1:
    if email.split(':')[0] not in file_2:
        array.append(email)

str = ""
for email in array:
    str += email
    str += '\n'

file_3 = open('3.txt', 'w')
file_3.write(str)

Худший ответ:
Для разнообразия:#!/usr/bin/env python3

filename = "/path/file1"
data = {}
with open(file1, "r") as f:
    while True:
        line = f.readline().replace('\n', '')
        if not line:
            break
        key, value = line.split(':')
        data(key) = value

with open(file2, "r") as f:
    while True:
        line = f.readline().replace('\n', '')
        if not line:
            break
        del data[line]

with open(file1, "w") as f:
    for key, value in data.items():
        f.write("{}:{}".format(key, value))
Работать будет, если все адреса почты уникальны, иначе будет потеря одного из задвоенных адресов.
Не проверял, если где очепятался, то сорри, но идея понятна ))
Вопрос: Как сделать схему включения / отключения SATA диска?

Лучший ответ:
Max 5 Duo SATA HDD Rack.Плата и есть переключатель питания:
Или на 4 SSD: Max 5 Quad SATA HDD Rack.
Горячая замена определяется чипсетом.

Худший ответ:
Если дело только в коммутации трёх питаний, то это несложно. Ставим в цепь +3,3, +5 и +12 вольт три вот таких ключа:
Их затворы объединяем вместе и подаём на них управляющий сигнал. Для надёжного включения/выключения и минимальных потерь на ключах он должен иметь размах 24 вольта, т.е. +12 в (в состоянии выключено) и -12 в (включено). Для 12-вольтового ключа такое управление приближается к предельно допустимому, поэтому его затвор желательно подключить через резистор с 15-вольтовым стабилитроном на исток. Для остальных и так сойдёт.
Кстати, тут кто-то выражал сомнение в нужности коммутации 3,3 вольт. Сомневаться не надо, 3,3 вольта точно используется для питания  миниатюрных SSD конструктива mSATA и M2.
Вопрос: Почему приходят пустые сообщения на почту с формы обратной связи?

Лучший ответ:
Подсказали ответ в одном из чатов в Телеграмме.
В общем, на стороне клиента, видимо, не всегда удается делать проверки на заполненность полей, иными словами, плевал их браузер на required и периодически происходят такие отправки писем с пустым содержанием. 
Нужно производить проверки на стороне сервера, в контексте моей задачи мне подошел вот такой код:$num = 0;
foreach ($_POST as $key => $value) {
	if($value != '' && $value != ' '){
		$num++;
	}
}
if($num >= 4){ //если в массиве есть значения 4-х и более полей - производим отправку
	mail($admin_email, adopt($form_subject), $message, $headers );
}

Худший ответ:
Попробуйте вписать почту от яндекса или гугла
Вопрос: Как проверить зафиксировался ли TTL?

Лучший ответ:
Нужен компьютер за пределами вашей сети. Запускаете на том компьютере tcpdump\wireshark на перехват пакетов с вашего тарифища.
По очереди пингуете внешний комп: 1. с устройства, которое раздаёт интернет; 2. с устройства, которому раздают интернет.
Если фиксация ttl работает, то tcpdump или wireshark должен показать одинаковый ttl у входящих пакетов в 1-ом и во 2-ом случае.

Худший ответ:
Выполни пинг с устройства с которого раздаешь интернет и на которое раздаешь интернет, если ttl одинаковый на обоих устройствах, то ты все сделал правильно.
p/s/ Кроме ttl, оператор может использовать дополнительные проверки, например обновление windows или другими сервисами которые характерны только для PC.
Вопрос: Что писать для лучшей практики JavaScript?

Лучший ответ:
Не очень понятно что вы хотите в ответ.
Ну напишите туду-лист. Напишите аналог TiddlyWiki.
Возьмите готовые стили, bootstrap например.

Худший ответ:
Не очень понятно что вы хотите в ответ.
Ну напишите туду-лист. Напишите аналог TiddlyWiki.
Возьмите готовые стили, bootstrap например.
Вопрос: В чем разница между «i = i + 1» и «i += 1»?

Лучший ответ:
Никакой разницы. В ruby нет i++, а для сокращения 'i = i +1' можно использовать 'i +=1'
Можете посмотреть документацию, например здесь: https://www.tutorialspoint.com/ruby/ruby_operators.htm

Худший ответ:
Если не ошибаюсь, то i = i + 1 создаст в памяти 2 объекта, а i += 1 лишь добавит единицу к уже имеющейся в памяти переменной