Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Хорошо ли использовать выражения if — else в PHP и не только?

Лучший ответ:
Если речь идет о большой вложенности ветвлений, то да такого лучше избегать. 
Например конструкцию вида:
<?php
$a=17;

if ($a < 0 ) {
	if ($a % 2 === 1) {
		echo "$a is negative odd";
	} else {
		echo "$a is negative even";
	}	
} else {
	if ($a % 2 === 1) {
		echo "$a is positive odd";
	} else {
		echo "$a is positive even";
	}
}

можно упростить используя функции:

function positive_or_negative($a) {
	return ($a < 0 ) ? 'negative' : 'positive';
}

function odd_or_even($a) {
	return ($a % 2 === 1 ) ? 'odd' : 'even';
}

echo "$a is " 
		. positive_or_negative($a)
		. " "
		. odd_or_even($a);

Test PHP code online

Худший ответ:
Скорее тут дело в том, что бы не фигачить if-else на пустом месте, а попробовать для начала понять логику и сделать проще и читабельнее, ведь потом вам с этим кодом работать.

Пример когда один и тот же код можно написать по разному:
if-else
without if-else
Согласитесь, без if-else смотрится лучше. Иногда нужно просто включить голову
Вопрос: Диплом платных курсов или Вышка?

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

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

Лучший ответ:
Приватное облако, т.е. сервер с, к примеру, nextcloud

Худший ответ:
Сервер с кучей дисков. Получится тот же NAS.
Вы сначала определитесь, как вы собираетесь получать доступ. WebDAV, FTP, файловый менеджер или еще как-то.
Вопрос: Как сделать вращение стрелки за мышкой?

Лучший ответ:
Как-то так:
snippet

Худший ответ:
Из описания вопроса не совсем понятно, какую именно логику следования стрелки за мышкой вы хотите получить (можно придумать разные варианты), но скорее всего вам нужно отталкиваться от логики вроде такой:
// Тут, конечно, лучше какие-нибудь id сделать для однозначности
const circle = document.querySelector('.circle');
const arrow = document.querySelector('.arrow');

document.addEventListener('mousemove', (e) => {    
    const circleRect = circle.getBoundingClientRect();
    const circleCenterX = circleRect.left + circle.offsetWidth / 2;
    const circleCenterY = circleRect.top + circle.offsetHeight / 2;
    const deltaX = e.clientX - circleCenterX;
    const deltaY = e.clientY - circleCenterY;
    const angleInRadians = Math.atan2(deltaY, deltaX) - Math.PI / 2;
    const angleInDegrees = 180 * angleInRadians / Math.PI;
    const angleFrom0To360 = (angleInDegrees + 360) % 360;
    const shouldEffectBeApplied = deltaY < 0;
    
    if (shouldEffectBeApplied) {
        arrow.style.transform = `rotate(${angleFrom0To360}deg)`;
    }
});
И еще в таких штуках всегда хорошо добавить какой-нибудь transition в CSS:
.arrow {
    transition: transform .1s linear;
}
Вопрос: Сколько может стоить создание копию существующего веб сервиса?

Лучший ответ:
своя команда разработчиков + ресурсы

Худший ответ:
своя команда разработчиков + ресурсы
Вопрос: Как сделать в запрос Mysql что бы вывести по 10 записей каждой страны?

Лучший ответ:
И наш традиционный вопрос: что я делаю не так, печатая заголовок вопроса не в форму на тостере, а в адресную строку своего браузера?

Худший ответ:
Вы можете использовать оконную функцию row_number

create table tbl(id int primary key auto_increment, lang varchar(2));

insert into tbl(lang) values 
('EN'),('ES'),('RU'), ('EN'),('ES'),('RU'), ('EN'),('ES'),('RU'), ('EN'),('ES'),('RU'), ('EN'),('ES'),('RU'),
 ('EN'),('ES'),('RU'), ('EN'),('ES'),('RU'), ('EN'),('ES'),('RU'), ('EN'),('ES'),('RU'), ('EN'),('ES'),('RU');
 
 
