Al entrar en el desarrollo de la pila completa usando la pila .NET, ¿qué se debe saber en términos de conceptos, además de la programación OO, para obtener un trabajo?

Gracias por el A2A.

Diría que los principios de OO son importantes para cualquier posición de .NET, pero también lo es comprender las bases de datos relacionales (muy probablemente SQL Server) y el front-end web (al menos lo suficiente como para ser productivo).

.NET generalmente se usa en situaciones de grandes empresas, por lo que no les importan las mismas cosas que una startup. El código preciso y bien probado gana sobre el envío temprano aquí, así que asegúrese de comprender cómo implementar pruebas unitarias (pruebas de unidades individuales de código), pruebas de integración (pruebas de cómo sus nuevas unidades se ajustan a las unidades antiguas), pruebas de regresión (prueba de cómo las nuevas unidades interactúan con todo el sistema).

Además, dado que estas grandes empresas brindan servicios al gran público, comprenda algunas de las diferencias entre los navegadores / dispositivos que impactan el desarrollo front-end. Conocer algunos de estos completamente le ahorrará mucho tiempo al diseñar y codificar.

Otra cosa que sugeriría es que tener una idea de las habilidades de DevOps (computación en la nube, servidores, redes) podría hacerte enormemente valioso. La mayoría de los entornos grandes todavía se encuentran en las etapas iniciales de pasar a la nube o están en proceso de hacerlo ahora. Si te encuentras en una organización como esta, tener algunos antecedentes en Azure o AWS podría hacerte más valioso.

El desarrollo de pila completa es solo eso, es el desarrollo en toda su pila (cualquiera que sea la pila que sea). Para ser un desarrollador de pila completa, siempre recomiendo tener un conocimiento profundo de lo siguiente Y un conocimiento profundo de AL MENOS uno de los siguientes:

  • Infraestructura:
  • ¿Dónde se ejecuta tu código?
  • ¿Cómo se implementa?
  • ¿Cómo interactúa con el sistema en términos de conectividad de componentes, dependencias de software, seguridad, etc.?
  • Base de datos:
    • ¿Tiene un buen conocimiento de su base de datos DML y DDL?
    • ¿Entiende cómo su código (y potencialmente el ORM) interactúa con su base de datos?
  • Back-end:
    • ¿Qué tan eficiente es su código?
    • ¿Qué tan legible es su código?
    • ¿Qué tan bien documentado está su código?
    • ¿Tiene una sólida comprensión de la M y C en MVC, y ha aplicado esos conceptos correctamente?
    • ¿Entiendes OO y has aplicado esos conceptos correctamente?
    • ¿Escribes pruebas? ¿Escribes buenas pruebas?
  • Interfaz:
    • ¿Cómo se comunica su código con el back-end?
    • ¿Ha segmentado apropiadamente V del código M y C?
    • ¿Has considerado bien tu UX?
    • ¿Escribes pruebas? ¿Escribes buenas pruebas?

    Principalmente programación (que muchos desarrolladores no saben cómo hacer). Debe poder analizar el problema, utilizar ese análisis para resolver el problema y luego codificar esa solución. Es la parte de análisis que la mayoría de la gente no puede hacer, porque evolucionamos para “luchar o huir”, no para analizar.

    Si, como se le está explicando un problema, no comienza a ver soluciones, no hay mucho que pueda hacer: ya no puede aprender a ser analítico de lo que puede aprender a ser alto. Las personas que no son analíticas deben ingresar a campos de trabajo que no requieren análisis. La programación sí.