pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Как проверить открытие письма?

Лучший ответ: Из соображений безопасности открытие ресурсов по внешним ссылкам многие почтовые клиенты и почтовые сервисы не делают вообще. Тем более когда речь явно идёт о картинке размера 1x1, которую могут игнорировать намеренно (лучше уж тогда не указывать размеры, пусть клиент скачает картинку эту 1x1 и узнает размер только после этого).

Надо понимать, что E-mail - это канал с негарантированной доставкой до получателя без шансов проверить факт доставки/прочтения. Письмо может вообще не дойти до получателя, может дойти до "Спама", может дойти но сразу пойти в под нож - но мы об этом не узнаем. Все эти пиксельные картинки, оборачивания ссылок в персонально трекируемые, "запрос подтверждения" - всё эти попытки хоть как-то обойти эти ограничения всё равно ни к чему получателя не обязывают. Получатель может всё это полностью проигнорировать.

Или, как вариант, картинку почтовый сервис получателя может скачать заранее и положить в кэш, что также ничего не означает о получении письма. Её также может скачать антивирус почтового сервиса или получателя, чтобы проверить.

Я всегда принципиально отказываюсь от всех подтверждающих получение действий и фокусов, потому что если отправитель ПОЛЕНИЛСЯ приаттачить все картинки к письму - то значит я посмотрю на его письмо без картинок и по ссылкам переходить не буду вообще. Не заслужил. Ничего ценного в таких письмах я ещё ни разу не видел.

Единственное, для чего все эти средства помогают - примерно оценивать степень прочтения в сравнении с предыдущим опытом. Скажем, вчера письмо прочитало 30% получателей, это может означать что его прочитало, например,на самом деле 60%, но лишь половина подвержена трекингу. А если сегодня прочитало 10%, значит, что-то случилось: письмо хуже дошло до получателей, письмо хуже привлекло их внимание... (Все цифры, конечно, от балды, они имеют иллюстративный характер)

Да и вообще, в наше время почту читает всё меньше людей.

Худший ответ: в общем случае никак

для массовых делают аппроксимацию по Postmaster Tools, речь, конечно, не о конкретном, а о статистике

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

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

* для сохранения прав нужен ключ -p
* для сохранения extended attributes нужен ключ  --xattrs
* для обнаружения и сохранения информации о дырявых файлах sparse ключ -S
* символические ссылки будут сохранены как ссылки по умолчанию, поведение можно по разному менять опциями (например хранить как файл или к примеру при распаковке пробовать создать hardlink вместо symlink и т.п.)

Упаковывать можно потом полученный tar архив или лучше в процессе, ключ -a автоматически определит архиватор по расширению, чем угодно. Никто не мешает тебе создать архив без его сохранения просто отправляя его в момент создания в никуда:
tar -cjf /dev/stdout . | wc -c
будет сжимать bzip2 (ключ j) текущий каталог с подкаталогами  и отправлять его в команду wc, которая просто посчитает его размер в байтах и выведет на экран. Повтори команду поменяв ключ j на J (это xz), z (это gzip) и т.п. и сравнивай полученные размеры (советую попробовать zstd)

p.s. как альтернатива, можно архивировать не файлы а весь раздел, с помощью набора утилит partclone (поддерживает все даже что то типа ntfs) можно создать копию раздела, в котором не будут сохранены сектора, помеченные как свободные, при этом скорость работы утилиты сравнима с dd (а это вообще просто посекторное копирование) и в большинстве случаев позволяет менять размер раздела, на который будет все это восстанавливаться (с ntfs редко но могут возникнуть проблемы при уменьшении)

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

Худший ответ: .gz
ИМХО...
Вопрос: Стоит ли идти в NoCode разработку?

Лучший ответ: Как бы вайти в айти, но так, чтобы не учить ничего по айти?

Худший ответ: На мой взгляд noCode как раз и сделан для того что бы люди с 0 знаниями могли тестануть какую то гипотезу без привлечения сторонних людей т.е. самостоятельно.
Вопрос: Стоит ли изучать Autodesk Inventor (если знаешь SolidWorks и Autodesk Fusion 360 и продолжаешь в них совершенствоваться)??

Лучший ответ: Я пробовал все три программы, хоть и не профессионально.
Имхо - если нет какой-то задачи, где нужен именно инвентор, то смысла отдельно его изучать нет. Логика работы в нём такая же, как и в солиде.

