¿Es una señal alarmante que el proceso de contratación de un desarrollador senior/líder de una empresa no incluya una tarea de codificación?

Estoy en la búsqueda de un nuevo trabajo en Alemania como desarrollador senior (7 años de experiencia) y he realizado entrevistas para una variedad de roles en empresas de gran escala (mínimo 1000 empleados, equipos de TI 200 desarrolladores).

Una experiencia constante que tuve es que si el negocio principal de la empresa no es TI (digamos una empresa de automóviles), sus entrevistas no incluyen ninguna tarea de codificación, sino algunas preguntas de alto nivel sobre mi plataforma o lenguaje de programación principal.

¿Debería verlo como una señal de que no se toman en serio la TI? ¿O es la norma?

Los comentarios no son para una discusión extensa; esta conversación se ha movido a chat .
También soy alemán, pero desarrollador de nivel básico/medio. Creo que solo tuve una entrevista (de ~10) en la que realicé una tarea de codificación y otra en la que hice una expresión LINQ simple en una pizarra. Parece que no es tan común aquí.
Hah, conozco la compañía. S... o D..N.., ¿verdad? :) En mi opinión, es una mala señal... Ah, cuando recuerdo lo mucho que me preparé para algunas entrevistas y al final fue tan fácil... Y eso de fácil NUNCA es una buena señal.

Respuestas (7)

El hecho de que le hagan preguntas sobre programación no debería ser un factor crítico en su decisión. Es posible que no te pregunten simplemente porque no saben cómo hacerlo. Es por eso que quieren contratar a un desarrollador senior/líder , porque no tienen los recursos para capacitarlo.

Ejemplo

Mi lugar de trabajo desarrolla productos muy técnicos y ofrece buenas oportunidades profesionales. Mi jefe no me hizo una sola pregunta de programación en mi entrevista porque:

  • La empresa no tenía una guía para contratar a un programador (la programación no era el negocio principal)
  • No sabía mucho sobre programación (¡por eso estaba contratando!)
  • Estaba acostumbrado a entrevistar a personas que no eran programadores y, por lo tanto, no pedía preguntas muy técnicas.
  • Solo podía juzgarme por mi currículum, que confirmaría llamando a mis empleadores anteriores.
  • Estaba más interesado en el ajuste cultural.

No es mala señal . Ser el mejor desarrollador en un entorno no técnico podría ser una mejor oportunidad que ingresar a Google. La promoción interna es muy competitiva en Google, ¡pero no tendría competencia en un lugar de trabajo no técnico!

Un lugar de trabajo no técnico puede no ser tan competitivo, pero tampoco tendrá muchas oportunidades de promoción como programador. No me sorprendería si @chiplax descubriera en su nuevo trabajo que no hay otros puestos de programación por encima de él. Así que no tener competencia para un puesto que no existe no es una gran ventaja.
@Mindwin tal vez no lo sepamos. ¿Qué pasa con la oportunidad de CTO o algo así como la arquitectura de software?
Sin embargo, si ya tienen una base de código bastante completa (que tal vez incluso fue hecha por contratistas para ellos), es posible que se encuentre en una situación en la que tenga que limpiar una gran cantidad de código de mala calidad del que tal vez ni siquiera sabían que era fue tan malo (porque no tenían un desarrollador experimentado que les dijera...)
@StudentT podemos esperar [que al menos] un tipo pueda hacer que la empresa no técnica valore a las personas técnicas (y no lo trate como "el chico de Excel"). O finalmente salir de la zona de amigos con la chica que le gusta. Hablando por experiencia, eso [y esto] generalmente no sucede. Pero podemos esperar.
@JanNash y, por favor, limpie esa base de código de mierda para la próxima semana.
@Mindwin y no se olvide de probar todo,... ¿qué especificaciones? El código es la especificación.
Tenga en cuenta que dado que el OP pregunta específicamente sobre Alemania, allí no es común (y de hecho: no es legal, consulte zeit.de/karriere/beruf/2014-10/… como fuente) llamar a empleadores anteriores.
Estar en una empresa no técnica como desarrollador de software junior ha sido una oportunidad increíble para mí, pero dudo que me quede ningún lugar para avanzar después de siete años. Tendré que convencer a la gerencia para que cree todos los roles a los que quiero que me asciendan y, finalmente, no será necesario. Así que no estoy tan seguro de esa afirmación. Sin embargo, ciertamente tiene otras ventajas.
@dirkk No sé qué tan común es en Alemania, pero te equivocas al decir simplemente que es ilegal; es legal, dado el permiso del solicitante de empleo. Del mismo artículo que vinculaste: "Sie dürfen den ehemaligen Arbeitgeber eines Bewerbers nur anrufen, wenn Sie von dem Bewerber die Erlaubnis dafür erhalten".
@SeldomNeedy Sí, por supuesto (obviamente, leo los artículos que cito...). Sin embargo, esto no es relevante aquí dado que el OP obviamente lo sabría cuando se le preguntara.
@dirkk Estoy bastante seguro de que siempre es relevante ser explícito en las declaraciones, especialmente las relacionadas con la ley. Y no creo que OP haya declarado de ninguna manera si se le pidió permiso para contactar a sus referencias o no.
Otro punto a considerar: si tiene experiencia y tiene un buen currículum en el que confíen, no hay una necesidad real de asignarle tareas de codificación. Te has probado a ti mismo en los últimos siete años.

