Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Какие знания требуются для js trainee?

Лучший ответ:
Чё-то смеюсь. Раньше вы хотели быть джуном. То, что за прошедшие два с лишним года вы свои амбиции поумерили - это хорошо. Правда, не до конца - ну да это ничего, ещё через два года наверняка дозреете до осознания того факта, что не бывать вам программистом. Отсюда кстати и ответ на непосредственно заданный вопрос - вам никакие знания не требуются. Успокойтесь, и идите работать в такси.

Худший ответ:
Чтобы компания могла себе позволить нанять стажера, у нее должны быть для этого ресурсы.
Маленькие компании как правило этого не делают.
Стажеры в основном - это окончившие либо оканчивавшие в данный момент студенты данной специальности.
Стажировка - это по своей сути отбор имб, у которых есть потенциал и куча теоретических знаний, но нет практического опыта дева и работы в команде.
Не советую вам думать в этом направлении.
Теперь про программирование.
Чтобы им заниматься нужно вваливать уйму времени - сутки на момент учебы, так как кейсов просто миллион , начиная от простых и заканчивая сложными шаблонами , которые к тому же еще нужно знать куда применять.
Пройдите первые главы любой книги по js для начинающих и конечно же освойте хоть на каком-то уровне работу с ДОМ.
После попробуйте написать, простое приложение - пример, игру в которой можно ставить ставки и в зависимости от рандомного значения выигрывать или проигрывать. Чуток улучшите ее, но без перфекционизма .
Ключ в том, что на момент начала разработки этого приложения вы не должны знать как его написать, 
в течении процесса вы должны апаться и делать для себя маленькие открытия.
И так далее пока не дойдете до приложений которые могли бы быть хоть кому-то полезны.
В перерывах между разработкой, брать время и доучивать теорию, неделю из месяца хотя-бы.
И это все до фреймворков!
И возможно тогда вы получите оффер, после бесплатного испытательного срока.
Советую вам поторопиться так как скоро, если не уже, фреймворк будет минимальной базой при получении оффера.
Это жестко, но это сработает.
Возможно вам повезет и другим образом, но надеяться не стоит.
Вопрос: Возможно ли работать Blender'ом на слабом ПК?

Лучший ответ:
Да, в принципе, можно.
Но на практике это зависит от того с на сколько тяжёлыми сценами (кол-во полигонов) вы будете работать и какое их предназначение. Трудно говорить про какую-то конкретную сферу. Теоретически, можно работать как в сфере архитектурной визуализации так и с киношными спецэффектами. Но тут всё зависит от того, что именно вы будете делать и как. Повторюсь: в принципе это возможно, но всё упирается в сложность сцен с которыми будете работать.

Если всё-таки привязываться к индустрии, то самыми "безопасными" в случае со слабым ПК будут игровая индустрия и WebGL (3Д сайты в браузерах). Потому что в этих индустриях изначально всё делается с расчётом на оптимизацию. Короче, если 3Д сцену можно посмотреть на телефоне при 60 кадрах/сек, то с ней можно работать и в Блендере даже на слабом ПК.

Вот пример качественно сделанного 3Д объекта, который можно и в играх использовать, и в браузере: https://threejs.org/examples/?q=gltf#webgl_loader_gltf
Покрутите сцену и посмотрите счётчик кадров в секунду в левом верхнем углу на вашем ПК.

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

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

Худший ответ:
Да ни какой. Есть стандарты и процедуры которые позволяют добиться надёжности. Все это описано в том числе и в руководствах по программированию, есть инструменты которые анализируют ваш код и выдают рекомендации , для медицины, пром автоматики и автомотива это практически неизбежно.
Вопрос: Есть ли возможность изменить рабочую область в windows/linux?

Лучший ответ:
В Линуксе легко - достаточно создать вертикальную панель и оставить её пустой. В винде панель задач всегда одна, её можно разместить вертикально слева, но кнопка Пуск останется скрыта в углу, так что в винде будет решение лишь на 50%. На скриншоте пример в Линуксе (DE = XFCE).


Худший ответ:
попробуйте "квадратное разрешение"  800×600, 1024×768, 1280×1024, например. это в винде. ну фулхд десятка делает квадрат и черные края в 1280×1024
Вопрос: Как называется параметр в CSS, который делает заливку адресной строки в браузере?

Лучший ответ:
Это не css, а мета-тег с довольно скромной поддержкой.

