To už se řešilo x-krát. Ano, výjimky existují, takže existují nepoužitelní absolventi VŠ, stejně jako lidé bez formálního vzdělání, co se sami vypracovali na solidní úroveň. Ale to jsou výjimky. V reálu se mi v mé dlouholeté praxi potvrzuje, že programátorská úroveň člověka velmi dobře koresponduje s jeho vzděláním.
Samozřejmě když přijde čerstvý absolvent, tak je pravděpodobné, že budou existovat úkoly, které člověk s pětiletou praxí zvládne a on ne. Ale je potřeba se koukat do budoucnosti. Pokud není úplný lempl, tak toho praktika rychle dožene a pak bude už jen zvyšovat náskok. Mám zkušenosti, že takoví praktici sice umí (více či méně dobře) nějaký set věcí, které se naučili, ale za tím "hic sunt leones". Když dostanou nějaký nový/neobvyklý úkol, tak se na něj buď pokouší naroubovat ta řešení co znají (což v lepším případě nefunguje vůbec, v horším je to hrozná prasárna) nebo prostě jen koukají a netuší, co s tím. Člověk s širším vzděláním minimálně tuší, co googlit :-)
A co se týče sebevzdělávání, tam je často problém v tom, že "neví, že neví". Když tě na VŠ učí něco, co na první pohled vypadá jako "blbost co v praxi nebudu potřebovat", tak si to stejně prolétneš, minimálně ke zkoušce. A pak se za mnoho let ukáže, že to až taková blbost nebyla. Kdežto když se vzděláváš sám, těžko se budeš dobrovolně učit něco o čem si myslíš, že je to nepotřebná blbost.
A další věc je, na co toho člověka chceš. Když budeš chtít vyzdít zeď, taky nebudeš hledat inženýra architekta. Stejně jako na zastrkávání kabelů do počítače nepotřebuješ inženýra ajťáka.