Las otras respuestas están bien y la mía no debe entenderse como exclusiva. Es más una explicación extensa de los antecedentes culturales de por qué las otras respuestas son correctas:

Los alemanes tienden a creer lo que presentas en la entrevista. En comparación con otros países, no estamos acostumbrados a que la gente mienta en una entrevista. Claro, una pequeña mentira piadosa aquí o allá o tal vez la omisión de hechos que no es necesario mencionar si no se solicitan, pero nada que clasificaría como fraude intencional. Otros países parecen tener eso y puedo ver a Alemania entrando en pruebas de codificación muy rápido si tuviéramos solicitantes fraudulentos en masa (como este póster ).

¿Porqué es eso? Bueno, gran parte de nuestro proceso de entrevista está escrito. No tenemos un sistema de "referencias" donde Recursos Humanos llama a un ex compañero de trabajo o jefe y obtiene información verbal. Contamos con un sistema de testimonios escritos , tanto para certificados como para experiencia laboral anterior. Ahora podría decir "bueno, pero eso es aún más fácil de falsificar que tener a un tipo esperando una llamada al azar. ¡Es solo un papel que necesito hacer!" y eso es verdad Pero está en el archivo . Siempre.

Ahora, estar en el archivo parece no ser nada especial. A quién le importa si tu posible mentira está registrada, siempre y cuando consigas el trabajo, ¿verdad? Bueno, sí, pero... Alemania tiene un buen sistema de derechos de los trabajadores. Es difícil deshacerse de alguien, hay sindicatos, protecciones, largos períodos de preaviso. Derechos especiales para personas discapacitadas, leyes contra la discriminación, etc. Mentir en su solicitud es la forma absolutamente más rápida de quedarse sin trabajo. No podrías ser despedido más rápido si hubieras atacado a tu jefe con un hacha. No hay protección, ni beneficios, nada que impida que la empresa te eche en el momento en que se enteran. Los tribunales incluso dictaminaron que mentir en la solicitud es motivo para la rescisión inmediata del contrato , incluso si la persona hizo el trabajo correctamente durante años., lo que dicta el sentido común significa que su mentira no tuvo ninguna consecuencia para la empresa al final.

Así que mentir es la cosa más estúpida que puedes hacer al solicitar un trabajo, en Alemania incluso más que en otros lugares. Los alemanes confían en que los solicitantes lo sepan y actúen en consecuencia. Si tiene un documento que dice que hizo un buen trabajo en su empresa anterior (Arbeitszeugnis), tienden a creer eso. Si tiene un documento que dice que terminó su educación con éxito, tienden a creer eso.

Entrevisté a una buena cantidad de desarrolladores en Alemania y, aunque algunos no eran lo que estaba buscando, no encontré a ninguno que no hubiera podido codificar FizzBuzz en al menos dos idiomas y pseudocódigo. Pero todos tenían referencias escritas de una institución en la que yo confiaba, que ya había certificado que podían hacerlo. No había necesidad de hacerlo todo de nuevo.

