¿Cuáles son las mejores cualidades de un ingeniero de software experimentado de 5 años?

1. Habilidades de diseño de software.

2. Prueba completa mentalidad. Con la experiencia, se da cuenta de que desea escribir código una vez, que está libre de errores y que nunca lo ata en el futuro. Por lo tanto, si desea probar su código, asegúrese de que cada línea de código esté haciendo lo que estaba destinado a hacer, etc. Simplemente preste mucha atención a los detalles y tómese el tiempo para probarlo a fondo. Todos en algún momento terminan escribiendo código que desearían no haber escrito nunca …

3. Ser capaz de dar sentido a las grandes bases de código que otros han escrito.

4. Habilidades de comunicación sólidas y claras, ser capaz de articular sus pensamientos y ser capaz de seguir el tren de pensamientos de los demás.

5. Desarrolle el hábito de aprender de los errores y realmente mejorar uno mismo en lugar de repetir los mismos errores. Por ejemplo, diseñando API para la extensibilidad, usabilidad, entendiendo completamente los requisitos, saber quién y cómo se usará su software, etc.

6. Realmente empiece a preocuparse por su código. es decir, lo que escribe todos los días debería facilitarle la vida a largo plazo, en lugar de hacerlo engorroso. Piensa en cada línea de código que escribes, ¿está en el nivel de abstracción de escritura? ¿Debo poner esto en una función diferente? ¿El código produce muchos efectos secundarios?

7. Ser capaz de considerar las compensaciones y tomar decisiones de manera oportuna. Darse cuenta del hecho de que solucionar problemas que no necesitan ser reparados es una pérdida de tiempo. Al darse cuenta de que la mayoría de las veces desea escribir código que funciona bien la mayor parte del tiempo … que la optimización excesiva generalmente produce rendimientos decrecientes, entendiendo el panorama general …

Con 5 años de experiencia en el desarrollo de software principal, debe estar bien versado en lo siguiente:

Capacidad para analizar un requisito dado al máximo y estructurar su base de código y componentes en consecuencia.

Aprendiendo nuevas tecnologías a voluntad. Porque creo que las tecnologías no son importantes, pero las técnicas sí. Todos los lenguajes de programación se originan más o menos a partir de un conjunto finito de patrones, por lo que un chico con experiencia de cinco años sabe cómo abordar el aprendizaje o adaptarse a las nuevas tecnologías al identificar los aspectos vitales de las nuevas tecnologías. Tomemos, por ejemplo, patrones de diseño, no hay un número limitado de patrones, pero estos patrones se repiten en múltiples marcos y bibliotecas. Por lo tanto, un desarrollador experimentado estará en condiciones de diferenciar claramente lo que es importante aprender y lo que no. Estará al tanto de las cosas la mayoría de las veces en lugar de perderse en una miríada de técnicas.

Él tendrá el control total sobre la estimación del esfuerzo, ya que prioriza las cosas perfectamente porque se siente responsable de la tarea en cuestión.

Con 5 años de experiencia en la industria, debería poder demostrar lo siguiente durante una entrevista:
– sólida comprensión de las habilidades de codificación, lo que representa su comprensión de las estructuras de datos y algoritmos
– habilidades de comunicación sólidas sobre su proceso de pensamiento
– sólida comprensión de las habilidades de diseño del sistema para demostrar su comprensión de la escalabilidad

frente a las expectativas de un nuevo graduado, de quien no se esperaría que supiera mucho sobre la escalabilidad / diseño del sistema.