pavki/hr_qa_sbs_best_bad huggingface dataset:
Вопрос: Что делать при ошибке в MySQL: «Указан слишком длинный ключ. Максимальная длина ключа составляет 1000 байт»?

Лучший ответ: Все дело в том что utf8mb4_unicode_ci использует 4 байта для кодирования одного символа, плюс 1 байт хранит длину строки. Соответственно (255+1)*4 = 1024.
Уменьшит размер данных можно, и даже нужно, с учетом что текущие данные не будут повреждены. Проверить максимальную длину строки: 
SELECT MAX(fieldname) FROM table;

Выбор размера данных зависит от их возможных значений. Например если поле может быть только "да", "нет" , "иногда" то достаточно  varchar(6)

Кроме того если строковое поле имеет ограниченный набор значений имеет смысл использовать enum или отдельную таблицу со словарем

Худший ответ: увелич рамеры ключа.

в консоли 

SET GLOBAL innodb_large_prefix=on;
Вопрос: Ошибка Телеграм бота, что за ошибка?

Лучший ответ: Рабочий код:
import telebot
import config

bot = telebot.TeleBot(config.TOKEN)

@bot.message_handler(content_types = ['text'])
def lalala(message):
	bot.send_message(message.chat.id,message.text)

if __name__ == '__main__':
    bot.polling(none_stop=True)
bot = telebot.Telebot(config.TOKEN) - TeleBot - bot с большой буквы.
@bot.message_handler(content_types = ['text']) - между message и handler = нижнее подчеркивание.

Худший ответ: Написано что у модуля telebot нет атрибута Telebot, но вероятно есть TeleBot.
В IDE можно через точку вызвать список доступных атрибутов или командой dir.
import telebot
print(dir(telebot))
Вопрос: Почему мой генератор не работает?

Лучший ответ: str_replace — Заменяет все вхождения строки поиска на строку замены

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

Худший ответ: str_replace на preg_replace с доп. параметром заменить...

$promo_mask = 'XXXX-5555-XXXX-5555';
$mask_count = substr_count($promo_mask, 'X');
$promo = $promo_mask;

  $chars = '12345ABCDEFGHIJKLMNOPQRSTUVWXYZ67890';
  $hashpromo = '';
  for($ichars = 1; $ichars <= $mask_count; ++$ichars) {
    	$random = str_shuffle($chars);
    	$promo = preg_replace('/X/', $random[$ichars], $promo, 1);
  }
  echo $promo;
Вопрос: Как переназначить клавишу ё -> õ?

Лучший ответ: Сейчас поменял в своей Ubuntu 18.04 в файле:
/usr/share/X11/xkb/symbols/ru
строку key <TLDE> на такую:
key <TLDE> { [       245,       213  ] };
ребутнул комп, и вуаля õÕõõõÕõõõÕÕÕÕÕõõõ

ЗЫ: перезапуск Икс сеанса тоже работает ё

Худший ответ: В X11 за это отвечает xkb, раскладки лежат в /usr/share/X11/xkb/symbols/, статья в арчевики про эту кроличью нору.
В полноценной консоли это делается через dumpkeys/loadkeys, статья в арчевики.
Вопрос: Как скрыть элемент по его имени?

Лучший ответ: input[name="test"] {
  display: none;
}

Точно так же можно найти и в JS через querySelector

Худший ответ: Например, так:
var arr = document.getElementsByName("test");
if (arr.length > 0) {
  arr[0].style.display = "none";
}
Вопрос: По вине заказчика удалили сайт, теперь требует вернуть исходники?

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

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

Лучший ответ: subprocess же:
import subprocess
cmd = 'python script.py'

p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
out, err = p.communicate() 
result = out.split('\n')
for lin in result:
    if not lin.startswith('#'):
        print(lin)
https://stackoverflow.com/questions/3781851/run-a-...

Худший ответ: Привет! Как я понял тебе нужно инжектировать\импортировать код после выполнения первого скрипта. Import можно вызывать и в конце скрипт, и даже используя условия. Вот пример:
import_rand = False

if import_rand:
	import random
	print(int(random.randrange(10)))
elif not import_rand:
	print(int(random.randrange(10)))
Если True, то модуль random импортируется и выведется число, если False, то будет ошибка (Модуль random не найден).
Вопрос: Какие существуют специализации в сфере ИБ?

