В ВУЗе. Во первых, наличие проверяемых преподавателями работ ускоряет процесс обучения и повышает его качество. Во вторых, при самообразовании ты учишь только то, о чём знаешь, и пропускаешь множество областей, которые нужны профессиональным программистам, но о существовании которых ты даже не подозреваешь. Институт же даёт куда более сбалансированный набор знаний. P.S. Курсы не помогут: большинство курсов учат не программировать, а собирать как-то работающий код из готовых библиотек на модном языке.
Так сразу и поступай в зарубежный ВУЗ, желательно престижный. Шанс найти нормальную работу за рубежом будет намного выше. Кому ты там будешь нужен с самообразованием? Своих таких хватает! С Российским ВУЗом будь готов лет 5-6 работать почти за еду и под риском увольнения с экстрадицией.
Мой брат преподает системное администрирование, и он рассказывал, что в ВУЗе дают базу сразу по нескольким языкам программирования, а уж изучать какой-то из них или нет - это уже дело твое. Плюс ВУЗа - это документ о его окончании, и более высокие шансы взять тебя на работу в России. Как правило, российские дипломы за границей не представляет никакого веса.
Тоже считаю что нужно совмещать обучение ВУЗ + самому. Можно еще на курсы разные пойти. Знаю что многие специалисты охотно делятся своими знаниями (за деньги). Через всякие интерактивные образовательные площадки типа https://ojowo.com/ создаются обучающие программы с выдачей как электронных так и бумажных сертификатов, которые тоже можно прицепить к резюме.