Ваша проблема в том, что вы не планируете разработку программы.
Задайте себе вопрос: что я смогу написать за сегодня?
И постарайтесь это написать.
Так вы научитесь измерять код в трудоднях. И начнёте искать решения проблемы не "как написать красивый код", а "как написать столько много кода и не свихнуться".
Потому что реальные программы измеряются в человекогодах.
Если вы найдёте способ программу объёмом, допустим, в 10 человеколет написать за 5 человеколет, то это уже будет сделать экономически выгодно. Вы начнёте искать варианты финансирования своего проекта.
Так и создадите успешную компанию по разработке ПО.
Бывает код дешёвый и код дорогой. Вы сейчас начинающий разработчик, поэтому ваш код ничего стоит, и вы можете потратить хоть месяц на решение какой-нибудь задачки, которую какой-нибудь школьник на олимпиаде решит за два часа.
Но чем больше вы знаете, тем дороже стоит ваше время, и года через три у вас уже не будет этого месяца. Поэтому вам надо научиться программировать быстро, то есть экономически эффективно.
В противном случае через три года вы станете заниматься чем-то другим, с программированием может быть даже и не связанным непосредственно. Просто это будет приносить вам больше денег, чем программирование.