В ВУЗе. Во первых, наличие проверяемых преподавателями работ ускоряет процесс обучения и повышает его качество. Во вторых, при самообразовании ты учишь только то, о чём знаешь, и пропускаешь множество областей, которые нужны профессиональным программистам, но о существовании которых ты даже не подозреваешь. Институт же даёт куда более сбалансированный набор знаний. P.S. Курсы не помогут: большинство курсов учат не программировать, а собирать как-то работающий код из готовых библиотек на модном языке.