Vikhrmodels/habr_qa_sbs huggingface dataset:
Вопрос: Переходить ли с frontend на backend?

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

Должна быть личная химия и интерес.

В итоге надо пробовать и решать для себя. В конце концов, определенный опыт бекенда не будет бесполезным, расширив кругозор и повысив конкуретноспособность на рынке.

Худший ответ:
а на фронтенде порой сидишь и мучаешься много часов с каким-нибудь кастомным скроллом или какой-то другой херней
Это не "херня". Быстрый, удобный, понятный интерфейс - это серьёзная наука, которую лишь немногие из фронтендщиков сумели постичь.

И на бэкэнде тоже придётся мучиться, только с другими вещами: оптимизацией БД, улучшением производительности, отказоустойчивой кластеризацией.

Грамотный специалист найдёт работу на фронтэнде, бэкэнде, системном программировании, нейросетях, робототехнике... где угодно.
Вопрос: Как найти ssh public key на макбуке?

Лучший ответ:
сгенерируй новый, делов то.

Худший ответ:
В первую очередь у пользователя должен быть приватный, а публичный должен быть на удаленном сервере.
Публичный можно перегенерировать из приватного.
Либо вообще сгенерируйте новую пару.
Вопрос: Требование «Хорошое/отличное знание JS» к джну, что хочет услышать работодатель?

Лучший ответ:
Это субъективная оценка работодателя. Тут может быть что угодно: от «я в принципе умею» до «я знаю как работает V8 изнутри»

Худший ответ:
Работодателю, вероятно, нужно, чтобы сотрудник справлялся с несложными рабочими задачами на JS самостоятельно. И не приходилось за ним переделывать.
Несложные — это не писать SPA с нуля на React/Vue, но может, внести минимальную правку или прикрутить плагин на фронт.

Кандидат же, полагая, что «я хорошо знаю JS», скорее завысил самомнение и просто не знает, чего он ещё не знает.

Так, что если вы сильно сомневаетесь, что хорошо знаете JS, но при этом способны в чужом коде фронта примерно разобраться и понять, что какой участок делает  — смело отзывайтесь на вакансию.
Вопрос: Изучать ли чистый JS backend разработчику?

Лучший ответ:
Я вам даже больше скажу - даже jQuery уже никому не нужен.

Худший ответ:
Как говорится: "jQuery такой мем...", лучшу ванилу изучать
Вопрос: Где используется c#?

Лучший ответ:
Последние проекты:
* crash report  - для мобильного приложения
* Система телеметрии - для обучающих курсов, время на странице, вопросы , траектория мыши, возвраты
* Импорт из фиас
* Xamarin приложение
* "Клей"  для системы наведения стрелкового комплекса

В общем для всего! Я знаю C# и забиваю им все!

Худший ответ:
Последние проекты:
* crash report  - для мобильного приложения
* Система телеметрии - для обучающих курсов, время на странице, вопросы , траектория мыши, возвраты
* Импорт из фиас
* Xamarin приложение
* "Клей"  для системы наведения стрелкового комплекса

В общем для всего! Я знаю C# и забиваю им все!
Вопрос: Имеет ли смысл использование Docker?

Лучший ответ:
Импакт от докера по ресурсам довольно низкий, но для такого куцого сервера он может быть ощутим.
Тонкую настройку он не обеспечит, а сложностей добавит.
Про лоад балансер забавно. Какой смысл заморачиваться с распределением нагрузки на калькуляторе?
На счет утечки - исправить таки стоит. Что касается восстановления при падении - смотрите в сторону supervisord, что касается убивания обожравшегося процесса - oom killer.Те, кто в теме, подскажите, насколько это оправдано(docker-compose уже собран и готов к работе)?
Для dev целей - оправдано, для оркестрации в рамках одной машины - оправдано.Чем лучше оркестрировать docker-compose
Да как бы сам docker-compose вполне себе оркестрирует на одной машине.как обновлять приложение без простоя
Это вопрос процесса разработки. Само приложение должно разрабатываться так, что бы в момент релиза могли существовать как минимум две версии релиза.
Но, у вас по утечке ребутается php-fpm, не парьтесь.как рассчитывать необходимые ресурсы для контейнеров?
На основании средней и пиковой нагрузки.
https://www.youtube.com/watch?v=lHpVxk9TPA8