with data as (
  select 
	id, lang, 
	row_number() over (partition by lang order by rand()) rn
  from tbl
) 
select id, lang from data
where rn < 11;

MySQL window function
Вопрос: Как передаётся дизайн сайта?

Лучший ответ:
Отдать дизайн это отдать просто готовую работу картинкой, а отдать исходник это отдать файл где заказчик сам сможет подредачить например подвинуть кнопку

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

Лучший ответ:
ERROR: Cannot find command 'git' - do you have 'git' installed and in your PATH?
Чего же боле?

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

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

Худший ответ:
В Матлабе есть способ построения дерева (иерархическая кластеризация), указываете нужное количество (или другой параметр близости).
Правда, из-за санкций, скорее всего, Матлаб недоступен в России.
Вопрос: Как написать команду /clear на disnake?

Лучший ответ:
Что вы вообще хотите без описания что делает команда?
Базовые примеры команд лежат в папке examples. Там есть все что нужно относительно библиотеки, дальше все зависит от ваших знаний питона

Худший ответ:
@bot.command(name="clear", usage=f"clear [amount]")
@commands.has_permissions(manage_messages=True)
async def clear(ctx, amount: int):
  await ctx.channel.purge(limit=amount + 1)
  emb = disnake.Embed(
    description=f"{ctx.author.mention} очистил {amount} сообщений")
  await ctx.send(embed=emb)

usage="clear [amount]"  - будет отправляться в чат при ошибке, вы можете обработать все ошибки, и вставлять при определенной ошибке - {ctx.command.usage}
Вопрос: Открытые базы данных для создания Api?

Лучший ответ:
World Mortality Dataset: https://github.com/akarlinsky/world_mortality

P.S. Недавно читал статью на основе этих данных: Tracking excess mortality across countries during .... Очень интересный анализ избыточной смертности по странам и периодам. А также дается оценка насколько разные страны занижают смертность от ковида.

Худший ответ:
Например учебная база данных Postgresql: https://postgrespro.ru/education/demodb
Там про всякие авиарейсы, аэропорты, билеты, и бронирования.
Вопрос: Как называется ниже описанный сайт?

Лучший ответ:
маркетплейс

Худший ответ:
Онлайн магазин. Каталог товаров.
Вопрос: Как падение диска могло изменить его разделы?

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

Но это всё уже не так важно. Если всё, что вы делали с диском, имело целью спасение данных с него, то срочно прекращайте и отключайте диск от компьютера.

Судя по симптомам, даже если он и начнёт читать, то долго не протянет, а когда отвалится окончательно, ситуация будет ещё хуже, чем есть сейчас. 

С высокой вероятностью на диске есть повреждения поверхности, плюс головки сейчас, скорее всего, уже не в идеальном состоянии. Это не то, с чем можно работать дома. 

Ищите специалиста поблизости, толковый сможет вычитать явно больше, чем вы без замены голов (т.е. по более низкой цене). Если результат окажется недостаточным - закажете замену блока головок. 
Вот краткий текст о выборе фирмы по восстановлению данных: https://xn----7sbbfbnfa0a2audfacc2cat8e9f.xn--p1ai/

Худший ответ:
Да что угодно могло случиться, диск не жилец, надо скопировать данные и выкинут его
Вопрос: Как лучше всего анимировать отрисовку кривой Безье canvas?

Лучший ответ:
отрисовывать пунктирной линией, меняя смещение штриха.  Длина штриха сравнима с длиной всей кривой.


setLineDash() – установить паттерн штриха с длиной штриха достаточно длинной, чтобы закрыть 1 штрихом всю длину кривой.
lineDashOffset – установить смещение этого штриха вдоль линии. Сначала на минус_длину_штриха, чтобы ничего не было отрисовано. Затем чуть увеличивать с каждым кадром: кривая станет появляться.


