Как научиться писать масштабируемый и понятный для другого человека код на си-подобных языках?
Можно полистать разные хорошие книги вроде Голуба, Элджера, Александреску и так далее.
А можно пару раз послушать разнос от лида в духе КТО БРОСИЛ ВАЛЕНОК НА ПУЛЬТ маллоком память под объект отхватил, а потом очистил ее  делитом?! и прекратить так делать.
Практика под мудрым руководством "законника от кода" - самое милое дело.
Выделяйте в отдельные процедуры код, который повторяется или может быть применен позднее. Также - осмысленные куски типа инициализации.