Лучший ответ: В основном говорят про пентестеров и специалистов по безопасной разработке ПО
Не знаю, где это говорят, наверно, в паблике "Юный }{acKep".

ОИБ занимается тем, что определяет права доступа (как к файлам, так и в СКУД), контролирует и настраивает антивирусное ПО и фурриволлы, создаёт регламент получения тех или иных прав, занимается пресечением утечки данных, проводит образовательные программы по безопасному пользованию ПК и сети Интернет, создаёт нехилую волокиту и бюрократию, пользуется презрением и нелюбовью всего айтишного сообщества. Ну это у нас, в энтырпрайзи.

Худший ответ: 10.03.01 Информационная безопасность

Учат общей информационной безопасности. Нормативные документы, нахождение и работа устройств негласной передачи информации. Общая организация безопасности на предприятии. От пропускного режима, до глушилок. 

Источник: Я, отучившийся на такое :D
Вопрос: Микротик hap ac2. Режим Балансирования для двух провайдеров, возможно ли?

Лучший ответ: Нужен режим суммирования траффика с двух провайдеров
"Не бывает" (С) Чародеи

Два провайдера - это две разные трубы. В них можно лить с сортировкой трафика (http - туда, smtp - сюда), можно лить с делением по частям (далеко не всегда, но например, торрент умеет типа блоки с 1 по 100 отсюда, блоки с 101 по 200 - оттуда).
Но обьединить две разные трубы в одну не можно От слова совсем. И провайдеры это тоже прекрасно знают :)

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

Лучший ответ: Штатное средство, которое решает твою задачу (RegisterHotKey)
https://docs.microsoft.com/en-us/windows/win32/api...

Пример использования
https://www.targetprocess.com/blog/hotkeys-binding...
https://ourcodeworld.com/articles/read/573/how-to-...

Худший ответ: На винде можно сделать так:
https://docs.microsoft.com/en-us/archive/blogs/tou...
Вопрос: Как извлечь данные из VPS, из за SSH заблокированного?

Лучший ответ: Прекращай детское порно хранить у друга на сервере. Его поди уже по этапу отправили.

Худший ответ: В общем решение нашлось следующее: вставить свой SSH ключ, а чужой удалить.1) Сгенерировать в PuTTY Key Generator новый SSH ключ, сохранить публичную и приватную часть.2) Зайти на свой VPS через VNC хостера. 3) Зайти в MC. 4) Найти файл ssh/auhtorized_keys и записать в новой строке следующее: ssh-ed25519 <сам public key> sd@ufo5) Предыдущий ключ стереть. Сохраниться и выйти.6) Авторизоваться по PuTTY, введя IP сервера и загрузив файл с public key в раздел SSH. Вводишь в появившемся окне root и всё, доступ восстановлен!
Через SSH можно также установить соединение с сервером другими программаи, поддерживающие FTP.
Вопрос: Что можно ответить на такой вопрос, на собеседовании?

Лучший ответ: "Я никогда не использовал event loop, поэтому не могу о нём ничего сказать самостоятельно, но если вы мне дадите время, то я спрошу на Тостере и повторю, а потом, может, погуглю про это, потому что я обучаемый".

Худший ответ: Ну если не можешь ответить, то значит не использовал в своих проектах. Почитай просто на MDN и не ври, что прям как-то используешь. Завалишься при первой задаче
Вопрос: Не работает функция php?

Лучший ответ: Если по простому, то у вас заканчивается цикл, и в else условие никогда не попадет.
Тут можно добавить еще один  return count($arrStr), после цикла$sentence = 'jabjcdel';
$j = 0; // Работает
//$j = 1; // Работает 

function longStr(string $str, int $j){
    $len = strlen($str);
    $arrStr = [];
    while ($j < $len) {
        if(!in_array($str[$j], $arrStr)){
            $arrStr[] = $str[$j];
            $j++;
        } else {
             return count($arrStr);
        }  
    }
    return count($arrStr);
}


$a = longStr($sentence, $j);
var_dump($a);

Худший ответ: Это происходит потому что, если ты задаешь значение для $j = 1, то условие внутри if никогда не будет true, добавь еще один return в конец.function longStr(string $str, int $j){
    $arrStr = [];
    while ($j < strlen($str)) {
        if(! in_array($str[$j], $arrStr, true)){
            $arrStr[] = $str[$j];
            $j++;
        } else {
            return count($arrStr);
        }
    }
    return count($arrStr);
}
Вопрос: Как извлечь отдельный элемент из таблицы?