snippet

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

Лучший ответ:
Windows Login Unlocker, есть готовые Live CD/USB или в составе WinPE Sergei Strelec (там и друге аналогичные программы есть).

P.S. Если это чистая ОС, то проще переустановить.

Худший ответ:
! если нужны данные - загрузиться с LiveCD/DVD/flash USB и скопировать на другой (!) физический носитель
! переустановить Windows, убрав проблемы возникновения BSOD
Вопрос: Нужно ли знать +- ассемблер, чтобы изучать C?

Лучший ответ:
Всем программистам стоит пройти хотя бы ознакомительный курс ассемблера. Особенно тем, кто пишет на отсносительно близких к железу языках, вроде Си.

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

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

Лучший ответ:
Ping это отправка icmp запроса ну или tcp браузер этого не умеет. Его можно научить если это ie и вы напишете activex. Однако есть выход. Первый если сайт который вы пингуете содержит общедоступный апи. Второй это создание в доме картинки нацеленной на этот сайт и подписка на событие завершения загрузки.

Худший ответ:
Отправте запрос, посчитайте через сколько времени придет ответ
Вопрос: Как переключить вывод звука на колонки при подключенных проводных наушниках?

Лучший ответ:
наушники подключены в передний разъём 3.5 на корпусе
Этот разъём специально сделан так:
Отключаю наушники и звук на колонках появляться

Как переключить вывод звука на колонки при подключенных проводных наушниках?Отключить наушники, или использовать для колонок отдельную звуковую плату. Тогда вы сможете выбирать для каждой программы выходное устройство.

Да (забыл): естественно, если подключите колонки по оптике, то у вас будет ещё одно устройство вывода без дополнительной платы.

Худший ответ:
Проблема оказалось решаемой на программном уровне.

Решение для ubuntu linux: stackexchange

На windows потребовалось переустановить драйвер realtek для материнской платы msi
https://ru.msi.com/Motherboard/B560M-PRO-VDH/suppo...
Вопрос: Python выполняет else, даже если должно срабатывать if, как исправить?

Лучший ответ:
if what == "+":
c = a + b
elif what == "-":
c = a - b
elif what == "*":
c = a * b
elif what == "/":
c = a / b
else:
c = ("Выбрана неверная операция")

во вторых скобки то зачем перед кавычками после = ?

if what2 == ("великолепно"):
answer = ("спасибо)")
print(answer)
elif what2 == ("отстой"):
answer = ("ты ничего не понимаешь в искусстве")
print(answer)
else:
what1 = input ("скажи просто (великолепно или отстой): ")
if what1 == ("великолепно"):
answer = ("спасибо)")
elif what1 == ("отстой"):
answer = ("ты ничего не понимаешь в искусстве")
else:
answer = ("ясно...")

print(answer)

Худший ответ:
Всё код восспринимает так, как ему подали.
if what == "/":
    c = a / b
else:
Так как если не срабатывает вот это условие, то и будет исполнятся else. Просто нужно было использовать конструкции, if -> elif -> else
Вопрос: Имеет смысл мне продавать frontend шаблоны / библиотеки?

Лучший ответ:
ну попробуйте https://habr.com/ru/post/278999/ , тут у веб студии как я понимаю больше года ушло чтобы сделать шаблон на продажу. Они тоже думали, что они все знают и умеют 

вообще это хороший пассивный заработок, но ни разу не простой

и кстати, ваше описание в разделе Кто я, как будто какого то джуна. Не знаю что у вас в реальности, но с таким резюме не устроиться выше джун+

Худший ответ:
Если кого-то заинтересуют ответы на мои вопросы, читайте все комментарии специалистов.

И еще по 1 вопросу, нашел примеры, как обеспечивается безопасность в компаниях и их продуктах.
Progress: https://www.progress.com/security/information-secu...
SaaS Timely: https://memory.ai/data-security-gdpr

