Теорию обязательно надо мешать с практикой, делать-переделывать выдуманные задачки, копаться в манах, пытаться понять каким образом всё работает. Я начинал с наглядных программ, с графикой, простейших демосцен, мини-игр и т.д, потому что мне так было приятнее воспринимать результат и спать до утра не хотелось. По поводу языка, это дело вкуса и предпочтений. Сейчас многие начинают с яваскрипта из-за его доступности, неприхотливости и относительной простоты (в плане «написать что-нибудь», понять что такое программирование вообще). Также полезно читать форумы и другие сообщества, особенно жалобы и проблемы других людей и ответы на них (типа как тут или на
stackoverflow).