Худший ответ:
Шта? Докер на микро ВМ? Что там балансировать то? И да, зачем что-то балансировать внутри одной ВМ? Балансировать надо между несколькими. В этом случае можно обернуть в докер пыхочные приложеньки, на отдельной вм поставить nginx без доокера и настроить проксирование.
Имхо, на такой ВМ докер выглядит оверхедом
Вопрос: Какой микроконтроллер выбрать для очень серьезных задач? Siemens? А Модель?

Лучший ответ:
Все это конечно здорово, но...
"игрушечный" Arduino и промышленный Siemens это ооочень разные вещи. Пройдет много месяцев экспериментов, потрачено много долларов и выслушано туеву хучу матюков от начальства пока вы получите более менее вменяемый результат. 
Реально все решается намного проще, находите подходящие готовое решение, приходите с ним к начальству и объясняете, что сэкономить "рассчитывая только на свой опыт" (которого как я понимаю ни у вас, ни у вашего начальника нет в принципе) особо не получится. Готовое решение это не просто установленные двигатели, шаговики и контроллеры, это сбалансированный программно-аппаратный комплекс

ЗЫ. Поверьте, в итоге времени ресурсов и денег на самодеятельность вы потратите намного больше чем на готовое решение. В любом случае подыскивайте себе новую работу

Худший ответ:
А еще есть GE, Fanuk, Phoenix, Owen... И много чего еще. Просто Сименс: 
1) Поставляет ВЕСЬ спектр устройств по автоматизации (от датчика, контроллера, сетевого оборудования до РСУ)
2) Имеет разветвленную сеть учебных центров и техподдержки по ВСЕЙ России
А если чего нет в Сименсе, то есть у партнеров.
А амеров я бы сразу убрал - а вдруг введут санкции? И где брать железки?
Вопрос: Как установить Windows под Linux?

Лучший ответ:
Поверь мне поставь на отдельный диск.
рано или поздно одну из ос ты захочешь снести
так вот разбираться при таком опыте с загрузчиками и выпиливать их  тебе не понравится
Просто отключи 1 диск поставь на 2 в это время винду и  подключи оба диска к компу. при загрузке  системы  просто на F8 переключай диски при старте.
так ни одна из ос не будет знать о существование друг друга.

И если поставить линукс на винду еще как-то можно начинающему юзеру
То винда принципиально все сносит к хренам. 

А там особенностей миллион вплоть до какой у тебя биос, какие диски, и какой версии линукс.
Тебе оно нужно ?

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

Худший ответ:
Как я понял нужно установить две системы на одном диске, в целом ничего сложного (я правда устанавливал не дебиан, а убунту и винду на один диск, но разницы вроде не должно быть,):
1) записать образ винды на флешку я делал через rufus
2) установить винду с этой флешки
3) иногда нужно загрузиться с live-cd/usb и починить grub,  т.к. иногда установка винды затирает раздел и вы сможете загружать только винду (у меня  так было по крайней мере (хотя можно обойтись без этого только вроде сначала винду придется устанавливать)), только взаранее советую почитать статьи на эту тему и вынести команды/ссылки в отдельное место
4) после починки должно все нормально работать

Я так устанавливал две системы на один HDD, и также на разные hdd, разницы не было, с момента установки прошло наверное около года, все работает стабильно
Вопрос: Нужен ли для разработки на Java мощный компьютер\ноутбук?

Лучший ответ:
ДА! Чем круче - тем лучше: JVM - java virtual machine. Виртуальная машина очень требовательна при запуске (инициализации): чем быстрее работает окружение (cpu+ram) среды разработки - тем лучше.

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

Лучший ответ:
Реализуйте свой split().
Берёте строку и в цикле от первого и последнего символа проверяете, является ли символ пробелом. Если нет - добавляете этот символ во временную строку. Если да, то добавляете эту строку в динамический массив строк, а временную строку очищаете. В конце возвращаете динамический массив. Fini.
Или вообще на Qt переходите.

Худший ответ:
Ребят, я нашёл элегантное решение этой задачи 
#include <iostream>
#include <vector>
using namespace std;


int main() {
    int n;
    cin >> n;
    vector<int> v(n);
    for (auto& it : v)
        cin >> it;
    for(auto& i:v)
    {
        cout<<i;
    }
}
Вопрос: Почему так странно происходит трассировка маршрута?

Лучший ответ:
На третьем хопе ваши пакеты уходят в MPLS сеть мегафона - поэтому вы не видите путь прохождения через него.

Худший ответ:
 traceroute до любого адреса
