Solicitar una muestra de código de la compañía en una entrevista [cerrada]

69

Pedirle a un buscador de trabajo que muestre algo de código es una práctica bastante común para una compañía de software. Sin embargo, ¿sería aceptable que el candidato le pida al entrevistador que le muestre un pequeño código que cree que está bien escrito?

Simon Bergot
fuente
14
Prefiero preguntar sobre estándares de codificación, revisiones de código, etc.
user16764
55
¿La empresa pasa la "prueba de Joel": joelonsoftware.com/articles/fog0000000043.html
Martin York
2
@LokiAstari, la prueba de joel no se refiere directamente a la cultura de codificación (solo el entorno de trabajo).
Simon Bergot
8
@ user16764 que es como hacerle preguntas teóricas al candidato: es un buen primer paso, pero en realidad no muestra cómo aplica este conocimiento.
Simon Bergot
2
programmers.stackexchange.com/questions/160922/… Similar a esta pregunta.
Anónimo

Respuestas:

69

Siempre pido ver algún código, por varias razones:

  • Quiero saber en qué me estoy metiendo. Por supuesto, ninguna empresa de software es perfecta, y no espero que todos generen maravillas de elegancia todo el tiempo (porque yo tampoco), pero si pido el mejor código de una empresa, y todo lo que pueden mostrarme es un un desastre de espagueti por debajo del par, sé que estoy en un momento miserable, desenvolviendo bolas de pelo y luchando contra la deuda técnica para hacer algo. Mirar el mejor código que puede mostrar una empresa establece un límite superior de qué tipo de calidad es posible allí; incluso si es poco probable que todo su código se vea así, todavía sabes que es algo por lo que se esfuerzan.
  • Mirar ejemplos de código me dice mucho sobre la cultura de codificación de una empresa. ¿Utilizan comentarios de documentación? ¿Se inclinan hacia un estilo orientado a objetos, tienen tendencias de programación funcional? ¿Son conservadores o progresistas? ¿Valoran los nombres consistentes, el formato y la sangría adecuados y un código ordenado en general? ¿El código es fácil de seguir? ¿Cómo estructuran sus proyectos? ¿Cómo abordan las cosas importantes: pruebas automatizadas, manejo de errores, etc.? ¿Qué tan defensivo es su estilo de codificación?
  • Ver su código existente le permitirá juzgar si puede cumplir con sus estándares .
  • El hecho de que una empresa esté dispuesta a compartir muestras de código solo es una buena señal en principio. Significa que me ofrecen a mí, el solicitante, algo de confianza , ya que su código base es uno de sus activos más valiosos. También significa que no están avergonzados de su código, que están seguros de que mostrarme el código me ayudará a interesarme en trabajar con ellos.
  • Si no le muestran ningún ejemplo de código, entonces eso no tiene que ser una señal de alerta, pero es aconsejable que ambos pregunten por qué no compartirán (muy probablemente, simplemente no pueden hacerlo por razones legales), así como explicar por qué quieres ver algunos. No creo que mostrar interés en su código vaya a ser visto como un signo negativo, siempre y cuando lo pidas cortés y positivamente.

Y luego hay algunos efectos secundarios más:

Es poco probable que las empresas, las que sí aceptan mostrarle el código, me envíen un paquete de archivos fuente que contenga la última versión de su base de código completa, por razones obvias. Si me muestran algún código, lo harán en forma de una pequeña demostración, lo cual es genial: significa que puedo hablar con uno de mis pares potenciales, me permite hacer más preguntas sobre su cultura de codificación, procesos, y codebase, e idealmente, ayudará a comenzar una discusión profesional en la que pueda demostrar habilidades y conocimientos y aprender más sobre el entorno de trabajo. También significa que puedo ver las herramientas que usan, lo que también es bastante perspicaz; por ejemplo, si el proyecto que me muestran depende en gran medida de un IDE particular, esto significa que todos usan eso, que puede ser bueno o malo. Y finalmente,