Худший ответ: Я пробовал все три программы, хоть и не профессионально.
Имхо - если нет какой-то задачи, где нужен именно инвентор, то смысла отдельно его изучать нет. Логика работы в нём такая же, как и в солиде.
Вопрос: Как в 2022 году лучше размещать Django проекты на IIS?

Лучший ответ: В 2022-м лучше не использовать IIS.

Худший ответ: Зачем????
Возьми Аппч или Nginx

Ну и ясен что ОС лучше Линукс воспользоваться
Вопрос: Heroku ошибка. Что делать?

Лучший ответ: Ты читаешь вывод ошибки или сразу строчишь сюда?

Requested runtime (python-3.8.2) is not available for this stack (heroku-20).

Supported runtimes:

python-3.9.6 on all supported stacks
python-3.8.11 on all supported stacks
python-3.7.11 on all supported stacks
python-3.6.14 on all supported stacks


Худший ответ: Ты читаешь вывод ошибки или сразу строчишь сюда?

Requested runtime (python-3.8.2) is not available for this stack (heroku-20).

Supported runtimes:

python-3.9.6 on all supported stacks
python-3.8.11 on all supported stacks
python-3.7.11 on all supported stacks
python-3.6.14 on all supported stacks
Вопрос: Как-то ставят удалено софт на пк — как узнать через что и как?

Лучший ответ: Добрый день - узнал об этом через ccleaner
Ну для начала нужно удалить ccleaner - это тот ещё малварь.

Обе записи что про powershell, что про OpenSSH выглядят нормально. Но данных не достаточно - приложи сюда скрин из планировщика задач/автозапуска со всеми опциями.

антивирусы почему-то это все не обнаруживают 
Потому что это и не вирусы вовсе.

Худший ответ: Пока (включая пункт 12) не видно ничего криминального. Совсем. 
Что касается ccleaner-а, то не так страшна эта программа, как её пользователи! :)
Кто хорошо понимает, что и как она делает, тот и без неё обойтись может. А кто не понимает, тому лучше ей не пользоваться. Удалите её - спокойнее будет.
Вопрос: Какую легковесную IDE выбрать для C++?

Лучший ответ: Я сам для себя использую Qt Creator. По мне очень удобная и шустрая среда. Однако, хочу предупредить: в последних версиях присутствует модуль clangd (модель кода CLang): штука очень полезная, позволяющая находить различные косяки на лету без необходимости собирать проект, однако, она жрёт оперативку очень знатно. Поэтому, если машина слабая, то лучше отключить эту штуку. Мне лично среда ОЧЕНЬ нравится не только за её легковесность, но и за встроенный функционал по рефактрорингу (умному переименованию элементов кода, например, быстрому созданию тел функций и методов из прототипов сразу в нужном месте, и т.п.). Сравнивал я с Clion: последняя удобная по части быстрых подсказок и некоторой автоматизации по исправлению косяков, но по большей части менее удобная и невероятно тяжеловесная (да "здравствует" Java).

Худший ответ: докину сверху к ответам
eclipse плюс cdt

в современных реалиях можно считать легковесным
p.s. eclipse вообще шикарный проект, догружаешь плагинами поддержку языков и радуешься, мне кажется по сравнению с vs code меньше хаоса
Но есть ощущение что разработчики и сообщество разочаровались в проекте.
Вопрос: Как в MS Edge поменять папку для загрузок?

Лучший ответ: Обратитесь к администратору домена: edge+download+path+GPO.

Худший ответ: А это не читали?
Вопрос: Скопировать текст?

Лучший ответ: document.execCommand("copy") копирует то, что сейчас выделено. 
Если текст на странице не выделен, то и ничего не скопируется.

Можно программно выделить текст на странице, а затем вызвать document.execCommand("copy")
Но это дичь, какая-то.
Более того, document.execCommand() вышла из употребления.

Так что можно, как белый человек, использовать navigator.clipboard.writeText()

navigator.clipboard.writeText("123")

Худший ответ: Я как-то давно писал метод для копирования. Года 2 назад это было, поэтому не скажу что и почему сделал так xD 
но работает
function copyToClipboard(text) {
    let span = document.createElement('span');

    span.style.position = 'absolute';
    span.style.top = 0;
    span.style.zIndex = -999;
    span.style.opacity = 0;
    span.style.color = 'initial';
    span.style.fontSize = 'initial';
    span.style.whiteSpace = 'pre';

    span.appendChild(
      document.createTextNode(text)
    );

    document.body.appendChild(span);

    let range = document.createRange();
    let selection = window.getSelection();

    selection.removeAllRanges();
    range.selectNode(span);
    selection.addRange(range);

    let success;

    try {
      success = document.execCommand('copy');
    } catch(e) {
      success = false;
    }

    selection.removeAllRanges();

    document.body.removeChild(span);

    return success;
  }
