Лично я предпочитаю практический подход к изучению языка программирования. Я Разработал собственную методику прокачивания навыков программирования, на языке C# Си Шарп. В ней мало теории, но зато очень очень много практики: консольных задач с автоматической проверкой и видео уроков по созданию законченных игровых программ. Для начинающих самое то, Хотя этот способ, конечно же, не исключает необходимость теоретического изучения материала. По моим наблюдениям изучения теории, при наличии некоторого практического опыта, происходит на порядок эффективнее. Кому интересно, адрес проекта VideoSharp.info