Если нужно продолжить какой-то свой старый, небольшой проект, то я скорее перепишу его с нуля, чем разберусь в своем же коде.
С этим нужно бороться. Задача - научиться бегло читать код. То есть видеть алгоритмы за листингами и особенностями языков. Когда начинающий программист читает, у него появляется вкус к коду: он начинает отличать годный понятный код от нечитаемого месива, как и какими средствами управлять выразительностью.
Приступая к практике: не хватайтесь сразу фигачить код без идеи, обдумайте связи, декомпозируйте задачи на более мелкие. Почитайте про SOLID и попробуйте следовать этим правилам. Когда будете стараться писать абстрактный, модульный код (возможно даже с тестами), очень просто станет его рефакторить и ваш здоровый перфекционизм начнет приносить удовольствие, а не уныние от "эффектов бабочек".
Читайте/смотрите "Clean code", ищите блоги разработчиков, какие-то мелкие проекты на гитхабе. Красная дорожка (в терминах передачи "Умники и умницы") - это найти open-source проект и попытаться там пофиксить баг/добавить требуемую фичу. Конечно, это будет сложно. Но если вы справитесь, то это +1000 к опыту.