Да, но 75% затраченного на учёбу времени должно приходиться на программирование, а оставшиеся 25 — на математику, английский, физику и т.д. (по желанию и необходимости). Это серьёзная ошибка новичка — рассеивать свой фокус внимания на второстепенные вещи, что приведёт к бесконечному обучению ради обучения.
Лучший источник — школьные учебники (комплект Мерзляка мне очень нравится). Стоит начать прямо с 5 класса, не нужно пренебрегать, там достаточно задач, над которыми нужно подумать. С 7 класса углублённое изучение. Решаем в тетрадку каждую вторую-третью задачку, проверяем на гдз и идём дальше. Весь курс займёт около 300 часов (по 2 в день оптимально). Другого пути нет.
И не стоит слушать тех, кто превозносит роль математики. В большинстве своём это либо люди, не осилившие программу выше 7 класса, либо не имеющие отношения к программированию вовсе.