Лучший ответ: PDOStatement::fetch - получить следующую строкуPDOStatement::fetchAll - получить все строки
Вам нужно навести порядок в терминологии. Что такое "составить структуру данных из таблицы"? Что такое "отдельный элемент"? Есть три сущности: таблицы, строки и колонки, ими и оперируйте.Я знаю лишь метод для того чтобы составить структуру данных (массив или объект) из таблицы:$results = $pdo->query("SELECT * FROM user");
$rows = $results->fetch(PDO::FETCH_ASSOC);Вы ошибаетесь, в $rows будет только одна строка, а не все.

Худший ответ: Для этого служит метод PDOStatement::fetchColumn $name = $pdo->query("SELECT name FROM user WHERE id = 2")->fetchColumn();
Вопрос: Как найти работу начинающему тестировщику?

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

Единственным вашим конкурентным преимуществом могут стать навыки автоматизации на уровне хорошего джуна. Изучите python, научитесь писать хотябы тесты на api, выложите на github примеры своих тестов. 
С этим уже можно выходить на рынок и на что-то рассчитывать.

Худший ответ: переехать в питер и мск
Вопрос: Лучший безопасный почтовый сервер на Linux?

Лучший ответ: Выбор только из двух вариантов exim (60+% от всех почтовых серверов в мире), postfix (30+%).
Уязвимости чаще находят в exim. 

Но Вам уже написали правильно - Вам нужно найти postmaster-a и он уж поставит тот вариант что ему более знаком.

Самостоятельная настройка почтового сервера (exim/postfix+dovecot+sieve+
spamassassin+clamav+dkim+
dmarc+spf+ptr+mx+tls+
mta-sts+tlsa dane+bimi) приведёт лишь к быстрому попаданию ip во все блеклисты а всех рассылок в спам.

Худший ответ: хорошо бы определится зачем вам почтовый сервер и что вы от него ожидаете.
exim+postfix и тд это к примеру только про прием и отправку сообщений, но никак не про webmail/календари/задачи/общие адресные книги/контакты/интеграции с LDAP и тд
нужен ли этот функционал? 
действительно ли у вас все такое секретное и важное что connect.yandex.ru, google apps, zoho mail не для вас?

Определитесь с задачами и тогда круг подходящих вам решений значительно снизится, а уж найти исполнителя потом не так сложно будет.
Вопрос: Портфолио backend?

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

максимум - код на каком-то гитхабе. который мало кому упёрся. 
всё портфолио бэкендера - способность красиво рассказать что умеет и доказать это.

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

Лучший ответ: Меньше кода - меньше ошибок;
Меньше кода быстрее писать;
Меньше кода проще понять;
Использование конструкций языка по их непосредственному назначению лучше выражают намерения;

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

Лучший ответ: Таблица с цветами (table_c)
id, (поля с описанием цвета - название, стандарт и т.п.)
Таблица с описанием ламеля (tabel_l)
id, (поля для описания ламеля: высота и т.п.), color_id - вот это поле ссылается на таблицу цвета
Таблица изделия (tabel_p) - то что у вас есть
id, lamel_id - поле ссылается на таблицу ламелей (tabel_l), count_l - количество ламелей, (прочие поля для описания изделия: ширина, высота)

Худший ответ: Изделие: код, описание.Состав изделия: код изделия, код ламели, номер ламели (то есть какая она слева на право).Ламель: код, длина, код цвета.Цвет: код, наименование.
И это если предположить, что все ламели одинаковой ширины.
Вопрос: Как понять, что ты готов к трудоустройству?

Лучший ответ: Как понять, что ты готов к настоящим собеседованиям
Когда HR назначит время встречи - значит готов

Худший ответ: Изучаю backend самостоятельно около 5 месяцев
Django, Postgres, компьютерные сети, паттерны проектирования, вэб в целом.
Выходит, на каждое из этих направлений ты потратил ~3 недели? Ну, если ты это реально выучил - ты гений, иди работать.
Вопрос: Правильная ли мысль?