tdammers
fuente
1
Si el posible empleador le muestra un código que es claramente malo, recuerde que podría ser una oportunidad para llevarlo a mejorar su código y sus procesos. Como dice el viejo dicho "¡Solo puedo arruinarlo perfecto pero puedo arreglarlo roto!". Además, recuerde que el código que se muestra ao por un candidato probablemente estuvo sujeto a mucho más rigor y revisión que otro código.
akton
@akton Es mi actitud hacia el mal código. Sin embargo, es inútil cuando estás solo en tu búsqueda de "arreglar código desordenado". Pedir ver un buen código podría ayudar a sentir si su futuro equipo valora cosas como SOLID
Simon Bergot
1
"Siempre pido ver algún código" ¿Pero después de qué se te muestra el código? ¿Les estás pidiendo que preparen algo de antemano o te envíen algo después? No importa de qué manera lo mires, parece poco práctico.
Burhan Ali
1
@BurhanAli: Solo pregunto. Muchos se niegan a mostrarme ninguno, y generalmente me dan buenas razones, lo cual está bien. Los que están de acuerdo me dan un recorrido supervisado; Dudo que alguien me envíe un conjunto completo de fuentes para revisar, pero hacer clic en el proyecto en un IDE mientras miro es a menudo aceptable.
tdammers
En muchos casos, pensaría que el código que realmente quiero ver se consideraría cerrado como una ventaja competitiva. Ese será el código que más me importa ... sin embargo, si aceptan mostrarle el código y apesta, probablemente sea una señal de que no entienden el buen código. Si fuera un cliente potencial, probablemente no le mostraría ningún código interno no trivial. Solo yo sin embargo.
Plataforma
14

Sin embargo, ¿sería aceptable que el candidato le pida al entrevistador que le muestre un pequeño código que cree que está bien escrito?

Supongo que eso cae en todo el mantra 'las entrevistas son bidireccionales', pero no esperaría obtener ninguna. Los problemas de propiedad intelectual son el problema más obvio después del hecho de que no hay computadora en la sala de entrevistas, y llevarlo a uno es un poco incómodo.

Además, solo elegirán el código más atractivo y menos significativo que puedan. El mejor código no es realmente un problema, lo peor es. Es la misma razón por la que obtener ejemplos de código de los candidatos es casi inútil.

Telastyn
fuente
10
Todavía es útil para ver si pueden elegir un buen código para mostrarte. La parte más frustrante de lidiar con un código incorrecto a menudo es que nadie reconoce que es incorrecto y debe repararse.
JGWeissman
55
Además, la idea del buen código del entrevistador puede no ser su idea del buen código. Creo que sería útil descubrir eso más temprano que tarde.
Eric King el
1
Lamentablemente, cuando traté de usar el enfoque de "las entrevistas son bidireccionales", la mayoría de los empleadores se han molestado. Todavía no se me ha mostrado el código. La otra cosa que he pedido es un modelo de datos, pero tampoco tuve suerte.
Antonio2011a
12

¿Sería aceptable que el candidato le pidiera al entrevistador que le mostrara un pequeño código que él cree que está bien escrito?

Puedes preguntar lo que quieras, pero:

  • Probablemente no lo entiendas.

  • Si lo obtienes, no te dirá nada útil. Si el 10% de su código es hermoso y el resto es espagueti, aún se tratará principalmente de espagueti.

  • Te parecerás un sabelotodo. Eso no es una gran ayuda si finalmente decides que te gustaría trabajar allí.

  • Es una pérdida de tiempo precioso entrevista.

  • Hay mejores formas de descubrir lo que quieres saber. Haga preguntas como:

    • ¿Cuáles son los indicadores más importantes de la calidad del código?
    • ¿Mantendré principalmente código existente o escribiré código nuevo?
    • ¿Puede explicar brevemente cómo funciona su sistema?
    • ¿Tiene un documento de estándares de codificación y todos lo siguen?
Caleb
fuente
Buen punto ! Lamentablemente, hacer una pregunta como "¿Cuáles son los indicadores más importantes de la calidad del código?", También puede ser percibido como un pantalón inteligente. (Desde mi punto de vista, es una pregunta razonable, pero a muchos empleadores no les gusta sentir que están siendo cuestionados por un potencial subordinado).
Antonio2011a
2
@ Antonio2011a Debería estar bien si preguntas bien, quizás "¿qué métricas de calidad de código buscas aquí?" solo deja en claro que quieres aprender más sobre cómo hacen las cosas. Estás aprendiendo sobre ellos, no administrando una prueba. Podría funcionar incluso cuando solicite código: "¿Puedo ver cómo se ve su código?" en lugar de "Me gustaría una muestra de lo que considera un buen código".
Caleb
3

Bueno, eso depende. Siempre me gustó saber dónde voy a trabajar.

Veo una entrevista de trabajo como bidireccional. La compañía se entera de usted y usted se entera de la compañía. Pedir código puede ser un poco exagerado, pero hacer preguntas relacionadas con el desarrollo debería estar bien.

