Сам диплом, то есть бумажка об образовании, мне кажется, не дает никаких преимуществ. Другой вопрос, что по моему опыту, вузы все-таки дают немало фундаментальных знаний, которые необходимы, чтобы стать по-настоящему сильным разработчиком.
Очень часто на собеседовании встречаешь людей, которые полностью научились программировать сами, но такие вещи, как например, сложность алгоритмов они либо не знают, либо знать поверхностно. А это вещь, которая весьма бывает полезна, когда мы пишем высоконагруженные системы, которые встречаются сплошь и рядом в больших компаниях. Фундаментальные вещи оказываются важны, потому что одно дело — знать, как пользоваться каким-то конкретным фреймворком, другое — понимать фундаментальные основы того, как все устроено и работает.
Поэтому мое личное мнение в том, что для того, чтобы быть джуниором — наверное, и самоучка подойдет, но вуз дает фундаментальные знания, фундаментальное образование, которое позволяет тебе вглубь понимать, как работают программы, и это оказывается очень важно для профессионального роста в сторону миддла, сеньора и так далее.
Разве десяток фундаментальных книг не заменяют 4 года учебы?
Много знаний из разных областей программирования, которые сами вы бы никогда все не приобрели, а также много личных связей в профессиональном сообществе.