Лучший ответ: Разве может эта "рулетка" показать что-то другое, если в нее заложено по умолчанию показ только одного "приза".
Вы только что познали суть казино. Поздравляю!
Нет, конечно, ничего бы вы не выиграли. Более того, мне кажется, что вас ещё и рекламным фуфлом накормят по телефону. Вы же его не дали?

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

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

Худший ответ: <script>
window.onload = function()
{
    document.getElementById('bottom').scrollIntoView(true);
}
</script>

<div style="height: 5000px;">Top</div>
<div id="bottom">Bottom</div>

По умолчанию слева и подгружается
Вопрос: Можно ли считать любой фрагмент программного кода алгоритмом?

Лучший ответ: 1. можно ли написать код, который не будет являться алгоритмом?
Да. Например так работают декларативные языки, типа HTML, SQL, CSS.
2. Является ли алгоритмом инструкция с единственным действием?
Да.
3. Является ли алгоритмом верстка и можно ли её вообще считать кодом?
Кодом - да. Алгоритмом - нет, тк вёрстка не описывает шаги по достижению результата.

Худший ответ: 1. можно ли написать код, который не будет являться алгоритмом?
Да, если он нарушит один из семи принципов

2. Является ли алгоритмом инструкция с единственным действием?
Думаю да

3. Является ли алгоритмом верстка и можно ли её вообще считать кодом?
Думаю да, т.к. не нарушает принципы 1 - 7
Вопрос: Можно ли пользоваться компьютером во время сварки?

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

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

Можно поставить UPS и забить на соседа (и ждать пожара), а можно собрать статистику изменения напряжения с ИБП и обратится в местную электросеть с претензиями, пусть они разбираются. Дело это сложное и проблемное, но будущие ваши проблемы это совсем другая история

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

Стабилизатор в таких случаях вряд ли поможет, а вот хуже сделать может.
Вопрос: Недоступен qt archive, как скачать qt?

Лучший ответ: Пока официальный сайт не работает можете скачать с зеркал
https://www.google.com/search?q=%22official_releas...

Худший ответ: Можно посмотреть в сторону проекта aqtinstall, развивающего независимый от компании Qt Company загрузчик и установщик Qt, созданный в ответ на прекращение предоставления официальных оффлайновых установщиков.

Ещё под Windows можно поставить через MSYS2.
Вопрос: Зачем в конструкторе инициализация вне тела конструктора?

Лучший ответ: Потому что без такой инициализации невозможно:
1) Передать параметры в базовые классы
2) Инициализировать константы.
3) Иметь поля, для которых нет умолчательного конструктора

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

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

Худший ответ: в теле происходит присваивание, а вне тела - инициализация
https://ravesli.com/urok-117-spisok-initsializatsi...
Вопрос: Как ограничить количество отправленных СМС?

Лучший ответ: Таймер не нужен.
После отправки записывайте в БД номер получателя и время.
Перед отправкой проверяйте сколько попыток было за последние N минут. 
SELECT count(*) FROM sms_history WHERE send_date >= NOW() - INTERVAL 40 MINUTE
                                                         -- 40 минут, например

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

Худший ответ: Записывать в базу сразу, как неверифицированный пользователь.
Вопрос: Как подключиться к сокету с интернета?

Лучший ответ: Connection timeout - страшная ошибка?
Вот пишете: "Попробовал подключиться с телефона и внутри своего Wifi - всё работает. Но как только я переключаюсь на мобильную сеть - ничего не работает." - неужели вы не понимаете, что ваши устройства в таком случае в совершенно разных сетях и откуда и как из мобильной сети устройство будет "видеть" устройство, которое в вашей домашней локальной сети?
Ваш сервер должен иметь белый адрес - т.е. IP, который виден из глобального интернета, чтобы к нему можно было бы подключиться отовсюду.
Такой адрес вы можете приобрести у вашего провайдера.

Худший ответ: Connection timeout - страшная ошибка?
Вот пишете: "Попробовал подключиться с телефона и внутри своего Wifi - всё работает. Но как только я переключаюсь на мобильную сеть - ничего не работает." - неужели вы не понимаете, что ваши устройства в таком случае в совершенно разных сетях и откуда и как из мобильной сети устройство будет "видеть" устройство, которое в вашей домашней локальной сети?
Ваш сервер должен иметь белый адрес - т.е. IP, который виден из глобального интернета, чтобы к нему можно было бы подключиться отовсюду.
Такой адрес вы можете приобрести у вашего провайдера.
Вопрос: Оптимальный переход со стороны бизнеса на сторону ИТ?

