Чтобы изучить программирование нужно программировать. Без практики не научитесь. Программирование - это не знать команды и операторы языка, да и язык программирования это всего-лишь инструмент. Чтобы научиться, возьмите какой-нибудь язык "без наворотов", паскаль или си например, и пишите программы начинайте с простого и потихонечку усложняйте. Конечно, чтобы стать хорошим программистом, могут потребоваться алгоритмы и структуры данных, как раз Андрей книжку подсказал, можете изучать и писать эти самые алгоритмы и структуры в процессе изучения. P.S. программирование бывает разным - веб-программирование - это одно, разработка игр - это другое. Но это уже когда освоитесь чуть-чуть