Я по опыту самообучения вывел для себя лично одно правило, которым, как мне кажется, пренебрегают и в школе, и в вузах, и в самостоятельных попытках освоения чего угодно.
Нужна обратная связь. Надо понимать, к чему можно прийти в результате, и где находишься сейчас. Желательно ещё до первой написанной строчки и первой прочитанной книги. А в процессе проверяем, продвинулись ли вперед и что умеем теперь. Причем это не в дневнике и не голове преподавателя, а в своей. Иначе нет понимания происходящего и нет мотивации.
Я, к сожалению, осознал этот процесс только на десятом году после того, как меня перестали учить и я стал учиться сам. Поэтому могу только предположить, что стоит рассказать, к чему приводит знание алгоритмов, например, а к чему — изучение юзабилити сайтов.
Ну а дальше — по веб-программингу, например, я поглощал всю литературу, пока не начал чувствовать, дает мне очередная книга что-нибудь новое или нет. И практика, да.
В любом случае, человек не станет хорошо и с интересом программировать оттого, что перечитал весь хедхантер и монстер.ком, помедитировал на цифры и на требования к джава-программерам и выучил Кнута. Если вдруг его зацепит фрути лупс, в котором он на второй день разберется, какие ручки для чего крутить у осцилляторов, значит, это музыкант, а уже потом кто угодно ещё.