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:
- Ahora que conoce las herramientas, obtenga más información sobre qué hacer con ellas.
- 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.