Может быть, помимо этих ссылок есть еще информация на сайтах этих компаний.

P. S. Спасибо всем большое за шикарные советы и знание.
Вопрос: Как победить Exchange?

Лучший ответ:
К сертификату для Exchange предьявляются особые требования.

У него обязательно должен быть SAN, потому что в нем (в SAN) должно быть как минимум два имени - org.blabla.bla и autodiscover.blabla.bla. При этом, если предполагается предоставлять доступ к OWA извне - обязательно придется его (сертификат) купить, иначе не видать Вам почты на мобильных клиентах :)

Самоподписанный сертификат должен совпадать с именем, на котором работает эксч - а как иначе? и иметь в SAN autodiscover. Ну то есть, если контора имеет домен ktoto.local, а сервер exch.ktoto.local, то сертификат должен включать имена exch.ktoto.local и autodiscover.ktoto.local. Если же хотите еще и внешний доступ - то эксч должен работать на домене ktoto.ru, и соответственно сертификат должен включать имя autodiscover.ktoto.ru.

Эксчевские сертификаты недешевые - от десятки рублей.

Худший ответ:
1) выясните на какое имя выдан сертификат
2) "переведите" Exchange на использование FQDN в .ru
Вопрос: Алгоритм перевода RGB-компонент в длину волны?

Лучший ответ:
Тут не тег "физика" нужен, а "биология". С точки зрения физики - эта задача не имеет смысла, ну не соответствует набор интенсивности трех длин - длине какого-то другого цвета.

Это задача подобрать такую длину волны, которая стимулирует средний человеческий глаз так же, как набор из трех разной интенсивности. Тут надо знать спектры чусвтительности разных колбочек и оттуда уже плясать.

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

Еще, возможно будет легче сначала преобразовать RGB в какой-нибудь YUV или HSL.

Худший ответ:
Наоборот не получится.
См. значения волн по периметру фигуры:
Вопрос: Провёл очень подробный эксперимент по Equals, ReferenceEquals и ==. Провёл наблюдения и сделал кое-какие выводы. Верны ли мои выводы?

Лучший ответ:
Рано тебе еще такие эксперименты проводить, не зная платформы и ее внутренностей и выводы. 
Ссылочные сравниваются тупо по ссылке,  если не переопределено иное.
1. Мне интересно, когда ты сравнивал два int через ReferenceEquals (а я сразу скажу, будет False),  примерно представлял, что происходит и почему даже на одной переменной всегда будет False? И какие ссылки сравниваются? Указатели на значение в стеке? НЕТ!!!!!! Происходит упаковка и сравниваются два разных объекта, даже на одной переменной.

2.  что int и далее значимые типы не от object наследуются, а от System.ValueType.  У ValueType переопределен Equals. Так и что он делает: сравнивает типы, так как мы передаем object (и опять здравствуй упаковка родная), проверяет возможность побитового сравнения, что относится к примитивным типам и если оно невозможно, для каждого поля (в том числе и приватных) вызывает Equals, причем через рефлексию!!!!!!!!!!! А там если есть значимые поля без переопределенного Equals, здравствуй упаковка.

3. Сравнивать int и long через Equals еще тот изврат,  да у примитивных типов есть перегрузки Equals, типа
public bool Equals(int obj)
{
	return this == obj;
}
те у int перегрузка с int, long c long и тд. если сравнивая через == у тебя сначала приведение типов срабатывает и потом сравнение, а при Equals, так как нет перегрузки необходимой вызывается ValueType(object), срабатывает сначала, она родненькая,  упаковка, а потом сравнение типов и False;

4. Про сравнение структур через ReferenceEquals уже писал.

А мне интересно, вот теперь какие выводы ты для себя сделал? Просто эксперимент и все?

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

Лучший ответ:
Раз в обратном порядке выводить, то это не очередь, а стек получается.

А дальше - просто добавляйте элементы в начало списка. Потом выводите весь список.

