1. Проверить блок питания на корректность выдаваемых напряжений.
2. Мог отвалится/поломаться биос — имеет смысл попробовать сделать полный сброс и перепрошить
3. Поломался SATA контроллер — нести в СЦ / сдавать по гарантии.
Есть такая штука — называется Декомпозиция: разбиение больше́го на меньшее. Применяется при разработке ПО для разбиения программы на [под]модули/системы/сервисы и т.п.
1. Дебиан на СД: https://www.debian.org/CD/torrent-cd/
2. Образы установки по сети: https://www.debian.org/CD/live/ (для многих других популярных дистрибутивов тоже есть сетевые установщики).
3. Есть у телефонов такая фича как "сотовый модем" и "WiFi точка доступа", позволяющие использовать интернет с телефона на ПК.
Прошивка шла из под ОС? Никогда так не делайте - слишком много чего может пойти не так. Перед прошивкой надо сделать бэкап старой версии и иметь возможность откатить на предыдущую версию.
Ошибки в архитектуре могли быть допущены где угодно. Анализируйте узкие места и ищите причины. Кстати, вы спрашиваете об ошибках архитектуры без предоставления самой архитектуры и какой-либо информации о системе и надеетесь получить какой-то ответ, который решит ваши проблемы?
Точно так же. При скачивании приложения в дистрибутив записывается вот этот ID в любом удобном виде. При установке приложение отправляет этот ID на сервер. А на сервере бэкэнд уже обрабатывает этот ID как надо.
Очень просто: взять проект с новой для себя областью знаний. Либо найти какой-то постоянный контракт в команде опытных людей и учиться. Еще можно поставить себе какую-то определенную задачу и пойти выполнять её. Например: поднять сервер и БД на AWS с балансировщиком, роут 53, настроить деплой проекта на базе рельс в докере, с конфигами в ансибле и тераформе.
На самом деле ничего сверхсложного в этом нету: открываете пример DLL (например этот), по образцу переписываете Main.cpp вашего приложения с нужными вам функциями и получаете то, что вам нужно. В VisualStudio создаете решение, в него добавляете оба проекта (так просто удобнее - пересобрал длл и её сразу можно юзать во втором проекте без дополнительных телодвижений), линкуете на билд dll и все связанное в основном проекте (C# который), далее в C# приложении делаете обертку для dll и используете её уже как надо.
Скорее всего разработчики писали код на ес6 и транспилировали (babel и иже с ним) его в ес5 для поддержки ИЕ, т.к. результат транспиляции ес6->ес5 обычно именно так и выглядит.