Tiempo requerido para comenzar a codificar en una nueva empresa [cerrado]

12

Soy ingeniero de software durante 4 años y acabo de cambiar de compañía por primera vez.

La compañía trabaja con programación de pares, y han pasado 3 días, ni siquiera pude escribir una sola línea de código. Es muy frustrante para mí porque era muy productivo en mi empresa anterior.

La base de código es grande, están utilizando 5-6 idiomas / herramientas con las que no estoy familiarizado, como rspec, haml, jazmín y otros. Pero aún así, me siento horrible.

Este fin de semana creé UML para comprender mejor la aplicación, pero aún supongo que no podré escribir una cantidad decente de código esta semana.

¿Esto es normal?

¿Cuál es su experiencia cuando cambia su trabajo y se sumerge en una gran base de código escrita con idiomas / bibliotecas con las que no está familiarizado?

Por supuesto, no estoy pidiendo el tiempo exacto requerido, pero las experiencias pasadas o cosas para hacer el proceso serían geniales.

Por cierto, ya he leído a continuación las preguntas y respuestas, ¿Cómo te sumerges en grandes bases de códigos?

/programming/215076/whats-the-best-way-to-become-familiar-with-a-large-codebase

/programming/214605/the-best-way-to-familiarize-yourself-with-an-inherited-codebase

ACTUALIZAR

¡Todas excelentes sugerencias! Acabo de llegar del trabajo, ¡he trabajado mucho!

Sobre programación de pares:

Generalmente escriben código, ¡y trato de no perder ni un segundo! Si trato de escribir el código, sé que me llevará una eternidad, porque ni siquiera sé qué archivos debo editar, pero aparte de eso, como dije, están usando 6-7 idiomas / marcos que no soy familiarizado y aprender todas estas sintaxis a la vez no es fácil.

Qué tan bien se preparó la compañía para los ingenieros:

No puedo decir que estén bien organizados, esperan que empiece a escribir código de inmediato.

Tomar notas, ser proactivo:

Siempre estoy tomando notas cuando escriben un nuevo comando / o algo sobre modelos de datos. Mis compañeros son personas muy inteligentes y amables, y estoy tratando de hacer muchas preguntas, incluso muchas preguntas estúpidas a veces.

¿Es esto común ?:

@Telastyn, gracias por tus respuestas, me hizo sentir un poco mejor. Parece que mi problema no es tan infrecuente, pero era realmente productivo antes de este trabajo, y ahora me siento realmente inútil y no inteligente.

Espero poder comenzar a resolver errores / implementar problemas muy pronto.

Sobre los frameworks / lenguajes que usan:

Fui realmente honesto al respecto, no dije que supiera algo que en realidad no sé. Pero no esperaba cosas tan diferentes, y desde que comencé a trabajar el día que acepté la oferta, no tuve tiempo para prepararme.

@Southpaw Hare, muchas gracias por compartir tu experiencia. Tienes toda la razón. No hay garantía de que voy a aprender todas estas cosas, pero lo estoy intentando. Al final, es difícil aprender toda la sintaxis a la vez, y creo que ese es el problema principal también. Porque puedo navegar bien en código ruby ​​ya que conozco ese idioma, y ​​navego en códigos js gracias a los inspectores del navegador, pero el problema es escribir los códigos reales con los marcos / idiomas que no conozco.

Robert Johnson
fuente
Ya que mencionas ¿Cómo te sumerges en grandes bases de código? , ¿qué hay en las respuestas que no cubre su caso?
mosquito
3
Como está programando pares, no tiene que escribir código para ser productivo. Puede ser bastante útil simplemente observando a otra persona escribir código. Muy pronto sabrá lo suficiente como para comenzar a escribir código usted mismo.
Kevin Cline
@kevincline si se está emparejando como el nuevo desarrollador, seguramente debería ser el que está en el teclado, de lo contrario sería una configuración de par bastante mala ...
Jimmy Hoffa
Si así es como la empresa hace las cosas, realmente no tienes otra opción. Asegúrese de saber lo que esperan que sepa cuando llegue el momento. Hacer preguntas. Obtenga comentarios Puede perder mucho tiempo si no tiene cuidado.
JeffO
@JimmyHoffa, sé que eso sería mejor para mí, pero en ese caso, ralentizaría mucho a mis compañeros. Dado que tendré que preguntar cada sintaxis, archivo real que necesito editar, modelo de datos u otra cosa, disminuirá la velocidad de mi par.
Robert Johnson

Respuestas:

10

