Кодить это одно. А разрабатывать архитектуру приложения это другое. Раньше это всегда было в 1 человеке. Программист сам решал как его софт будет решать бизнес задачу, как будет устроена база данных, транспорт, приклад и прочее. Итоги такого подхода почти всегда - одноразовое говно которое нельзя доработать. Все рушится как карточный домик. Ушел программист - система мертва. Как ее доделывать знал только он. Сейчас иначе. Есть архитектор. Он придумал какой будет система. Какие блоки куда чего и как. Он не кодит. Только "рисует". И есть кодеры. Ну или иногда "немножко программисты", их дело в рамках четко продуманной архитектуры четко кодить из кирпичей. Так вот такой уровень нарабатывается быстро. Пару лет и можно в бой. А вот архитекторы как правило люди в возрасте 40+, глубоко знающие ай ти инструменты и в прошлом разработчики.