Al unirse a una nueva empresa como ingeniero de software, ¿cuál es el mejor tipo de proyecto para solicitar al principio?

Su objetivo como nuevo ingeniero de software es simple: aprender.

Como muchas veces cuando somos nuevos en algo: no sabes lo que no sabes.

Los primeros años de su carrera es cuando construye una amplia base de experiencia que le permite convertirse en el gurú del software del mañana. La mayoría de los nuevos ingenieros están realmente entusiasmados de comenzar a trabajar en alguna nueva característica realmente genial o mostrar sus habilidades de “diseño”.

Pero lo que hace que los buenos ingenieros superiores sean tan poderosos no es su capacidad para elaborar un algoritmo pateador sino su capacidad para aprovechar una variedad de habilidades para realizar una tarea de manera robusta. Habilidades que van desde el uso de herramientas de construcción / análisis hasta la organización de códigos, estructuras de datos, métodos de prueba y patrones de diseño.

Aquí hay un ejemplo concreto. Mi primer trabajo como pasante fue reescribir los archivos MAKE de Microsoft C 5 para que fueran compatibles con el “nuevo” sistema de compilación Microsoft C 6 en una pequeña empresa que estaba actualizando su stack de compilación. Hola no sexy Pero me expuso a algunos conceptos que todavía uso regularmente hoy.

En la mayoría de los proyectos, el método de menor riesgo y mayor recompensa es la corrección de errores, como se mencionó anteriormente. Es, con mucho, la mejor manera de aprender una base de código. Elija un conjunto aleatorio de errores de la lista de errores, investíguelos, intente una solución, luego obtenga una revisión de código de alguien que conozca la base de código. Es probable que tengan sugerencias y comentarios, y le dirán cómo lo habrían solucionado, si es diferente a su solución. Ese proceso se refuerza a sí mismo y en poco tiempo estará listo para abordar una característica o un área de propiedad más grande.

Mi estrategia siempre es preguntar qué es lo que hay que hacer, luego hacer eso.

Diría que asegúrese de trabajar en un proyecto que lo exponga a trabajar con todo el grupo de personas en una empresa y tecnología.

Creo que lo más importante que debes encontrar, cuando recién comienzas, es lo que te interesa. Claro que escribir casos de prueba y corregir errores le permite familiarizarse con la base de código, pero no vale la pena familiarizarse con una base de código o producto o característica, etc. si va a terminar sin querer trabajar en ella en 2-4 semanas.

Por lo tanto, mi recomendación principal sería trabajar en algo de extremo a extremo, desde el producto hasta el código, la implementación / prueba y el trabajo de seguimiento para ver si hay algo en ese ciclo de trabajo que pueda apasionarle realmente explorar y ser increíble. Este trabajo de extremo a extremo también le permitirá conocer a todo el equipo mucho mejor.

Redacción de casos de prueba y / o revisión de código.

Una vez que comprenda el estilo y la práctica, haga pequeñas características y modificaciones a continuación. Corrección de errores después de eso, y finalmente un código greenfield más grande al final.

En general, no puede preguntar, pero una vez que demuestre su talento, los proyectos más difíciles (y más interesantes) encontrarán su camino por sí mismos. Por lo tanto, mi consejo es que se concentre en ser lo mejor posible y, por supuesto, tenga curiosidad.

En general, un nuevo recluta no tiene otra opción para elegir un proyecto por sí mismo. Su trabajo ya está organizado por la empresa.

Si tiene confianza en su capacidad y puede demostrarlo, intente solicitar el proyecto central de la empresa.

De lo contrario, es mejor elegir una posición que pueda demostrar su capacidad.

Me he dado cuenta de que los ingenieros de software talentosos y capaces tienden a molestarse cuando se les hace comenzar a escribir casos de prueba o revisiones de código. Veo que en varias compañías de software, los nuevos ingenieros de software (incluso pasantes) reciben proyectos importantes y carnosos que aún son más o menos independientes y no son críticos. De esta manera, se sienten motivados y tienen un sentido de propiedad sin arriesgarse a contribuir con código incorrecto o código de estilo incorrecto a la base de código principal.

por lo general, la empresa contrata a un desarrollador con el objetivo de involucrarlo en un proyecto definido, por lo que no tiene muchas opciones aquí.

Si es un recién graduado, puede ser contratado como un talento para desarrollar, en este caso solicite un proyecto teniendo en cuenta sus habilidades reales. Sea franco y quizás sobreestime las habilidades 5%. entonces aprenderás algo nuevo. si sobreestimarás aproximadamente el 50%, te maldecirás a ti mismo para que te despidan, como lo descubrirán. Las habilidades son la base para planificar la duración del desarrollo y el nivel de complejidad. no podrá realizar tareas a tiempo y con la calidad adecuada.

así que pide algo creativo para poder desarrollar tus habilidades y ser sincero contigo mismo. no hay nada peor que un trabajo condenado

El que te permite trabajar codo a codo con las mejores personas del equipo.

¡Realice tareas más pequeñas para manejar el código base y trabaje con los miembros del equipo que pueden ayudarlo a acelerar rápidamente!