С чего начать изучать ОСНОВЫ программирования?
Рекомендую посмотреть курс CS50 от гарварда. На JavaRush есть его неплохой русский перевод. Там будет все то, что необходимо знать начинающему.
Вообще, он один из крутых курсов, посвященных этому. А так - выбираешь язык, который подходит к той области, которой ты хочешь заниматься, берешь книгу по этому языку, читаешь. Пишешь много кода. Читаешь книги по паттернам (банда четырех в помощь) и организации кода (много разных), читаешь книги по алгоритмам (грокаем алгоритмы, например) (после того, как выучишь основы синтаксиса языка, чтобы не думать С ПОМОЩЬЮ ЧЕГО это сделать, а думать непосредственно, КАК это сделать). И практика, практика, практика. Без нее никуда.
Учебники так и называются, "Основы программирования". Берите любой.