Худший ответ:
1. Реализовать список.
2. Реализовать очередь на списке.
3. Выполнить задание.
Вопрос: Стоит ли писать под Android на Python?

Лучший ответ:
Под андроид пишут 80% на котлине и 20% на Java, остальные 0% - на C#

Худший ответ:
писать стоит либо на нативе либо на библиотеке работающей на обоих платформах.
Вопрос: Сколько нейронов и связей у нейросети Stable Diffusion или ChatGPT?

Лучший ответ:
Написано, что чат на основе GPT-3.5, а про GPT-3 известно, что она на трансформерах, параметров (связей) у неё 175 миллиардов:
"The architecture is a standard transformer network (with a few engineering tweaks) with the (back then) unprecedented size of 2048-token-long context and 175 billion parameters (requiring 800 GB of storage)."

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

Более ценно узнать архитектуру GPT. Памятуя а том что классические НС работают с вещественными числами (ага!) то нам нужно нечто, что работает с natural languages. Без этого input невозможен.
Вопрос: Как развиваться безопаснику?

Лучший ответ:
Как вариант можно начать с госсектора, где сейчас дикий недобор кадров, особенно в части технических направлений (знаю не понаслышке). Там Вы и в расследовании инцидентов по ИБ примите участие, и DLP системы изучите, и навыки администрирования AD получите (при желании), и, что немаловажно, изучите кучу нормативки по направлению. 
Из плюсов - много направлений, в которых можно развиваться; отсутствие жёстких требований по образованию (кадровый голод даёт о себе знать); если "повезет" ещё и смежные направления освоите, типа администрирования телеком оборудования и общих принципов TCP/IP; и один из главных плюсов - реальная возможность пройти обучение за счёт организации с получением соответствующих "корочек". 
Из минусов - куча работы за не самое достойное вознаграждение; допуск к ГТ со всеми вытекающими; и... бюрократия, много бюрократии. 
Как трамплин и своего рода "песочница" для изучения всего интересующего - самое оно.

Худший ответ:
Так почитайте три книжки по линуксу и смените работу
Вопрос: Могут ли сайты делать скриншоты?

Лучший ответ:
Если есть соответствующее ПО на вашем ПК, то могут.
Отключенный корпоративный плагин, могут расценить, как отсутствие на рабочем месте.

Худший ответ:
сайты могут скриншотить только собственное состояние.
или других сайтов в этом же браузере, если есть расширение для этого.

к другим окнам доступа у сайта нет.
для скринов всего экрана/других окон требуется установка стороннего приложения.
Вопрос: Куда уходит место на жестком диске в Linux Ubuntu?

Лучший ответ:
В Линукс место просто так никуда обычно не уходит.
В твоем случае, я бы первым делом проверил что в /var/log - скорее всего ротейт логов недонастроен, и что-то накапливается.

Худший ответ:
Ну, разучите вторую команду: 
sudo du -hd 1 /
Вместо последнего подставляете тот путь, по которому предыдущая команда показала максимум.
Если оно внутри /home/{user}, то можно без sudo.
Вопрос: Сломалась мать, как стартануть с диска на другой?

Лучший ответ:
boot disk failure Восстанавливайте загрузку.

Худший ответ:
Семерка плохо переживает подобные ситуации. С десяткой проще - она бы стартанула нормально.
1 вариант - загрузиться с iveCD и подключить просто как диск, скопировать всю инфу.
2 вариант - купить аналогичную мать.
Вопрос: Как превратить много текстовых ссылок в тег «a»?

Лучший ответ:
В текстовом редакторе Найти и Заменить (Ctrl+H) режим Регулярное выражение (Alt+R):
Найти: (^https.*)
Заменить: <a href="$1">$1</a>

Худший ответ:
В Notepad ++ и другом расширенном редакторе (VS Code например) в разделе Поиск/Замена вводишь https:// заменить на <a href="https://
Жмешь заменить, будет заменено начало ссылки во всех строках.

