Личное мое мнение:
При обучение программирования сначало нужно просто ставить себе задачу и выполнять её, как можно интенсивнее, не важно, что вы большую часть не понимаете, главное, чтобы программа работала, постепенно пробелы будут уменьшаться.
Потом вы начнете понимать больше, потом все пойдет в память.
После этого нужно начинать читать книги о том, как это все работает внутри на самом деле, а не как этим пользоваться. Это уже 2 этап обучения.
Потом другие языки, матан, алгоритмы и тд. Новые технологии(Хотя их не так много на самом деле, лучше сконцентрироваться на чем то реально важном и ценном. Программист, который просто умеет писать на С++,Python,Java и C# менее ценный, чем программист с очень глубокими практическими познаниями вышмата и алгоритмов, физики(Смотря, что за отрасль))