Обычная эволючия девелопера:
1) Много копипаста и велосипедов, т.к. мало знаний. Нет архитектуры. Код гавно.
2) Нет копипаста, есть велосипеды. Новые знания применяются тут же. Чем сложнее код, тем девелопер себя считает круче. Архитектура запутанная. Код сложный, но логичный
3) Нет велосипедов. Есть копипасты, но исключительно оправданные. Код пишется с уважением к коллегам. Архитектура продуманная. Код хороший.