Esto depende de cosas como la complejidad del sistema y qué tan bien está preparada la organización para incorporar nuevos programadores. Puede llevar de 30 minutos a varias semanas. No es necesariamente algo que estás haciendo mal y no debes sentirte mal por ello.

Sin embargo, lo que debe hacer es ser proactivo para solucionarlo usted y los demás. Informe a su gerente sobre sus frustraciones y trabajen juntos para superarlas y mejorar el proceso para otras nuevas contrataciones.

Escriba notas sobre las cosas con las que está luchando, haga una lluvia de ideas sobre formas de solucionarlas o evitarlas, y documente su proceso. Mantenga a otras personas que puedan ayudarlo a estar al día con su progreso y busque ayuda. No hay nada vergonzoso en pedir ayuda.

Rein Henrichs
fuente
1
Múltiples meses no es infrecuente para complejos, grandes (1 millón + SLOC), especialmente si el dominio también es nicho y / o complejo.
mattnz 01 de
1
+1: Algunas empresas tienen mentores asignados a nuevas contrataciones, sin importar la experiencia que tengan específicamente por estos motivos. Siempre chupo a la persona más cercana a mí que está dispuesta a ayudar y les hago TONELADAS de preguntas, y luego las llevo abiertamente a mi / su gerente cuando me ayudan.
Steven Evers
@mattnz Sí. Sin embargo, varios meses son muchas semanas múltiples. ;)
Rein Henrichs
5

¿Esto es normal?

Para la mayoría de las bases de código lo es. Demonios, en mi compañía te reunirás con RRHH durante 2 días antes de que puedas tocar una computadora. Es un caso atípico, pero considere cuánto tiempo lleva configurar el entorno de desarrollo, familiarizarse vagamente con el dominio, la estructura del código, las normas del equipo ...

Como líder del equipo, espero que no hagas nada efectivo durante 1 sprint (dos semanas) y trabajes a ~ 50% durante los próximos 1-2 sprints.

Telastyn
fuente
2

Cambie al otro extremo. Trabajé en una empresa que tenía solo 2-3 idiomas, pero tardó casi un año antes de que los programadores se soltaran en la base del código, probablemente 1 o 2 meses antes de que comprometieran su primera línea de código.

No se castigue por eso, si fue honesto en la entrevista sobre su falta de conocimiento en estas plataformas, sabían en qué se estaban metiendo. Lleva tiempo y el tiempo no se puede expandir, acortar o comprimir, solo asegúrese de aprovecharlo al máximo.

Newtopian
fuente
1

Realmente depende del trabajo que estás haciendo y del rol en el que estás.

Si está haciendo un trabajo basado en un contrato, se espera que literalmente empiece a ejecutar, utilizando todas las habilidades a su disposición para hacer el trabajo. El trabajo por contrato generalmente está bien definido y usted (por lo general) puede hacerlo, al menos en mi experiencia.

Por otro lado, comencé en un lugar que tenía una enorme base de código heredado con una gran curva de aprendizaje. No se esperaba que escribiéramos el código de producción durante los primeros seis meses que estuvimos allí.

Sea paciente, absorba todo lo que pueda y póngalo en práctica cuando empiece a codificar. Si está hospitalizado o tiene prisa, hay una buena posibilidad en un sistema tan grande que podría terminar rompiendo algo, especialmente si su cobertura de prueba no es brillante.

Sam
fuente
0

Una cierta cantidad de tiempo es absolutamente normal para acostumbrarse a algo tan completamente desconocido: no me culparía ni me sentiría mal. Sin embargo, es importante estar dispuesto a aceptar la posibilidad de que este trabajo no esté dentro de su conjunto de habilidades. Este no es necesariamente el caso, solo vale la pena dejar la posibilidad abierta en su mente.

El problema puede no estar en el tamaño de la base de código, sino en el hecho de que no conoce los idiomas involucrados. En mi propia experiencia personal, tenía un trabajo en una compañía donde no conocía ninguno de los idiomas que se usaban en una base de código bastante extensa. Desafortunadamente, nunca pude aprender esto lo suficiente después de 5 meses más o menos, y fui a otra compañía. Allí, era competente en el idioma principal y, a pesar de que el tamaño de la base de código es comparable, lo hice bastante bien.

Cuando se trata de aprender nuevos idiomas, las personas generalmente piensan que es más fácil de lo que realmente es, y se adhieren a altos estándares para aprenderlos rápidamente. Es probable que te lleve más tiempo de lo que crees, así que tenlo en cuenta independientemente de lo que decidas.

Liebre zurdo
fuente
2
Algunas personas piensan que es más difícil de lo que realmente es. Muy a menudo se reduce a la confianza más que al talento.
ChaosPandion 01 de