Я понимаю, что Вы хотите освоить программирование самостоятельно, без преподавателя. В наше время это возможно, поскольку есть множество учебников, множество учебных курсов. Все это можно найти в интернете на бесплатной основе. Проблема не в отсутствии источников, а в их изобилии. Крайне важно найти подходящего для Вас автора, подходящий учебный курс.
Что это значит "подходящий для Вас" ?
Уметь программировать - это, прежде всего, владеть алгоритмическим мышлением. Конечно нужно освоить некоторый язык программирования. Выбор первого языка также имеет важное значение.
Достаточно просто научиться алгоритмически мыслить, если вы любите математику, умеете строго доказывать справедливость некоторых математических утверждений, умеете выполнять построения и решать задачи школьной геометрии и тригонометрии.
Крайне важно, умеете ли Вы читать учебные тексты, понимать, что хотел сказать автор, строить примеры и контрпримеры.
К сожалению, школьное образование сегодня во многом основано на натаскивании, а не учит самостоятельному мышлению, необходимому для самостоятельного обучения.
Если у Вас проблемы с математикой, с пониманием текстов, то лучше найти на первых порах хорошего преподавателя, который поможет Вам сделать первые шаги в этом увлекательном занятии - программировании.