А не нужно смотреть на код как на единое целое, это как мозаика из примитивов - только в определённом состоянии получается общая картинка.
Собственно весь список команд языка "С" умещается на одном тетрадном листке. Для "С++" уже требуется несколько томов убористого мелкого шрифта...
Выучить "С" можно за день, научится корректно применять - примерно за неделю, научится писать не глючные программы - за пару лет.
Хотя, насчёт не глючных программ - всего лишь гипотетическое предположение.
Для "С++" всё то-же самое с небольшим исключением. Учится сначала "С", потом часть "С++" - и сразу в бой. Причём часть "С++" в числовом варианте получается примерно 0,000001% от всех существующих документированных классов на данный момент.
В результате получается чертовки не оптимальный, чрезвычайно жирный, и бесконечно глючный код. Но он получается очень, очень быстро, гораздо быстрее чем на чистом "С".
Насчёт глюков.
Нормальный человеческий мозг с AQ выше 147см - способен оперировать одно_моментно семью уникальными зависимостями/условиями/данными - больше невозможно физически. Можно просматривать все семь состояний последовательно, но одновременно не выше семи.
Это серьёзное ограничение человеческого мозга - делает не возможным восприятие всей программы как единого целого. В результате приходится разбивать код на осмысленные функции с чётким пониманием всего происходящего.
Собственно вариантов планирования программ всего два: сверху вниз, и снизу вверх.
В первом варианте сначала на бумаге рисуется глобальный алгоритм, в сущности это именно то что хочет потребитель - но очень, очень точно!!!. Потом большие блоки продумываются на возможность исполнения в коде, и по мере необходимости бьются на более мелкие, а там еще раз, и еще раз, и еще раз - пока конечный код не сможет компактно для понимания расположиться в одном блоке. Есно пока самый нижний уровень не заработает - программа даже компилироваться не сможет.
Плюсы - всегда получается то что задумали, минусы - так работают настоящие арийские евреи. Чётко по договору с клиентом.
Второй вариант - удел всех свободных программистов. Что может получится на выходе не знает ни кто, даже сам программист. Ну то-есть человек смутно понимает что должно получиться на выходе, и даже желает этого - но на данный момент максимальный подвиг - моргнуть светодиодом.
Плюсы - идеальный вариант для начального обучения, минус - для чего-то работающего придётся брать первый вариант.