Полагаю что не до любого, а до хорошо известных и популярных. 
Можно попробовать посмотреть маршрут например на  www.govt.nz 
В общем надо радоваться что у мегафона хороший пиринг и он имеет короткие (и быстрые) стыки с крупняками.
(естественно MPLS не в счет)
Кстати мобильный вариант в этом плане не радует, т.к. маршруты несколько подлинее...
Вопрос: Почему при запуске второй активити приложение просто вылетает?

Лучший ответ:
Оно же тебе пишет, ну.
 Caused by: java.lang.IllegalArgumentException: column '_id' does not exist
CursorAdapter требует, чтобы была колонка с именем "_id". Можешь добавить такой айдишник или добавить в запрос что-то типа SELECT ID AS _id.

А лучше перестань использовать ListView в целом и CursorAdapter в частности. Переходи на RecyclerView.

Худший ответ:
я с RecyclerView умею уже работать =) Я просто только изучаю сейчас андроид и поэтому с ListView тоже нужно уметь работать, вот я и учусь=) Спасибо большое за ваш ответ,  добавил в new String "rowid _id" и все заработало. Большое вам спасибо)
Вопрос: Как правильно сделать склонение по годам?

Лучший ответ:
function trueRussianDecline(d1, d2, d3, c){
        let res = "";
        switch (c%100){
            case 11: case 12: case 13: case 14:return d1;
            default:
                switch (c%10){
                    case 0:case 5:case 6:case 7:case 8:case 9:return d1;
                    case 1: return d2;
                    case 2:case 3:case 4: return d3;
                }
        }
        return "";
    }    
    
    let text = trueRussianDecline("лет","год","года",5);

Худший ответ:
let yo = (y) => /\d*1\d$/.test(y) || /[05-9]$/.test(y) ? 'лет' : ( /1$/.test(y) ? 'год' : 'года');

let years = parseInt(prompt('Сколько Вам лет?'));
alert(`Вам ${years} ${yo(years)}`);
Вопрос: Как подключить патч-панель?

Лучший ответ:
У вас на фото подписаны номера контактов, 
подключите кабель одной стороной в патч-панель, на другой обожмите коннектор (естественно согласно нумерации).
Там ничего сложного нет.
Обычно жмут по B (T568B)

Худший ответ:
Классика жанра, по Б подключайте
БО-О-Бз-С-БС-З-БК-К
на розетках и патчпанелях обычно разведено парами, как и в вашем случае
т.е. снизу вверх О-БО-З-БЗ-С-БС-К-БК, на розетке как там будет нарисовано
Вопрос: Хитрый алгоритм Инстаграмма?

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

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

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

PS: Пришла идея. Спарсить тот сайт и перевести его обратно через google translate и запустить в рунете. И кто попадет на тот сайт и будет его читать - вот башню снесет от такого перевода)) 
АлиЭкспресс со своими "дохлые руки оригинал"  буде нервно курить в сторонке)

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

Лучший ответ:
Ищи лог ошибок веб-сервера

обычно он лежит в /var/log

Худший ответ:
добавьте display_errors

<?php
error_reporting(-1);
ini_set('display_errors', 1);
Вопрос: Безопасно ли открывать код фронтенда?

Лучший ответ:
завоевать авторитет сообщества.
Пхаха.

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

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

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

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

Худший ответ:
отключите DHT в настройках
а так лучше пользоваться другими вещами они все шифруют прежде чем отправитть
RetroShare с легкостью пробивает NAT
Tox messenger с легкостью пробивает двойной NAT
JAMI пока сыроват но пользоваться можно
Вопрос: Каким образом в Битриксе назначать стоимость доставок при синхронизации?