Además, los contratos alemanes normalmente contienen un período de prueba en el que la empresa y el trabajador pueden renunciar con muy poca antelación sin necesidad de dar una razón.

Entonces, con la mayoría de los solicitantes ya certificados por una fuente confiable (otra empresa o institución educativa) para poder resolver tareas de codificación simples y la buena sensación de que aún puede deshacerse de las personas que de alguna manera falsificaron muy rápido, simplemente no hay necesidad de tales pruebas.

Personalmente, soy fanático de tener al candidato potencial para una prueba en condiciones reales , no en una pizarra con una tarea artificial, pero esa es otra historia. La mayoría de los alemanes no requieren una prueba de codificación y eso no es una mala señal. Tampoco es una señal excepcionalmente buena, es básicamente el valor predeterminado.

Por lo menos, vale la pena marcar por tener una buena vista de cómo otro país maneja su contratación de empleados.
No es una cuestión de fraude, es solo que las personas son terribles jueces de su propio nivel de habilidad . Esto es cierto en todos los países. He entrevistado a desarrolladores que calificaron sus propias habilidades con 7/10 y que no pudieron resolver los problemas de programación más simples imaginables. Nunca atribuyas a la malicia lo que puedes atribuir a la incompetencia.
@BlueRaja-DannyPflughoeft Eso es cierto y Alemania no es una excepción en ese sentido. Pero los solicitantes vienen con una gran cantidad de papeleo en el que se puede confiar, así que digan lo que digan sobre sí mismos, también tendré declaraciones de otros. Si alguien dice que es un 9/10 y sus registros educativos lo clasifican como C y todos sus antiguos empleadores lo clasifican como "promedio", entonces sé qué creer, sin importar lo que esa persona piense de sí misma.
Además de eso, los tribunales alemanes afirman que poner su solicitud anula su contrato de trabajo y no dudan en presentar cargos penales por cometer delitos.
Como nota menor, las referencias en los Estados Unidos y en otros lugares se escriben con bastante frecuencia (especialmente en el mundo académico), pero en el sistema de Alemania siempre lo son.
¿Qué diablos hicieron los alemanes con la saga de Scott Thompson/Yahoo ?
No estoy seguro de cuánto cuenta a favor de Alemania la posibilidad de anular un contrato. Al menos en California, un estado a voluntad, puede dejar ir a la persona en su segundo día por cualquier motivo o sin ningún motivo (a menos que pertenezca a una clase protegida).

Soy un arquitecto de soluciones que trabaja en Alemania y mi experiencia es variada.

Por un lado, la mayoría de las empresas alemanas no me han evaluado para programar, y esto es especialmente cierto para los puestos más altos. Por otro lado, las mejores empresas para las que he trabajado hacían entrevistas mucho más duras e incluían ejercicios de codificación (aunque esto era para puestos junior).

Como ejemplo específico, una empresa cometió un error y me llamó para una entrevista de ingeniero de software, con una tarea de codificación adjunta. Cuando les dije que había solicitado el puesto de Arquitecto de software, se saltaron el ejercicio de codificación y me llevaron al Arquitecto principal para una entrevista verbal.

En general, no lo tomaría como una mala señal si siente que el resto de las entrevistas fueron rigurosas. Sin embargo, si están dispuestos a inscribirte casi sin esfuerzo de tu parte, lo consideraría al menos una señal de advertencia.

"Si están dispuestos a inscribirte casi sin esfuerzo de tu parte, lo consideraría al menos una señal de advertencia". - vale la pena ampliar, puede que no sea un problema para la contratación actual, si se siente competente en el trabajo y si las preocupaciones sobre la seriedad de TI están cubiertas. Sin embargo, sus nuevos colegas de TI probablemente habrán pasado por el mismo proceso de contratación, con posibles agujeros en los filtros. Como empleado sénior, debe preocuparse por la calidad del personal con el que trabajará y del que puede ser responsable.
¿Los arquitectos de software no saben cómo escribir código? ¡Lo sabía !

