Лично мое мнение. На абсолютную истину не претендует. Проблема в том, что для разработки более-менее сложных систем нужны не только знания и не только (и даже не столько) высокий уровень интеллекта. Нужны еще достаточно специфичные способности и склад мышления. А еще нужен опыт.
Этому есть небесспорное, но обоснование. Приходит немало выпускников хороших ВУЗов такого плана: На собеседованиях знания от зубов отскакивают. С ними не только все в порядке но даже более чем в порядке. Знают они больше среднего опытного разработчика. И наличие подобных знаний в общем позволяет исключить что перед нами блатной золотой мальчик. Все это наизусть выучить огромный труд, лично у меня времени и трудолюбия не хватит. В уровне интеллекта тоже сомневаться не приходится. Сам окончил ВУЗ немного попроще, и представляю какая в ведущих физика и математика. Если они это окончили, с этим тоже все в порядке. НО. Дай сколь-нибудь серьезный и большой проект - ничего путного не напишут, проект завалят.
Сисадмину если это серьезная нестандартная инфраструктура знать нужно тоже очень много. Но способности в общем там нужны стандартные для других инженеров: в основном находить сбои. Так вот их недостатка в отличие от серьезных разработчиков нет.
Соответственно по моему мнению дело не столько в образовании, сколько в отборе. При поступлении в ВУЗы в основном проверяют знание математики. Что неплохо свидетельствует об интеллекте человека. Вот только склад мышления математика и современного (а не 60-х годов, времен С.П.Королева) программиста очень разный. Получается что в ВУЗы приходят немало людей, для которых программирование "не их". А с курсами проблема в чрезвычайно агрессивном маркетинге. Конечно это неосуществимо при современных законах и положении дел в образовании. Если бы при поступлении в ВУЗ человек должен был защитить свой реальный или вымышленный но близкий к реальности проект. Программирование это не ядерная физика и не конструирование субмарин. Начать, попробовать свои силы да в общем и достаточно далеко продвинуться можно и самому при наличии способностей и желания. А первое занятие на курсах еще до оплаты было бы посвящено честной профориентации. Где рассказали не только о заоблачных высях зарплат топовых специалистов с колоссальным опытам. Но и как выглядят реалии начинающего кодера без опыта и со знаниями только курсов. Это бы решило проблему. Поскольку ресурсы образования тратились бы на людей из гораздо большего процента которых потом получатся хорошие специалисты.