Лучший ответ:
Давайте разберем чуть подробнее ваш фрагмент кода и представим гипотетическую ситуацию: у вас на сайте создана 1 отгрузка, а после обмена из вашей системы прилетает 2 новые отгрузки, вместо 1 существовавшей.
Начнем с того что в:// создаём отгрузки
$shipmentCollection = $orderBx->getShipmentCollection();
Вы получаете коллекцию отгрузок. Коллекция отгрузок представляет из себя набор, состоящий из системной отгрузки + созданных системой или пользователем.
При обработке существующего заказа с одной отгрузкой вам вернется коллекция (объект) с содержимым в 2 отгрузки: системная + ваша.
Далее, вы производите итерацию по пришедшим отгрузкамforeach (importJson['Shipments'] as $importOrderShipment)
Т.е. получается вам пришло 2 отгрузки и соответственно вы 2 раза зайдете в ваш цикл.
Фрагмент:$shipment = $shipmentCollection->createItem();
Создаст еще одну отгрузку. Иными словами после выполнения фрагмента в коллекции отгрузок у вас будет уже 4 отгрузки: системная, исходная (которая была на сайте), а так же две новых отгрузки, которые вы создали при итерировании по импортируемым отгрузкам.
В данном случае у вас есть несколько вариантов развития событий:
1) Вы можете очищать коллекцию отгрузок и создавать новые. Событий на изменение заказа у вас будет большое количество, но тем не менее это даст вам больше прозрачности в вашем процессе (не говоря уже о простоте реализации).
2) Добавить маркер и по нему обновлять существующие отгрузки - менять стоимость тип и т.п.
Это будет сложнее, но при этом чище с точки зрения событий в системе.
P.S. И насколько я помню, цена доставки PRICE_DELIVERY из order это вроде как сумма PRICE_DELIVERY (?CUSTOM_PRICE_DELIVERY) из всех не системных отгрузок, так что задавать его бесполезно.

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

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

Исходя из этого - сначала ревью.

Худший ответ:
Зависит от подхода. Если у вас tdd, то тестирование у вас ещё до кода или паралельно с ним. По большому счету тест от кода не зависит. И то и другое зависит от декомпозиции и ТЗ.
Вопрос: Стоит-ли переходит с Blender 2.8 на 3Ds max?

Лучший ответ:
Посмотрите еженедельные подборки лучших работ на блендернэйшен или вот здесь https://blenderartists.org/c/artwork/forum-gallery - и если этот уровень вы уже прошли, переросли и это для вас примитив - то смело идите дальше по ступени. Хоть к 3д максу, хоть к майе. 
Если же нет - то смена платформы не поможет.
Учебного материала вам не хватает?!?! Подпишитесь на уже упомянутый мной https://www.blendernation.com - и вам ЕЖЕдневно будет сыпатся столько учебного материала, что не будете успевать даже ознакомится, не то что пройти эти уроки.

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

1.Если ты начинающий, открой сайт с поиском работы и посмотри, какие требуются программы для приема на работу. В моей стране по состоянию на 14.10.2020 я не нашел не одного объявления где требовался б блендер, во всех случаях это -  мая, макс, зебра, фотошоп, сабстанс паинтер. 

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

3.Не надо учить каждую кнопку в программе. Кнопок милиарды, они постоянно меняются, перекладываются, но по факту нужно крайне ограниченое количество. Если ты решил стать моделлером, не надо учить на начальном этапе ЧАСТИЦЫ, анимацию и другую херню, о которой ты забудеш через неделю. Ограничся перемещением во вьюпорте и основными операциями моделинга. Не надо пытатся скульптить - это потом, если понадобится и не в блендере.  Как можно быстрее переходи к туторам по созданию готовых асетов. Условно месяц на вьюпорт и основные операции моделинга, а потом сразу практика, много практики. Не надо годами учить экзотические свистелки-перделки, которыми никто не пользуется. После туоров я б посоветовал бы моделить оружие современное (пистолеты, автоматы), всю органику нахер.

4.Важнейщим этапом является наличие туоров по созданию игровых ассетов для того софта на котором ты остановился, на том языке, который для тебя родной. Если ты начинающий, то будет очень тяжело смотреть урок в мае, а делать в блендере. Да, под уроками/туторами я понимаю не 15 минутные ролики с ютуба. Хороших уроков в свободном доступе по моделингу для игр очень не много и те, которые известны мне - все на базе маи.

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

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

Лучший ответ:
Сжать их на сервере в архив и скачать одним файлом.

Худший ответ:
Rclone/Rsync или сжать и перетянуть их одним файлом, можно сжимать, передавать а после распаковывать на лету во время приема

Что то вроде такого
передача
tar -c /path/to/file/ | nc -l 3333
приём
nc example.com 3333 > tar -xvf -C /path 
Можно обернуть не через nc, а через ssh и добавь сжатие при необходимости
Но строго говоря я все же рекомендую Rsync
Вопрос: Ассинхронный сервер против многопоточного?