Lo más probable es que no tengan a nadie con experiencia relevante que pueda evaluarlo, por lo que confían en usted para describir honestamente sus habilidades. Luego están tratando de evaluar su honestidad para decidir cómo aceptar eso. Después de todo, de esto se tratan las referencias, el historial laboral, las entrevistas y cosas por el estilo.

He tenido cosas similares antes, me entrevistaron para un trabajo de codificación de Java y el tipo que me entrevistó era técnico pero no de Java. Trató de darme una prueba de Java y me di cuenta casi al instante que no estaba muy familiarizado con Java. En mi caso, eso no importó, ya que no estaba exagerando mis habilidades, pero si hubiera estado tan inclinado, fácilmente podría haberme abierto camino a través de la prueba con solo un conocimiento limitado de Java.

De hecho, después de que me contrataron, me pusieron en todas las futuras contrataciones de Java para hacer una prueba de Java adecuada. Hasta que tuvieron un desarrollador senior de Java, sabían que no podían probarlo correctamente, pero estaban haciendo lo mejor que podían con lo que tenían.

En realidad, esto puede ser incluso una buena señal: esta podría ser su oportunidad de construir algo nuevo desde cero y participar desde el principio.

Sí, es una mala señal.

Personalmente, evito cualquier empresa que no solicite una prueba técnica adecuada (e interesante).

Por qué ?

Simplemente porque no quiero volver a trabajar con colegas incompetentes. Y no tener ninguna prueba hace que sea más probable tener al menos un mal colega.

Además de eso, generalmente indica que la empresa realmente no entiende por qué es importante tener buenos desarrolladores, lo que lleva en general a equipos de desarrollo donde no se aplican buenas prácticas, lo que lleva a un código horrible...

Si la empresa es demasiado pequeña y no tienen a nadie en tecnología para entrevistarte, entonces está bien, entonces puedes entrevistar a los siguientes.

Pero en su caso, con empresas con más de 200 desarrolladores, me sorprendería si ninguno de ellos pudiera al menos evaluar sus conocimientos básicos.

Er. No estoy de acuerdo. Una prueba no garantiza que tenga un candidato o empleado inteligente. Pueden hacer algo desde cero, pero no en un sistema que ha existido y tiene trampas. He tenido ambos tipos de entrevistas y creo que obtienen más de una entrevista verbal en la que me pueden hacer una pregunta sobre una situación más específica o qué pasaría si en lugar de escribir otro hola mundo. Las pruebas verbales siguen siendo pruebas.
Nunca dije que no debería haber una entrevista verbal con él. Asegurarse de que alguien realmente pueda escribir código y pueda pensar lógicamente ya es un gran comienzo. Y te puedo asegurar que en una empresa en la que trabajé, muchos desarrolladores no pudieron porque no han sido probados. Una entrevista técnica es solo una buena manera de filtrar a la mayoría de los malos candidatos (pero eso también podría filtrar algunos buenos).
Como esto es específico para un desarrollador senior, podría suceder que la persona que realiza la entrevista sepa cuáles serían los requisitos de codificación (como se indica en su respuesta, por supuesto). O, como en un caso, la persona no estuvo de acuerdo con la forma en que un desarrollador respondió la pregunta. ¿Cómo iba a saber la persona cuál sería el estándar de codificación y que iba en contra de él? En general, creo que la pregunta OP, si es o no una "mala señal" es bastante arbitraria y está sujeta a muchos análisis de "qué pasaría si".
En mi opinión, no es arbitrario, para un puesto de desarrollador senior en una empresa con otros desarrolladores.
No se mencionó cuántos otros desarrolladores, si es que hubo alguno, estaban allí, cuán técnicamente inteligente es el entrevistador, qué comprende el proceso de entrevista de la empresa o cómo lo hacen (¿entrevistas de múltiples etapas? Evaluación de conocimientos básicos->evaluación psicológica->RRHH entrevista->entrevista de equipo->?), por lo que es una situación arbitraria decir "¿Esto es malo?".
Pregúntese honestamente: ¿qué prueba técnica adecuada e interesante podría pedirle a un posible desarrollador senior/líder que no implique que el solicitante traiga una bolsa de dormir y un cepillo de dientes a la entrevista? Puede que esté exagerando un poco, pero entiendes el punto
@crizzis: En realidad, una simple prueba tonta, cualquier variante práctica (es decir, no en la pizarra, sino codificada y ejecutada) de FizzBuzz, aún filtra al personal superior según mi experiencia, y como desarrollador relativamente superior hoy en día no veo tal cosa como una afrenta a mi inteligencia. Es discutible si ese es o no un filtro correcto desde la perspectiva comercial. Sin embargo, personalmente he sido mucho más feliz trabajando en equipos donde las habilidades básicas para resolver problemas como este se verifican y no se asumen debido a los años de antigüedad.
@SliderBlackrose en la pregunta: "(mínimo 1000 empleados, equipos de TI 200 desarrolladores)". -> No estoy seguro de qué más necesita saber cuántos otros desarrolladores hay en la empresa.
@crizzis Estoy de acuerdo con Neil Slater, te sorprendería saber cuántos desarrolladores senior en realidad no pueden escribir código, pero son realmente buenos para decir tonterías, por lo tanto, pasan fácilmente por discusiones técnicas.