Худший ответ:
<meta name="theme-color" content="#your_color">
Вставь это просто в head, а #your_color, поменяй на свой цвет
Вопрос: Какой ноутбук выбрать для backend разработки в 2020 году?

Лучший ответ:
Не знаю ни одного уважающего себя бэкендера на маках. В основном маками пользуются фронтендеры, дизайнеры и менеджеры.
Трушные бэкендеры выбирают ноут под свои конкретные нужды. Обычно это SSD+HDD, RAM>=16 Gb, хорошая матрица, подсветка клавиатуры, желательно дискретная видеокарта для высокой нагрузки, Intel - для виртуализации и других вкусняшек.
Мак в этом плане обычно сильно обрезан и поэтому не подходит. Плюс ценник для этого обрезанного огрызка зашкаливает.

Худший ответ:
Много ядер (4 мало), много памяти (16 впритык), остальное на вкус и цвет.
Вопрос: Как проверить, встречаются ли какие-либо символы из одной строки в другой строке?

Лучший ответ:
Можно проще (если без регулярки):allowed = set("abcd") # разрешенные символы

password_ok = "babc" # валидный пароль
password_bad = "baz" # невалидный пароль

print(set(password_ok).issubset(allowed)) # true - пароль состоит только из символов allowed
print(set(password_bad).issubset(allowed)) # false, в пароле есть другие не разрешенные символы
В итоге функция:def password_valid(password, allowed):
    return set(password).issubset(set(allowed))

Худший ответ:
Лучше использовать регулярные выражения, см. модуль re стандартной библиотеки.
Но если сложно, можете использовать такую функцию:def check_password_for_chars(password, chars):
    for char in chars:
        if char in password:
            return True
    return False
Ну и для каждой проверки вызываете её 4 раза, указывая в качестве chars свои наборы символов.
Если потребуется проверять, что в пароле больше 1 символа из chars. Убираете return True из тела цикла. Добавляете в функцию третий аргумент, скажем min_count (минимальный счёт), и перед циклом добавляете локальную переменную, скажем count (счёт), со значением 0. Тогда в теле цикла, при каждом обнаружении искомого символа в пароле, Вы увеличиваете count на 1. И в конце проверяете, что count больше или равно min_count, чтобы вернуть True или False.
Но, во-первых, с регулярными выражениями решение будет короче и без цикла. Во-вторых, регулярные выражения очень гибкий инструмент. И в-третьих, они могут сильно пригодится в будущем.
Вопрос: Правильное ли использование принципов DDD, и чем заменить Repository?

Лучший ответ:
Вообще-то как раз Repository - это тот слой абстракции, который нужен, чтобы на уровне бизнес-логики (слой сервисов) абстрагироваться от способа хранения данных. То есть, очевидно, нужно использовать Repository.

Контроллер должен работать только с сервисным слоем. Моделью (Entity) является тот класс, на который вы маппите пользователей, прочитанных из XML-файла. То есть в репозитории надо сделать метод, читающий XML, формирующий коллекцию из Entity (юзеры) и возвращающий ее. На уровне выше (в сервисном слое) надо сделать метод, который как раз вызывает этот метод репозитория. Методы сервиса в свою очередь надо дергать из контроллера, либо из класса консольной команды, если код кроном вызывается. То есть из контроллера дергать репозиторий не принято. А сервисный слой нужен, чтобы в нем держать всю бизнес-логику.

Худший ответ:
Ну пусть репозиторий работает с файлом, какая разница какое хранилище, пусть читает файлы и собирает сущности в коллекцию
Вопрос: Почему js работает с классами и перестаёт с id?

Лучший ответ:
Потому что классов может быть много а айди должен быть уникальным и один.
В этом случае заметьте
let box = document.getElement s ByClassName('box-text1')[0];
Значит много.

Вот вписывая это.
let box = document.getElementsByClassName('box-text1')[0];
Вы обращаетесь как к массиву.

А у айди уберите и сработает
let box = document.getElementById('box-text1')[0];

Худший ответ:
getElementById вернёт первый элемент с переданным значением id, а так все элементы:
document.querySelectorAll('#input-form')
Вопрос: Каким образом можно заработать на сайтах?

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

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

Лучший ответ:
Одна валюта:

arr.reduce((acc, n) => acc + +(n.startsWith(`${currency} `) && n.match(/\d+$/)), 0)
Все:

arr.reduce((acc, n) => {
  const [ currency, sum ] = n.split(' ');
  acc[currency] = (acc[currency] || 0) + +sum;
  return acc;
}, {})

Худший ответ:
наверное так будет универсальнее)
const money = ['eur 10', 'usd 1', 'usd 10', 'rub 50', 'usd 5']
let res = new Map()

for (var i=0, len=money.length; i<len; i++) {
    let valuta = money[i].split(' ')
    
    if(res.has(valuta[0])){
      let price = res.get(valuta[0])
      res.set(valuta[0], price + Number(valuta[1]))
    }
    else{
      res.set(valuta[0], Number(valuta[1]))
    }
}

console.log(res);
Вопрос: Как правильно редактировать сайт с с помощью git?

Лучший ответ:
Могу предложить такие варианты:

Сделать так, чтобы не приходилось проверять так тщательно после обновления на удалённом сервере. Настройте свое локальное окружение для лучшего соответствия. 
Заведите на сервер поддомен, типа dev.mysite.org и проверяйте все там как удобно, прежде чем обновлять прод
Не используйте git на prod. Версионирование нужно для кода, а не сервера. Туда можно хоть архивом лить.


Ну и как комбо вариант, начать использовать ci/cd, тот же Travis. Обновилась ветка с подготовлены релизом - автоматом вылился на сервер по scp/sftp с адресом-поддоменом. Все устроило? Мердж в мастер и автоматом(на самом деле, лучше вручную или с ограничением по git tag) поехало на прод.

Худший ответ:
Вячеслав Климов  продолжу тут, в виде ответа.
Я понял ваши варианты по бекапам и причинам редактирования основного сайта...

С некоторых пор, я люблю использовать "копию продакшен окружения".
В вашем случае это может быть поддомен основного сайта или просто тестовый домен из бесплатного пула.
Вот на нем все править, добивать ся работоспособности, а после всех тестов и апрувов - лить на основной.
Дмитрий Шицков , советует правильные мысли, попробуйте такой вариант.
Если же вы фанат локальной разработки - то поднимите 1-2 докер контейнера, создайте в них свое окружение и используйте в работе (для удобства разработки код может быть в томах :) )
Вопрос: Почему jest так реагирует на import?

Лучший ответ:
Нашёл решение здесь: https://stackoverflow.com/questions/35756479/does-...
Для тех, кому лень переходить по ссылке, вкратце, добавил в корень проекта файл ".babelrc" с содержанием {
  "env": {
    "test": {
      "plugins": ["@babel/plugin-transform-modules-commonjs"]
    }
  }
}
После чего установил es2015 transform pluginnpm install --save-dev @babel/plugin-transform-modules-commonjs

Худший ответ:
Не могу понять, где используется "import { create } from 'domain'". Более того, вроде как, это модуль nodejs, который не надо использовать в тестах.
Попробуйте убрать эту строчку.
Вопрос: Как смириться с фактом что ты не топовый разработчик?

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

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

Лучший ответ:
Для button, select, input, textarea браузер устанавливает свой font-family (если открыть консоль разработчика, можно увидеть странный стили для тегов выше для которых указан не Ваш файл со стилями, а user agent stylesheet ),
избежать этого можно задав для тегов выше: font-family: inherit;

Худший ответ:
Пиши так: "font-family: 'Poppins', sans-serif;" Если и так не помогло, тогда ты link неправильно скопировал.
Вопрос: Не получается закомпилить пару строк?

Лучший ответ:
Используй для интендации табы, а не пробелы

Худший ответ:
Используй для интендации табы, а не пробелы
Вопрос: С чего начать учить функциональное программирование «одноклеточному»?

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

Может потом дополню, надоело печатать с мобилы.

Худший ответ:
Можно начать с Elm - язык очень простой и с коротким циклом разработки для не слишком сложного фронтенда (но требуется хоть какое-то знание html). Как раз для СДВГ.
Вопрос: Можно ли как-то значение получаемое из Date.now() перевести в дату?

Лучший ответ:
https://www.w3resource.com/javascript-exercises/ja...
а ведь надо погуглить

Худший ответ:
Moment js позволит вам форматировать как душе угодно. Хотя я бы руками делал, проще быстрее и в пределах возможностей браузера
Вопрос: Как сделать чтобы большая БД держала нагрузку?

Лучший ответ:
Ооо.... Вы это сейчас вообще серьёзно?