Лучший ответ:
Ну вот смотри.
Асинхронный сервер — это "как будто" у тебя на каждый запрос клиента создаётся отдельный threading.Thread, только очень быстро. На самом деле, на каждый запрос создаётся генератор (он же — корутина), который скармливается циклу событий, но ради аналогии пойдёт. То есть, у тебя как будто бесконечный пул потоков (практически ограниченный памятью). Пришло 5 клиентов — будет 5 "потоков", пришло 10000 — будет 10000. Ты ничем не ограничен, только оперативной памятью.
Многопоточный сервер — это, чаще всего, фиксированный пул потоков (или комбинация из процессов и потоков). Фиксированный он потому, что создавать потоки — затратная по времени операция, процессы — ещё затратнее. Поэтому всякие gunicorn'ы их спавнят при старте. Если у тебя таких потоков, скажем, 40 штук — это буквально означает, что одновременно обрабатываться могут не более 40 запросов (потому что каждый запрос занимает ровно один поток и отдаст его тогда, когда ответ будет отправлен). То есть, предельный RPS посчитать очень просто — надо 40 разделить на максимальное (или среднее, смотря что считаем) время ответа единичного запроса. Допустим, самый "тупой" запрос отвечает 0.2с, тогда ты сможешь обрабатывать не менее 200RPS. А если среднее время ответа — 0.1с, то ты можешь обрабатывать в среднем 400RPS.
В общем, я к тому, что asyncio стоит использовать всегда, когда твоё приложение чего-то ждёт — БД, ФС, чьё-то API и т.д. То есть, если твоё приложение не умножает миллиарды чисел, не работает с матрицами и прочее.

Худший ответ:
Вы точно ничего не путаете? 
"Асинхронный" - это характеристика tcp-соединения
"Многопоточный" - это параллелизм.
Если у вас 10000 запросов в секунду, то без многопоточности ваш сервер ляжет.
Выбор BD - это ваш личный выбор. Ориентируйтесь на вопросы:
1. Нужна ли репликация?
2. Каково примерное ожидаемое количество записей?
3. Как удобнее получать выборки? Т.е. это будет реляционка или носкл...
и т.д.
Вопрос: Почему при открытии вкладок загружаются файлы?

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

Худший ответ:
Похоже на какой-то плагин браузера, который загружает кнопку "Like" с FB. Но глючит. Отключите все плагины и по одному включайте, пока проблема не проявится.
Вопрос: Какой ЯП учить?

Лучший ответ:
R или Wolfram.

Худший ответ:
C++, очевидно
Вопрос: Как выполнять цикл синхронно, если в нем асинхронная функция?

Лучший ответ:
async  / await /**
 * асинхрота с запросом. Возвращает Promise
 */
const doAsyncStuff = (urlIter, urlSite) => new Promise((resolve, reject) => {
  needle.get(urlIter, (err, result) => { // Сама асинхронная функция
    if (err) reject(err);
    $('.product-card__link')
      .each((i, val) => prodLink.push(urlSite + $(val).attr("href")));

    resolve();
  })
})

/**
 * Тот самый цикл
 * @param {number} quanPage число страниц
 */
const doStuff = async quanPage => {
  for(let i = 1; i <= quanPage; i++) {
    let urlIter = urlSite + i; // Ссылка, которая создается с каждой новой итерацией
    await doAsyncStuff(urlIter, urlSite); // Ждём-с!
  }
}

doStuff(10);
Демо:snippet

Худший ответ:
Вместо for можно просто использовать функцию, которая циклически вызывает сама себя, пока счетчик удовлетворяет условиям:i = 1;

function ciklotron() {

	if (i <= quanPage) {
		
		let urlIter = urlSite + i; 
		
		needle.get(urlIter, function (err, res) {
			if (err) throw (err);
			
		  prodUrl = $('.product-card__link');  
		  prodUrl.each(function (i, val) {    
				prodLink.push(urlSite + $(val).attr("href"));
		  });

		i = Number(i) + Number(1); // Увелчиваем счетчик на еденицу
		ciklotron(); // Вызываем сами себя
		  
		});

	}

}
Вопрос: Ресурсы по изучение ASP.NET CORE?

Лучший ответ:
вы ожидаете книг? продвинутых блогов? по новейшим технологиям?
- книги всегда будут опаздывать
- блоги, скорее всего будут на языке большинства разработчиков (речь не о родных, а об английском)
официальная документация где то тут
https://docs.microsoft.com/ru-ru/aspnet/core/tutor...
и найти на русском что то свежее.. ну разве что на хабре? авторские статьи? но они всегда будут находимы по нужным тегам

Худший ответ:
Я почти всегда по таким вопросам первым делом захожу на metanit.com.
А так верно, если хочется не просто ознакомиться что там такого, то оф документация и курсы на https://docs.microsoft.com/ru-ru/learn/.