Вопрос: Понижение частоты процессора под управлением Windows 10 — как это исправить?

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

Перегрев может быть как из-за времени (термопаста, термопрокладки, пыль), так и из-за плохой архитектуры охлаждения с завода.

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

Лучший ответ: нужно просто создать пароль для приложения и его указать в конфигах smtp

Худший ответ: В перспективе - нет. Сейчас MS продвигает идею безпарольной аутентификации в ПК. И они ее добьют 100%. Верю в железную хватку синего гиганта. Google несколько лет назад сдал продвигать MFA для почты. Пока - в рекомендательном режиме. Но скоро, когда они протестируют на 80% юзеров - то остальные перейдут туда едином порядке. Просто у вас больше не будет опции пароля как единого способа логина. Поэтому SMTP или другой протокол - здесь не суть важно. Будут важны сеансовые токены и многофакторка.
Вопрос: Как вычислить среднюю оценку если есть непроголосовавшие люди?

Лучший ответ: Ну раздели на долю проголосовавших, чего тут выводить-то и причём тут теовер?

5 человек оценили по 5 баллов. 2 человека воздержались (по 0 баллов). Сумма 25, среднее 25/7 = 3.5714. Доля проголосовавших 5/7 = 0.714

3.5714 / 0.714 = 5 средний балл тех, кто голосовал

Ну или, раз ты знаешь, сколько человек не проголосовало, сразу вычти их из подсчёта (25 / (7 - 2)) = 5

Худший ответ: Считаете мат. ожидание у неголосовавших (на основе вероятности каждой оценки), умножаете на долю неголосовавших и складываете с произведением среднего у голосовавших на их долю.
Просто взвешенная сумма.
Вопрос: Материнская плата для win10 + ubuntu?

Лучший ответ: на что смотреть ? 
1. На бренд. Точнее, пока есть Asus и Gigabyte, не смотреть на другие бренды.
2. На 8 pin питания для процессора, раз у вас R7.
3. На наличие SSD M.2 разъема, поскольку он уже стал стандартом.
4. Ну, и на цену - не переплачивать за богатый геймерский обвес, если он не уперся.

А насчет ОС - это на ноубучные материнки напаивают всякую win-only дешевку, а то, что в десктопных платах указанных брендов, обычно Линукс поддерживает из коробки, а для Десяточки приложены дрова.

Худший ответ: Ненужно. Обе бкдут работать нормально. 
Только я бы на интел собирал...
Вопрос: Возможно ли извлечь данные через =IMPORTXML с Wildberries?

Лучший ответ: Нет

Как проверить можно ли использовать скрипты и формулы Google для получения данных https://t.me/contributor_pw/299

Худший ответ: Не уверен что можно, а если можно, что это хорошая идея. Вёрстка меняется периодически и данные слетают.
Для этого разработан официальный API, через него можно забирать почти всё что душа пожелает.  В реальной работе парсинг WB страниц тоже используется, но не как основной метод.
Если сильно хочется - посмотрите что видит гугл, когда запрашивает данные
/**
* Открывает URL и возращает код страницы
* Telegram - @ProgrammerForever
*
* @param {string} URL URL который нужно открыть
* @param {boolean} isCut Указывакт, нужно ли обрезать страницу до 50000 символов по длине, по умолчанию false
* @param {boolean} noScript Указывакт, нужно ли удалять скрипты из кода
* @return Исходный код страницы
* @customfunction
*/
function getHTML(URL,isCut,noScript) {
  if ((URL === undefined)||(URL == "")) { return "#ОШИБКА Пустой URL";};
  if (isCut === undefined) {var isCut=true;};
  if (noScript === undefined) {var noScript=true;};
  if (URL.map){     //Если задан диапазон
    return URL.map(getHTML);
  }else{
    try {
      var payload = {
        'rand':(new Date()).getTime()
      };
      var headers={
        'Connection': 'keep-alive',
        'Cache-Control': 'max-age=0',
        'Upgrade-Insecure-Requests': 1,
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3',
        'Accept-Encoding': 'gzip, deflate, br',
        'Accept-Language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7'
      };
      var options = {
        'method' : 'get',
        'headers' : headers,
        'payload': payload
      };
      
      var response = UrlFetchApp.fetch(URL,options);
      var charset=response.getAllHeaders["charset"];
      //var responseText=response.getContentText(charset?charset:"windows-1251");
      var responseText=response.getContentText(charset?charset:"UTF-8");
      if (noScript){ 
        responseText=responseText.replace(/<script[^>]*>(?:(?!<\/script>)[^])*<\/script>/gmi,"");
        responseText=responseText.replace(/<!--.*?-->/gmi,"");
        responseText=responseText.replace(/<link.*?\/>/gmi,"");
        responseText=responseText.replace(/<meta.*?\/>/gmi,"");
        responseText=responseText.replace(/[\n\r\t]/gmi,"");
        
      };
      if (isCut&&(responseText.length>50000)){return responseText.substring(0,50000);}else{return responseText;};
    } catch (err) {
      //return JSON.stringify(err);
      return "#ОШИБКА "+err.message;
    };
  };
};