Затем концовку меняешь в расширенном варианте, заменяешь \r (могу ошибаться, но в общем знак переноса) его меняешь на "окончание ссылки какие нужно тебе + перенос (\r)" 

Ну и все.
Вопрос: Как создать список разделенный по классам?

Лучший ответ:
ORDER BY klass, podklass отсортирует так что будут овощи, затем фрукты. А строить вот такую древовидную структуру MySQL не умеет, придется это делать вручную на PHP

Худший ответ:
у тебя не верна сама структура - сделай 4 таблицы: сущности(огурец, кабачок и т.д), свойства(цвет, тип), значения свойств(синий, красный, овощ) и наконец таблицу свойства сущностей: id сущности, id значения свойства.

Выбираешь значения свойств объединив с таблицей свойств и сущностей для получения имен.
Вопрос: Что за коды мне приходят по SMS?

Лучший ответ:
Есть кучи устройств, которые умеют посылать sms. Всяческие умные дома, шлагбаумы, скд, теплицы и т.п.
И в каком-то из них вбит этот номер телефона для оповещений (ошибочно или раньше был у другого владельца).

Притом зачастую какой-нибудь шлагбаум пусконаладчики запрограммировали, сдали заказчику и канули в лету... И теперь никто концов не найдет...

А сообщения идут по достижению контрольных температур датчика или когда открывают корпус/дверцу

p/s/ можно попробовать хакнуть устройство: оно вероятно примет звонок и там будет голосовое меню например)

Худший ответ:
Это система оповещения.  Видимо кто-то когда настраивал - ошибся с цифрами, и СМС приходят к Вам. 
Или раньше Ваш номер принадлежал другому человеку, на которого были настроены эти уведомления, а после смены номера не отвязали от рассылки.
Вопрос: Как сделать чтобы mysql хранил таблицы в ОЗУ?

Лучший ответ:
16.3 The MEMORY Storage Engine

З.Ы. Но вы явно чего то не то замыслили.

Худший ответ:
Тюнинг БД это процесс бесконечный и интересный. Вот еще брат-близнец (или сестра) под названием Мария тоже имеет двигатель для memory https://mariadb.com/kb/en/memory-storage-engine/

Есть там нюанс связанный с кнопкой Power. Так что будьте готовы к тому что это место - временное. Для кешей подходит разве что. Какую-то ценную информацию о финансовых транзакциях туда кидать нельзя.

Еще если БД стоит на отдельном хосте - то какую-бы быстроту вы ни выжимали из таблицы - перед ней стоит сетевой стек который вносит свои законные милисекунды. Имейте это в виду.

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

Лучший ответ:
Нет, невозможно
И вопрос на засыпку, какой вообще является работа на дистанционке за рубежом? Чисто черной? или договор присылают как-то почтой?
Ну, тебе это не светит, можешь забыть про этот вопрос

Вообще, если ты задал этот вопрос на тостере, то это уже показатель твоей профнепригодности и особенно за рубежом

Худший ответ:
Отвечу про черность удаленки за рубеж. Тут есть 3 варианта.
1. Меня не поймают
2. Самозанятый
3. ИП

Самозанятый делается за 5 минут и будет вам стоить 4-6% от з.п. Тут можно торговаться с работадателем за прибавку на эту сумму.
Вопрос: Где в HTML правильно подключать скрипты к странице?

Лучший ответ:
It depends.

Страница отображается в браузере по мере загрузки. Если в ней встретится скрипт без спец. атрибута типа async\defer отображене будет остановлено пока не загрузится И выполнится скрипт.

Вот собственно почему советуют сдвигать скрипты вниз. Но если без скрипта у тебя ничего не заработает, то это не имеет смысла. 

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

Худший ответ:
Ну и вопросы пошли. В боду только пишут, если есть какая то манипуляция с дом элементом. Гугл аналитик к примеру в хеад добавляют. фонт авесоме так же в head.