¿Qué habilidades necesito para ser promovido a desarrollador de .NET de nivel medio?

Por supuesto, esto no es una ciencia exacta, pero en general, no se trata de las tecnologías sino de cómo aborda la resolución de problemas. ¿Sabe cómo aplicar sus herramientas para hacer el trabajo de manera que sus aplicaciones sean comprobables, escalables y, como mínimo, “editables” (lo que significa que puede volver a su código en 6 meses y estará listo) capaz de hacer cambios sin problemas)

¿Pruebas?

¿Usas algún tipo de VCS?

¿Usas DI cuando tienes que hacerlo?

¿Piensas antes de codificar?

¿Tienes tu código organizado?

¿Sigue un estándar en su código?

¿Puedes construir un proyecto desde cero solo?

¿Puedes trabajar con tus colegas?

¿Se puede implementar?

Si se le presenta un error, ¿lo soluciona o trata de resolver un problema más general para cubrir más casos?

¿Se puede desarrollar en otras tecnologías además de las que enumeró?

Debería poder responder SÍ a estas preguntas para pasar al siguiente nivel. Si responde afirmativamente a estas preguntas, puede ser bastante bueno y solo necesita construir algunos proyectos geniales por su cuenta.

Aquí está mi observación sobre mí mismo durante el período comprendido entre 2 y 5 años de experiencia profesional como desarrollador de software (es decir, desde lo que generalmente se considera principiante hasta nivel medio / intermedio):

El mayor cambio no fue cuánto más sabía, sino cuánto más me di cuenta de que no sabía.

Ha enumerado con éxito la pila de tecnología .NET: ¡eso es bueno! Para hacer una analogía con el mundo físico de la artesanía, usted sabe cómo usar cada una de las herramientas en su caja de herramientas. El siguiente paso tiene dos partes:

  1. Ahora que conoce las herramientas, obtenga más información sobre qué hacer con ellas.
  2. Con una buena comprensión de los fundamentos, comience a aprender a hacer software a un ritmo mucho más rápido

Vamos a romper esos dos abajo.

Ahora que conoce las herramientas, obtenga más información sobre qué hacer con ellas.

El software se crea porque un humano tiene un problema y una computadora puede resolverlo mejor que ellos. Ese problema podría ser literalmente un problema, una pregunta que debe responderse, o podría ser una tarea, como comparar dos conjuntos de datos de forma rápida y precisa.

Como desarrollador de software, usted sabe de qué es capaz el software. Puede proporcionar un valor masivo a sus clientes observando y entendiendo cuáles son sus problemas , y luego descubriendo cómo resolver esos problemas con el software. Como desarrollador principiante, en su mayoría se le asignaron tareas para realizar en software basado en la evaluación de otras personas de su valor. Para avanzar como desarrollador, aprenda a ayudar a las personas a determinar qué tareas generan el mayor valor.

Con una buena comprensión de los fundamentos, comience a aprender a hacer software a un ritmo mucho más rápido

Además de ayudar a identificar los problemas a resolver, continuará desarrollando la habilidad de crear software. Esto significa familiarizarse con la forma en que se escribe una buena pieza de software: se aprende observando el trabajo y escuchando las opiniones de pares más experimentados, tanto en el trabajo como a través de libros y blogs, y habrá visto suficientes errores y código incorrecto en este punto para distinguir las buenas opciones de diseño de las malas.

Conoces las partes de la pila, ahora aprende a usarlas de manera efectiva. Por ejemplo:

  • Puede usar ADO.NET o EF para acceder a los datos; ¿en qué es cada uno de esos buenos y malos? ¿Cuándo elegirías uno sobre el otro?
  • Conoces ASP.NET y WCF, ahora aprende a diseñar conjuntos de servicios con API bien definidas entre ellos, aprende qué lógica va a dónde y cómo los servicios y sus clientes pueden interactuar de manera efectiva

Su amplio conocimiento de sus herramientas y qué hacer con ellas lo ayudará a darse cuenta de todas las cosas que aún tiene que aprender y dónde puede ir para obtener más información. Esto lo ayudará a aumentar su tasa de aprendizaje , un factor enormemente importante. Intenta mejorar como desarrollador entre, por ejemplo, tu quinto y sexto año tanto como lo hiciste entre tu primer y quinto año.

Notarás que no he mencionado ninguna herramienta nueva, o partes del marco .NET que no conocías; eso se debe a que, en mi experiencia, las cosas que lo llevan de un desarrollador junior a un desarrollador de nivel medio (y más allá, sinceramente) tienen muy poco que ver con agregar herramientas a su caja de herramientas y mucho que ver con mejorar su uso. .

Espero que eso ayude.

A menudo, aquellos con más experiencia enumeran menos tecnologías en las que se han especializado. Es decir, su lista debería ser más corta, no más larga. He estado programando durante 30 años y enumero solo una tecnología en mi Bio, Core Java.