Или в IMPORTXML поставить * в запросе
Вопрос: Есть ли документация или стандарт о математике?

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

Худший ответ: Существую стандартны о конкретных формулах, алгоритмах вычисления, форматах записи математических выражений. Пример
Вопрос: Работа C++ Junior в 2022?

Лучший ответ: Ты пишешь 
Я изучаю C++ лет этак 12 (с 6 класса, получается).
что с этого можно понять? Что ты настолько крут что тебе сам чорт не брат? 

Я немного дурак и в кресты откровенно влюбился.
Вот тут - вообще непонятно! Сам себя взял и так низко уронил. Почему - дурак? Может ты и на собесах так о себе отзываешся? Так - нельзя. Тебя оценивают не только по скилам но и по уверенному тону голоса. В США это еще важнее. На тебя смотрят с прищуром. Каков наглец а? Думают. Но ладно. Дадим ему лидерскую позицию. 

Всё же остальное - сплошь и рядом QT и анрил
По поводу Unreal Engine. Мой знакомый лид игровой индустрии (не в РФ) говорит что при прочих равных условиях он сразу возьмет начинающего человека имеющего опыт Unreal быстрее чем среднего по С++ но без знаний оного. Таков рынок.

Худший ответ: Евгений Шатунов Дал в комментариях исчерпывающий ответ на вопрос.
Вопрос: Есть ли хостинги поддерживающие Python Socket или как сделать так, чтобы я мог хостить сервер своего проекта?

Лучший ответ: любой VDS/VPS и cloud IaaS  (например AWS EC2 или аналоги).

Худший ответ: Арендуйте vps и разверните на нём серверную часть
Вопрос: React JS. Почему fetch() делает два запроса?

Лучший ответ: App рендерится дважды из-за React.StrictMode.

Но вообще, делать вот так запросы противопоказано. Делай в useEffect

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

Лучший ответ: Программист

Худший ответ: Программист, все зависит от API платежных систем. Занимался подобным, если требуется отпишите
Вопрос: Сервер с ESXI 6 не видит более 20 USB флешек, в чем проблема?

Лучший ответ: Это ограничение самого хоста ESXi
You can add up to 20 USB devices to a virtual machine, which is the maximum number of devices supported for a simultaneous connection to one virtual machine. The maximum number of USB devices supported on a single ESXi host for a simultaneous connection to one or more virtual machines is also 20.

Худший ответ: про ограничение вам уже сказали, алтернативно используйте USB-hub сетевой и ОС сожрет все оставщие флешки
Вопрос: Умеют ли поисковики искать по файлам (хешам файлов)?

Лучший ответ: Смотря по каким файлам. По текстовым (doc, pdf, txt) ищут давно и успешно. Анализируют ли поисковики информацию в mp3 файлах? Не встречал такой информации (в том числе и про хеш). Знаю, что youtube анализирует видео на предмет плагиата, может прочесть текстовую информацию, которая вставлена в видео.

Пользователь не может искать mp3 файлы так как картинки. Такого нет инструмента. Поиск в основном идет по контенту, метаданным страницы и файла

Худший ответ: если про музон, то подкинь шазаму - он с большой вероятностью тебе ответит что за мп3.
обывательский поисковик не обучен искать по хешу, т.к. обыватель не знает что такое хеш. и тем более никогда не ищет подобные имеющемуся файлы :)
можно поискать по хешу в dc++ и подобных но зачем ??
Вопрос: Как понизить напряжение с 12 до 5v?

