С программированием познакомился в институте. Начинали по-хардкору - с систем исчисления, процессорной логики. Затем, где-то через месяц начал учить основы QBASIC - основные операторы. Сначала логические и арифметические, потом условные и циклические. Затем подошёл черёд структур данных - массивов и связанных списков.
В следующем семестре - тоже самое на Visual Basic и курсовая.
На следующих курсах - тоже самое на Visual C++, Visual C#, PHP и т.д. и т.п.
Таким образом выпустился из института с одинаковыми базовыми знаниями, которые хрен где применишь.
Ну а в остальном, самообразование, мотивированное сроками реального проекта и оплатой за него. Вышеуказанной базы мне хватило устроиться junior PHP dev в моём уездном городе. Сейчас уже middle, работаю в Киеве. :)