Если вы запускаете DBaaS платформу и не знаете что делать собственно с базами - то у вас не
Запускаю свою облачную платформу, код и архитектура создана с нуля.
У вас нет вообще абсолютно ещё ничего и уж архитектуры - в особенности. Кроме "идеи", над которой бьётся давно и много кто, при том имея ресурсы на собственные команды DBA.

Например: юзер пишет какой-то запрос и ему не нужно указывать на какой сервер что отправлять или откуда читать, для него это один сервер.
Значит этому юзеру достаточно ходить только на мастер.
Для сферического в вакууме приложения нет средств автоматически распределять запросы по репликам. И такое сделать вовсе невозможно без накладывания ограничений на использование. Например,
select somefunc();
Что делает эта функция? Она только читает данные и потому можно отправить на реплику или она пишет и потому должна быть на мастере? Хотите правильный ответ от контрибьютора postgresql? Это достоверно не знает даже сама база до тех пор пока не выполнит функцию.

Другой пример:
begin isolation level repeatable read;
select ...
update ...
commit;
Как максимум на запросе select вы должны уже знать можете ли вы эту транзакцию отправить на читающую реплику. Откуда бы вам это узнать заранее?
И прочие принципиально-нерешаемые вопросы.

DBaaS это не про большие базы. Как бы не хотелось маркетингу убедить в обратном. Это про небольшие или стартующие проекты, где проще переплатить сервису за относительно вменяемую настройку и сопровождение типовой конфигурации.

Худший ответ:
Используйте пуллеры соединений и балансировщики. Например, haproxy и pgbouncer для pgsql.
Изучите материалы, статьи, проведите исследование подходящих вариантов.
Вот статья с разбором примера от percona, может быть неплохой отправной точкой https://www.percona.com/blog/2018/10/02/scaling-po...
Вопрос: Как изучать Unity без youtube?

Лучший ответ:
Это начало конца, меняй деятельность, пока не поздно

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

Лучший ответ:
Поставьте какой-нибудь NAS типа Synology и там поднимите облако.
Доступ извне легко настроить пробросом портов.
Рекомендую.

Худший ответ:
Подключить как диск в ос вы можете ftp/http/dav. Проборос вы уже на своём устройстве см.. Nextcloud хорошо реализован WebDAV. Доступ через сервис WD у вас тоже есть. Я незнаю на какой объём ваша железка но их можно расширить до 40GB.
Вопрос: Стоит ли покупать онлайн курсы?

Лучший ответ:
Только если потраченные деньги мотивируют вас заниматься. Вся информация доступна также в виде книг, статей, докладов. Книги платные, остальное — нет.

Худший ответ:
все есть нашару , в том числе выбранные курсы

кроме приобретения опыта, вот им и займитесь
Вопрос: Какая инфраструктура должна быть для 24/7 парсера обновляющего БД?

Лучший ответ:
Универсальный ответ - "зависит". 
Нужно сделать PoC, посмотреть на запросы, оптимизировать их. Потом оценить траффик в продакшен и сделать load test. По следам это оптимизировать и масштабировать.
С точки зрения инфраструктуры - если много reads, то slave[s] очень помогут. 
С точки зрения архитектуры - засылка задач в очередь и вытаскивание из нее помогают сгладить пики.

Худший ответ:
Универсальный ответ - "зависит". 
Нужно сделать PoC, посмотреть на запросы, оптимизировать их. Потом оценить траффик в продакшен и сделать load test. По следам это оптимизировать и масштабировать.
С точки зрения инфраструктуры - если много reads, то slave[s] очень помогут. 
С точки зрения архитектуры - засылка задач в очередь и вытаскивание из нее помогают сгладить пики.
Вопрос: Как сделать обход матрицы по диагоналям?

Лучший ответ:
Написать машину состояний.enum { MoveDownRight, MoveUpLeft } state = MoveUpLeft;
while (TRUE) {
   switch (state) {
   case MoveUpLeft:
       move_up_left();
       break;
   case MoveDownRight:
       move_down_right();
       break;
    }
    draw_pixel();
}