Лучший ответ: Еще один инфант который хочет чтобы его за ручку взяли и отвели на тепленькое место в офисе (желательно Москва Сити) с безлимитным кофе. Тон твоего вопроса звучит так будто ты спрашиваешь разрешения - а можно ли тебе в ИТ. А ты просто возьми и попробуй, никого не спрашивая.

Худший ответ: Для старта в разработке на оптимальных условиях у вас по факту нет навыков и опыта. И не важно с какой стороны вы туда хотите зайти.
Стартовать вам придётся с нуля со всеми вытекающими последствиями. Падение в зарплате до стажёра (в условиях кризиса этим стажёром ещё нужно устроиться). Долгий карьерный рост от стажера до специалиста с хорошим опытом.
в каком направлении двигаться/развиваться?
- открываете сайты агрегаторы вакансий и изучаете рынок, также посмотрите что есть по C# и какие там требования.
- далее открываете на тостере тег "карьера" и смотрите по вашей выбранной специальности советы, там за много лет сотни таких вопросов. Изучаете всё что есть полезного в советах.
- начинаете учиться под те требования вакансий, которые вас заинтересовали.
- откликаетесь на вакансии и ходите по собеседованиям.
Вопрос: Куда пропали файлы из папки FOUND.000 и как их восстановить?

Лучший ответ: Не до конца ясно что и откуда пропало, но папка FOUND.000 (и подобные) - это обычно результат работы check disk. 

Chkdsk - это такая волшебная программа, для которой отсутствие ошибок в файловой системе гораздо важнее данных, которые на той файловой системе хранятся. Соответственно, эта проверка диска вполне могла покрошить ваши файлы, устраняя ошибки ФС.

Если диски, с которых пропали данные, не системные, т.е. Windows на них ничего не пишет, то скачайте бесплатный R.saver, это программа для восстановления файлов. Скачивайте и распаковывайте на диск C (на те, откуда пропало, записывать ничего нельзя) и сделайте полное сканирование дисков D и E. 

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

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

Если такая папка есть - нужно проверить диск, скорее всего он не исправен, и заменить на исправный.
Судя по описанию у вас вышел из строя диск.
Вопрос: Не работают медиа запрос?

Лучший ответ: Добрый день.
Напишите в head 
<meta name="viewport" content="width=device-width, initial-scale=1.0

Худший ответ: мета виерпорт в помощь
Вопрос: Виртуальная машина на слабый пк без поддержки виртуализации(vt-x)?

Лучший ответ: Можно попытаться в Qemu.
Можно попробовать WSL.
Можно попробовать Live CD или флешку.

Худший ответ: Можно попытаться в Qemu.
Можно попробовать WSL.
Можно попробовать Live CD или флешку.
Вопрос: Нужен ли диплом магистра в сфере IT?

Лучший ответ: Думаю, что ВУЗ упоминать не стоит, так как он каким-то образом на картину не влияет. 
Ну MIT и какая-нибудь захолустная шарага - все-же слегка различаются.

было решено поступить в магистратуру, в очное отделение. На бюджет.
А, круто-круто, но...нахрена?

Нужен ли вообще диплом магистра в IT?
Пригодится. Можно отмахиваться им в жару например. Хотя проще его все-же купить.

Нужен ли он для "повышения квалификации"?
Че?

Нужен ли он на руководящих должностях (в далёком потенциальном будущем, нужен ли диплом магистра чтобы стать руководителем в компании)? 
Нет.

В зарубежных IT компаниях
О 99% вузов в снг ничего не знают.

Почему до сих пор на магистратуре?
Очевидно, потому что ты невероятно сообразителен, чтобы тратить время, ничего не получая взамен.

Как вы считаете, будут ли в будущем "подвохи" от государства, что бакалавр каким-то образом сильно обесценится, и т. д.? 
Это настолько бред, что я не знаю как на это отвечать.

Резюмируя твой вопрос:

Просиживаю штаны в noname-шараге(походу это уже второй раз). Мамка с Папкой сказали что дадут ремня, если не получу еще одну бумажку. Страшна! Че делать?

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

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