Por ejemplo, no aceptaría un trabajo en el que la empresa no utilice técnicas ágiles o TDD o no planee adoptar y fomentar tales prácticas. También aprecio cuando una empresa está orgullosa de su producto y su código, cuando parece que el entrevistador está esperando que le pidas que lo veas, así que tiene una excusa para explicar todas las cosas interesantes que hacen.

Patkos Csaba
fuente
Convenido. ¿Intento profundizar en las herramientas que usan? La administración paga por herramientas adicionales (componentes, utilidades) que muchos lugares no tienen. La actitud hacia las herramientas de código abierto siempre es buena también.
ozz
2

Jaja, esa es una pregunta divertida. No me ofendería si alguien me pidiera una muestra de código mientras entrevistaban, pero probablemente tampoco les mostraría ningún código, a menos que me lo pidieran por adelantado y tuviera tiempo de planificarlo cuidadosamente.

Sin embargo, definitivamente entiendo la intención de hacer esa pregunta. Como buscador de empleo, le he pedido la prueba de Joel a un entrevistador antes. No sabían qué era, pero estaban felices de responder.

En algunos lugares, hacer ese tipo de preguntas puede mejorar sus posibilidades, mientras que puede perjudicar sus posibilidades en otros lugares. La belleza de la vida es que si mejora sus posibilidades, ese es el tipo de lugar en el que le gustaría trabajar. Si perjudica tus posibilidades, entonces no hubieras querido ese trabajo de todos modos.

No veo nada que perder al preguntar cortésmente y poder explicar por qué quieres verlo.

Mark E. Haase
fuente
"La belleza de la vida es que si mejora tus posibilidades, entonces ese es el tipo de lugar en el que te gustaría trabajar". +1
Spidey
2

Hice esta pregunta en mis dos entrevistas, donde afirmaron que tenían desarrolladores senior que migraban a asp.net mvc3 o 4 o cuando dijeron que querían un código muy comentado. He rechazado en ambas ocasiones debido a la falta de su conocimiento sobre el estándar de código real. El único estándar que encontré fue que si funciona copie y pegue y funcionará. No haré esta pregunta si estoy haciendo un nuevo proyecto o si tengo que escribir un código independiente de otros en el equipo. Definitivamente veré el código si me contratan para arreglar un software o función existente y no diré que sí a menos que sepa la respuesta. Suponga que no pregunta y le dicen si puede arreglar el selector de fechas para que comience desde la fecha de hoy. Cuando mira el código heredado, no ve jquery o jquery ui, sino un selector de fechas personalizado que tiene todas las fechas almacenadas en el archivo xml y cada noche se ejecuta un trabajo cron para actualizar los próximos meses. Eso comenzaría el dolor de cabeza ya que el código para lograr esto es menor que las palabras en este ejemplo. Si va a trabajar en su código, solicite verlo. No preguntar es como cotizar un trabajo creyendo que el cliente dijo que es pequeño. Es posible que posea 20 acres de tierra y la jardinería en su 1 acre es pequeña para él, pero Gardner no puede cobrar 50 libras solo porque todos sus pequeños trabajos comienzan desde 50.

Farrukh Subhani
fuente
1

Tiendo a trabajar para empresas donde al menos parte de su trabajo es de código abierto, por lo que es trivial encontrar ejemplos de código. Averiguo quién trabaja en la empresa, luego descubro sus identificadores en línea. Dado que las personas tienden a usar el mismo nombre de pantalla, una y otra vez, es fácil encontrar dónde han comprometido el código, ya sea que estén en Github, Bitbucket o en otro lugar por completo.

Mi compañía actual tiene una gran cantidad de código alojado en Github, por lo que fue fácil ver con qué trabajan, qué tan grande es su base de código y lo que ya no parece ser de interés.

Nunca pediría una muestra, simplemente porque te mostrarán el mejor código que tienen. Este no es el código con el que trabajarás. Probablemente esté alojado en una campana de cristal en una habitación cerrada. Trabajará con el código desordenado con el que muchas personas han tenido que meterse.

kcunning
fuente
0

Esto es increíble si puedes conseguirlo. A veces no es posible sin acuerdos de tipo NDA, pero siempre es bueno intentarlo. Para aumentar sus probabilidades, informe a sus entrevistadores que desea esto con mucha anticipación (un par de días) para que puedan tener algo en mente que mostrarle.

luego
fuente