¿Cómo debería aprender arquitectura y diseño de software?

Si te refieres a proyectos de código abierto, revisar y depurar código en proyectos de código abierto podría ser útil. Pero creo que sería muy confuso al principio. Un proyecto de código abierto interesante puede ser realmente grande y el código será tan abrumador. Se necesita mucho tiempo para entender cómo funcionan las grandes bases de código. Los autores del proyecto no se preocupan por explicar el diseño y la estructura interna y encontrarás que la mayor parte de la documentación es sobre la funcionalidad de alto nivel que importa al usuario final. Sin embargo, involucrarse con el equipo y contribuir al proyecto es una enorme experiencia de aprendizaje.

Nada es comparable a la experiencia con equipos profesionales. Pero hay que seleccionar el equipo con el que se quiere trabajar, No todos los equipos se preocupan por la calidad de la arquitectura y el diseño. De hecho, ¡algunos líderes y gerentes de equipo se oponen a ello! Así que antes de unirte a un equipo, asegúrate de que vas a aprender de tu líder de equipo y de tus compañeros.

La buena noticia es: No es la única forma de aprender. Los "buenos" libros son otra buena opción.

Esencialmente, necesitas aprender a escribir mejor código. Refactoring y Amazon.com: Design Patterns: Elementos del software orientado a objetos reutilizable eBook: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Grady Booch: Kindle Store son tan importantes al principio.

Hay tanto material útil en internet escrito por expertos ingenieros de software, consultores y arquitectos. Un ejemplo es martinfowler.com un arquitecto brillante con un gran estilo de escritura.

Recomendaría leer cualquier cosa escrita por Martin Fowler y Robert Cecil Martin alias Tío Bob. Tienen grandes libros, sitios web y vídeos.

Tienes que echar un vistazo a los vídeos de Clean Coders, ¡te cambiarán la vida!

Si estás interesado en .NET consulta este libro Microsoft .NET - Architecting Applications for the Enterprise (2nd Edition) (Developer Reference): Dino Esposito, Andrea Saltarello: 9780735685352: Amazon.com: Libros Está lleno de grandes ideas y consejos para una arquitectura de aplicaciones limpia y modular.

En otras palabras: Hay tantos pioneros en el campo de la arquitectura de software. intenta encontrarlos y leer todo lo que dicen. No sólo te dan consejos y trucos, sino que cambian tu forma de pensar.

Buena suerte