Лучший ответ: 1) Лучше всего (с точки зрения КПД) - поставить DC-DC преобразователь. Можно купить готовый модуль, или расковырять какой-нибудь автомобильный телефонный зарядник. Там как раз 12В -> 5В
2) Можно поставить 7805 стабилизатор (обычно его называют КРЕНкой). Минимум обвеса, можно напаять объёмным монтажом на ноги
3) Если хочется резистор, то можно посчитать. 
Ток через всю цепь I = 200мА = 0,2А.
Падение на резисторе Ur = 12В - 5В = 7В
Сопротивление резистора R = Ur/I = 7В/0,2А = 35Ом
Мощность резистора P = I*I*R = 0,2А*0,2А*35Ом = 1,4Вт
Т.е. нужен резистор на 2Вт (или больше) на 35Ом (или немного больше)
Подключать его - последовательно, через любой провод, но обычно это плюс

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

Лучший ответ: Надо перебирать узлы – Nodes – в свойстве childNodes у label.

Текст будет в отдельном узле с типом Node.TEXT_NODE и именем nodeName == "#text"

Методом Node.replaceChild() заменить его на добавляемое под-дерево.

snippet

Худший ответ: Каюсь, что сделал на jquery (а не на ванильном джсе), но итог устраивает полностью:
$('input[value="Вася"]')
    .hide()
    .parents('label')
    .append('<div>my content</div>')
    .contents().filter(function(){ return (this.nodeType == 3);}).remove();
Вопрос: Правильно я планирую развернуть сеть из серверов?

Лучший ответ: Скорее всего (не видя код сложно сказать точно) корень вашей проблемы в том, что данные с сайтов получаются последовательно. В таком случае вам достаточно будет выполнять запросы параллельно с помощью https://docs.guzzlephp.org/en/stable/quickstart.ht... или https://www.php.net/manual/ru/function.curl-multi-...

Худший ответ: Не совсем понятно, почему именно для вас 4,1 секунды - это долго, какие вообще требования закладываются? Как вариант предлагаю рассмотреть след. конфигурацию:

Разбить скрипт на 2: Первый будет делать запрос на ваши сайты, получать ответ и сохранять в спец. таблицу. Второй будет брать новые данные из этой таблицы, запускать нужный обработчик, разбирать сохраненный ответ и обновлять нужные вам данные в бд. В общем классические очереди  (гуглить по словам php queue, php jobs)

Преимущества:
1. Разделены получение и обработка данных
2. Каждую часть скрипта можно отдельно модифицировать (например, получение через параллельные запросы) 
3. Обработчиков очереди можно делать столько сколько вам нужно
4. При увеличении кол-ва сайтов время выполнения одного запроса не изменится.
Вопрос: Зачем при чистке ПК вычищать пыль НАЧИСТО?

Лучший ответ: Зачем при чистке ПК вычищать пыль НАЧИСТО?
Ради эстетического удовольствия.

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

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

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

Неужели за 18 лет активной ИТ деятельности не наработались навыки гугления дорожных карт? Или есть мысли что на тостере составят индивидуальный гороскоп с учетом личных привязанностей? 40 лет, а вопросы как у 15-летнего.

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

На 40летних смотрят нормально. И вообще эта тенденция о малолетних сеньорах существует только в СНГ, где коммерческая разработка более-менее началась после 2000-2005, а не в 1980-м и раньше, как зарубежом.
Поэтому разработчиков, которые до этого момента что-то активно разрабатывали за деньги очень немного, еще и большинство из них уехало. Вот и выходит что, скажем, 50-летних разработчиков, которые сразу начали именно как разработчики и уже 30 лет как разрабатывают - в xUSSR ну может пару тысяч. Но это потихоньку меняется - подрастают люди, стареют.

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

Худший ответ: Roadmap для android developer-а.
https://github.com/mobile-roadmap/android-develope...

Я в сфере веба, но тоже уже приелось, изучаю потихонечку android dev, делаю свои небольшие pet проекты. Как выше написали "делай для себя и детей", разработал 2 развивающих приложения и пару вспоминающих приложения для людей одно связано по JS второй блокнот.

По поводу с чего начать, сейчас очень много доступных ресурсов по которым можно потихоньку брать и обучаться. Приобретал курс(ы), такое себе. Многое на гуглить можно, есть чаты в телеге.