Discrepo de #4 , olvidate de MVC y patrones de diseño.
O mejor aún, aprendelos, pero luego no los apliques nunca (o en el caso de los patrones, casi nunca, especialmente los que abusan de la herencia).
MVC, especialmente en el mundo Java ha quedado muy en el pasado. Supongo que puede ser útil en algún caso de uso, pero no se me ocurre cual la verdad.
Empieza por las bases, SOLID, DRY, YAGNI, composition over inheritance, alta cohesión, bajo acoplamiento, etc. Leer el libro de clean architecture puede darte algunas ideas y ayudarte a familiarizarte con algunos conceptos. Busca ejemplos de layered architecture, luego intenta entender la arquitectura hexagonal. Aprende a aplicar TDD o similares.
Práctica y resuelve problemas reales, juntate de gente que sea mucho más buena que tu y ves asimilando estos conceptos poco a poco. No trates de volverte un experto en arquitectura y diseño a base de echarle horas y aprender de golpe. Estos conceptos se van asentando a lo largo de los años, lo importante es que conozcas que existen y cuando te topes con problemas en los que puedas aplicarlos, se solidifique tu conocimiento, hasta que pienses que los has entendido. Luego un tiempo después te darás cuenta de que en realidad no los entendias y así hasta que realmente obtengas un conocimiento realmente profundo.
Ves poco a poco escalando y leyendo sobre el tema, aunque al principio no te enteres bien de que va la cosa, meses o años después eso que leistes irá cobrando sentido y entenderás en que casos aplicarlo o que problemas vuelve más faciles.
Como han comentado es importante no aplicar soluciones a problemas que aun no tienes, no hacer sobreingeniería. ¡Ojo! Esto no quiere decir que no tengas que diseñar para que tu software sea facilmente modificable y extensible. YAGNI no significa que no debas tener tu implementación especifica de persistencia en Oracle, por ejemplo, completamente independiente de tu dominio y casos de uso solo por pensar que jamás cambiaras el Oracle por un Cassandra o lo que sea.
Según vayas asimilando lo más básico puedes ir a por DDD, microservicios, arquitecturas dirijidas por eventos, CQRS, Event Sourcing, sagas, circuit-breakers, etc.
Estoy mezclando churras con merinas, pero bueno, el camino saldrá de forma natural según vayas avanzando y aprendiendo cosas.