Понятно, что теорию необходимо сочетать с практикой, но тот же learncpp в конце каждой статьи даёт задание на самостоятельное выполнение. Практика + теория = полный разъёб и лучший вид обучения, как считаю я. С таким подходом я легчайше осваивал раздел за разделом и мог применить прочтённое на практике.Говоря про абсолютного новичка в программировании:
Ты "учишься" на курсах во время домашнего задания. Да, тебе может пригодится человек у которого можно задать вопрос который ты не совсем ещё способен сформулировать. Но это не обязательно должен быть курс - гугл помощь.
Да, я сторонник практического обучения.
Решения задач намного полезнее зубрёжки общих концептов. Не думаю что здесь есть о чём спорить.
На обучение исключительно через практику у новичка в программировании уйдёт в разы больше времени, чем при сочетании теории и приктики.