Siendo también alemán, puedo confirmar tu impresión. Las pequeñas tareas de codificación (Fizzbuzz et al) son muy raras aquí, principalmente porque (que es, lo admito, un talón de Aquiles) los alemanes tienen quizás demasiada confianza en la certificación y la documentación.

Algunos puntos son válidos: Jonathon Cowley-Thom mencionó el período de prueba de seis meses, por lo que debe culparse a sí mismo si no puede distinguir el trigo de la paja después de este tiempo (pero tengo una historia confirmada por varias personas donde un programador horrible fue capaz de engañar a la gente durante años con una asombrosa cantidad de arrogancia). Lilienthal también tiene razón en que el miedo a perder la cara también juega un papel importante: dar tareas de codificación a las personas pone a prueba la experiencia y las afirmaciones y eso puede alterar algunos egos.

Entonces, en absoluto, la situación no es tan inusual. Puede señalar deficiencias en la calidad de la adquisición, pero aún es posible que encuentre excelentes codificadores y software de alta calidad (pida un día de prueba, no es raro obtener una mejor impresión). Como ya se ha dicho, también puede ser su buena oportunidad para subir el listón.

La razón por la que sigo manteniendo altas las tareas de codificación es su valor informativo. Estas pequeñas pruebas de codificación realmente no prueban qué tan bueno es usted si tiene algo de experiencia, pero si el solicitante no tiene un apagón total, inevitablemente exponen a los impostores que no pueden codificar... NADA.

Y sí, existen. Entonces, algunas formas de calmar la situación si alguien no quiere codificar es decir que todos deben hacer esa prueba.

Los pones ante un IDE activo y listo y les das una pequeña tarea.

Ponga "tshoausuntagpcurhntaougcruats" sin t, o, h y terminando la cadena después de la segunda g.

