Я вообще случайно программистом стал.
Пришел к нам в класс (это я был в 10-м классе) завуч и говорит нужен человек, хорошо знающий математику и имеющий дома компьютер. Таким человеком оказался я. Меня заставили писать научную работу по программированию.
Я бы наверное не продолжал заниматья программированием, но неожиданно моя научная работа заняла первое место на всеукраинской защите (это уже был 11-й класс 1999 год).
И стала меня совесть мучить, мол я такой, в компьютерах вообще не шарю и занял первое место (это благодаря тому, что контрольную мы писали по математике, я там 36 баллов из 39 взял). И занялся я потом программированием, читал кучу док, покупал книги.
Как учиться? Сначало нужно выучиться просто программировать. Не важно на каком языке. Разобраться с циклами, условиями, массивами. Это базовые знания. Практиковаться почаще. Ну и выбрать нужно, чем заняться: системное программирование, софт, WEB, СУБД ....
И на форумах полезно сидеть. Даже если отвечать не будешь, а просто читать, будешь знать, какие проблемы возникают у других и как они решаются.
И учись работать с документацией - без этого никак. Я поначалу по англиски вообще не понимал. Заставлял себя со словарем читать. Сейчас почти свободно понимаю, что там пишут.