Как правильно подойти к изучению программированию с нуля?
Программирование в первую очередь - прикладная сфера знаний. Писать код всегда должно значить "решать задачу". Это не математи ка и не физика. Это просто язык, на котором вы объясняете машине как что-то сделать за вас. Начните с матлаба или питона, решая задачи, котопые очень долго считать вручную. Если понравится рабство компьютеров, продолжайте в любом направлении, решая и автоматизируя задачи других людей.
C++ неоправдано сложный для большенства задач, слабо защищает от ошибок, трубует строгой дисциплины и внимания к деталям.
Для серьезного изучения программирования подходит Haskell, для легкого вхождения (в первую очередь в фронтенд, но и в программирование вообще) - Elm. Они же полезны для лучшего восприятия математики.
Если нужно быть ближе к железу, лучший вариант - Rust.
Из математики стоит познакомиться с теорией множеств и логикой.