Худший ответ:
Используй циклы вместо условий. 
Примерно так:int order = -1;
int x=0;
int y=maxY-1;
while (x<maxX || y>0)
{
     while (x<0 && y<0) {x+=2; y++; order*=-1};
     while (x>=maxX && y>=maxY) {x--; y-=2; order*=-1};
     while (x<0 ) {x++; order*=-1};
     while (y<0 ) {y++; order*=-1};
     while (y>=maxY ) {y--; order*=-1};
     while (x>=maxX ) {x--; order*=-1};

      gotoxy((x+1),(y+1));
                         printf("1");
      x+=order;
      y+=order;
      Sleep(150);
}
Вопрос: Как удалить сообщение бота с помощью aiogram?

Лучший ответ:
Всё должно удаляться, есть рабочий проект.
Возможно прав администратора в группе нет?
Вот пример:
import asyncio
from contextlib import suppress

from aiogram import types
from aiogram.utils.exceptions import (MessageToEditNotFound, MessageCantBeEdited, MessageCantBeDeleted,
                                      MessageToDeleteNotFound)

async def delete_message(message: types.Message, sleep_time: int = 0):
    await asyncio.sleep(sleep_time)
    with suppress(MessageCantBeDeleted, MessageToDeleteNotFound):
        await message.delete()
...
msg = await message.reply("Я удалюсь через 30 секунд")
    asyncio.create_task(delete_message(msg, 30))

Худший ответ:
@dp.callback_query_handler(text="тут название твоей callback_data")
async def call_main_menu(call: CallbackQuery):
    await bot.delete_message(chat_id=call.from_user.id, message_id=call.message.message_id)
Вопрос: Как сделать так чтобы при закрытие формы основная форма не закрывалось?

Лучший ответ:
если освоили только дизайнер форм - ни как. что бы понять почему, и в какую сторону копать - изучите повнимательнее код запускаемого модуля. обычно он в файле Program.cs
там будет что то вродеusing System;
using System.Windows.Forms;

namespace my_namespace
{
    internal static partial class my_program
    {
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new my_main_form());
        }
    }
}
как только вы поймете, куда переходит управление после закрытия экземляра my_main_form(), будет проще искать или придумывать решения для ваших хотелок.

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

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

Худший ответ:
Я так понял это WinForms? Как вариант на событие закрытия главной формы повесить обрабтчик который будет отслеживать открыта ли вторая форма, если открыта, то он будет скрывать окно. Ну и на событие закрытия второй формы отслеживать если первое окно скрыто, то закрыть и его чтобы завершилась программа.
Еще один такой себе вариант, на открытие нового окна создаем новый поток и запускаем его, в нем открываем окно через showdialog, но оно откроется как отдельное окно не зависимое от первого и в тоже время засинхронит поток, тоесть пока оно не закроется поток не завершится, а пока поток не завершиться и программа не завершиться. Типа такого
Thread t = new Thread(new ParameterizedThreadStart((o) =>
            {
             Form   form = new Form2();
                form.ShowDialog();
            }));
            t.Start();
Вопрос: Функционал, потом верстка, или наоборот?

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

Худший ответ:
3 вариант. Вы пишите тз, в котором ясно описано что должно быть. Отдаете верстальщику и прогеру. Они вместе начинают работать, один верстает, другой подготавливает функционал. После того, как верстка готова, программист легко и непринужденно её натягивает на свой фунционал
Вопрос: Сколько места выделить на SSD под Windows 10?

Лучший ответ:
Выдели все на windows 10, нет смысла делить ssd

Худший ответ:
нет смысла делить 240ГБ
Вопрос: Как мне подсчитать сколько всего id в таблице sql через язык python?

Лучший ответ:
К сожалению, из вопроса не понятно как ты из питон работаешь с базой. Через клиент, через курсоры? Потому останется открытым вопрос как тебе из самой базы результат запроса в питон втянуть.

А в общем, тебе надо выполнить в базе запрос типа:SELECT
  COUNT(table.id) AS num_id
FROM tableв num_id будет твой ответ.

Худший ответ:
выведи в переменную id_list список всех id
и выведи их количество
id_list = #Список ID(из БД прочитай)
print(len(id_list))
Вопрос: Почему не могу получить DNS сервера имён в CentOS?

Лучший ответ:
1. GETAWAY в файле конфигурации пишется как GATEWAY
2. Не увидел, где в файле конфигурации указан DNS-сервер (директива DNS1=)

Худший ответ:
Ну пропишите в resolv.conf cloudflare и прочий гугл ДНС. 

nameserver 1.1.1.1
nameserver 8.8.8.8
nameserver 8.8.4.4