Con solo observar, sabrá de inmediato si el solicitante tiene experiencia con el idioma (codificará de inmediato) o si el solicitante no tiene experiencia con el idioma específico, pero sabe codificar (necesita "traducir" las construcciones del código, usar patrones incorrectos (C++ => Java ==/equals, C# => count/size()) pero completará las tareas). Luego están los malos programadores y los completos incompetentes.

También puedes ver los malos hábitos a la vez:

  • Varios comandos en una línea; esas personas a menudo no depuran.
  • Varios nombres de variables o constantes que no hablan i,k,j,ab,abcj, etc.
  • Reutilización excesiva de variables, violaciones de alcance, sin gestión de memoria.
  • Sin formato (no es realmente importante qué estilo de formato, solo que sea consistente y legible).
  • Programación vudú: regresa al final del método void, continúa como última declaración en los bucles, inicializa las mismas variables dos veces... haz cosas extrañas para evitar la ira del compilador inescrutable.
Vi a muchos de los que llamamos aprendices de magos por el generador de código IDE "mago" y la caricatura de Disney. Les pregunto en una pizarra blanca, no en un IDE . Algunos no tienen ni idea de cómo escribir realmente una clase (en C++).
I y j son muy comunes como índices de matriz en la programación técnica, es un vestigio de los años 50/60 y Fortran
No solo es icomún para un índice de bucle, usar otro nombre es engañoso porque sugiere que la variable es más que un índice de bucle. Y "sin gestión de memoria" sería mejor que "buena gestión de memoria", en mi libro. Sospecho un poco que me gustaría el estilo de entrevista de Thorsten, porque me impediría trabajar para él .
@MSalters ¿Y cómo sabes que no es más que un índice de bucle o al revés? ¿No preferiría saber de inmediato que es una fila , una columna , un índice (solo acceso directo), un desplazamiento (solo se usa con una base), un contador (no hace nada)? Simplemente previene errores. Al principio, la memoria era tan limitada que los nombres cortos valían la pena para los intérpretes, por lo que era bastante razonable. Los lenguajes de GC aún pueden tener referencias de objetos abiertos/identificadores de sistema innecesarios si no tiene cuidado. (Y tú también me gustas). De todos modos, sugiero mover los comentarios al chat si necesitamos discutir esto más a fondo.
@ThorstenS .: No entiende el punto: el autor sabe y elige iSI Y SOLO SI no es más que un simple índice de bucle. Esta es una convención fuerte. Dice "nada bajo mi manga aquí, no te molestes en buscar un significado oculto". Intentar forzar un nombre significativo en ausencia de tal significado es engañar activamente a los futuros lectores.
@MSalters En su mayoría, solo veo el código fuente, por lo que hay una convención de codificación dependiente de la empresa o del idioma. Surge un problema si una convención (i=sin importancia) se ejecuta por la razón equivocada: porque es fácil . Entonces su argumento es una falacia porque el autor usó i porque no sabe y no le importa . Al no poder leer la mente, necesito ver más código para deducir la verdadera razón. ¿Estás molesto porque crees que afirmo "Usar i => mal programador"? No es así. Cada "malo" hábito puede ser perfectamente válido, pero acumulativo y en los lugares equivocados son una señal de advertencia.

¿Debería verlo como una señal de que no se toman en serio la TI?

No, eso sería asignarle mucho valor. Puede considerarlo como uno de los puntos de datos que recopila sobre un empleador potencial durante el proceso de entrevista. Las verdaderas señales de alerta en una entrevista son raras; por lo general, terminará con una imagen combinada de cómo la empresa aborda el proceso de contratación, sus objetivos o el mercado.

Por ejemplo, si no realizan tareas de codificación, no lo interrogan sobre su experiencia y no verifican sus referencias, eso podría ser potencialmente preocupante, ya que se abren a contratar desarrolladores pobres o charlatanes. Pero, de nuevo, podría haber una razón por la que se estén saltando ciertos pasos con usted o simplemente no sigan un proceso estándar todo el tiempo. Si lo conocen a usted oa las personas que trabajaron con usted o tienen razones para creer que está en el nivel, es posible que no piensen que es necesario realizar una prueba de competencia básica.

De hecho, es por eso que este tipo de pruebas son (o deberían ser) raras para perfiles senior: muchos desarrolladores senior las consideran una pérdida de tiempo y una ofensiva límite. Después de todo, básicamente indican que la empresa duda de sus afirmaciones o experiencia. Cuando alcanza el nivel de desarrollador senior, se supone que tiene las habilidades requeridas y dichas pruebas deben reemplazarse por verificaciones de referencia para verificar que un candidato es quien dice ser, pero principalmente para tener una idea del conocimiento y la experiencia que aportan a su trabajo. . Un currículum no le dirá eso, pero tampoco lo hará una prueba de codificación una vez que esté hablando de personas con más de 3 años de experiencia. Tenga en cuenta que, en algunos países, las verificaciones de referencias son raras y, en esos casos, puede ser más común evaluar a los candidatos de formas en las que no lo haría si pudiera llamar a las referencias.

Recuerde que la contratación es una calle de doble sentido . Si algo que un entrevistador hace o deja de hacer lo desconcierta, está bien preguntarle al respecto (con algunas excepciones obvias). Si le preocupa que no estén haciendo su debida diligencia, puede preguntar sobre sus prioridades en la contratación, si sus empleados están certificados, qué tipo de perfiles han contratado, por qué tienen una vacante, etc. Pero el solo hecho de que no hayan hecho una prueba de codificación realmente no te dice nada.