Las preguntas no son el niño, sino el junio. 22 preguntas al empleador en una entrevista para el puesto de "Desarrollador de Python Medio"

imagen

Introduccion


Durante 2 años tuve la suerte de asistir a más de cuarenta entrevistas como candidato para el puesto de "desarrollador de Middle Python". En las últimas quince entrevistas, me di cuenta de la necesidad de hacer preguntas al empleador para no encontrar sorpresas laborales en el futuro. Además de las preguntas básicas que los candidatos suelen hacerle al empleador, decidí formular mis preguntas. Cuando hice estas preguntas en las entrevistas, recibí una variedad de reacciones de los entrevistados. Alguien dijo que era meticuloso, alguien pensó que estos problemas eran demasiado comunes, y alguien incluso comenzó a ponerse nervioso (sonrojarse) e inmediatamente interrumpió la entrevista con una excusa absurda de que tenía una reunión. En este artículo me gustaría hablar sobre las ideas generales de asistir a tales eventos y también presentar mis 22 preguntas que hago en la entrevista al empleador.


Ideas generales


Una entrevista con un desarrollador intermedio a menudo se ve igual que una entrevista con un junior.

Realmente lo es Esto se debe al hecho de que muchos líderes de equipo / directores técnicos no saben exactamente qué quieren ver en el desarrollador intermedio. Por lo tanto, en tales entrevistas generalmente se les pide que "escriban un decorador" o "escriban un tipo de burbuja en cualquier idioma" .
Además, pocas personas entienden cómo un desarrollador junior difiere de un desarrollador medio. Alguien dice que Middle es un desarrollador con experiencia de un año y medio y alguien de tres. En mi opinión, el desarrollador intermedio es aquel desarrollador que puede regalar de forma segura un proyecto pequeño o cualquier parte de un proyecto grande, y que él fue responsable de ello. También un criterio importante para un desarrollador intermedio es la capacidad de ser un mentor para alguien o simplemente la capacidad de ayudar a un nuevo empleado a infiltrarse en un proyecto.

Una entrevista no es un examen, sino una oportunidad para identificar cómo encajan la empresa y el candidato.

Esta regla importante a menudo no es entendida por los propios empleadores. Una vez estuve en una entrevista donde me vi obligado a sacar un boleto y responder al entrevistado en una hoja de papel. Además, a lo largo de esta entrevista, hablamos durante diez minutos. El candidato suele rastrear el mismo comportamiento. A menudo, el candidato quiere responder a todo y se comporta como un excelente estudiante desde el primer escritorio. Pero aquí también es importante comprender que el empleador no está particularmente interesado en qué tan bien conoce la "diferencia entre Python2 y Python3" . Es mucho más importante que el empleador entienda en general cómo mantiene una entrevista, cómo razona, cómo reacciona ante las fallas, etc.

El desarrollador intermedio no puede estar sin experiencia.

Por supuesto, es posible, pero después de algún tiempo esto traerá enormes problemas tanto para el jefe de este desarrollador como para el proyecto. Para los candidatos superdotados sin experiencia, los especialistas en recursos humanos tienen su propio término: "desarrollador junior fuerte". Lo más probable es que a estos desarrolladores se les ofrezca una buena compensación monetaria, pero tendrán responsabilidades como desarrolladores junior. Volviendo a los desarrolladores intermedios, me gustaría señalar que el medio es el que ha trabajado en el desarrollo durante algún tiempo y comprende en qué procesos consiste. Middle también sabe cómo trabajar con varias herramientas (monitoreo, implementación, creación de perfiles, pruebas) que una persona sin experiencia es poco probable que encuentre con fines de capacitación.

Las habilidades blandas se convierten en un factor importante en la posición de desarrollador medio.

Cuanto más alta sea la posición, más personas tienen que interactuar. Por lo tanto, muy a menudo al contratar un puesto de desarrollador intermedio, se crean entrevistas adicionales con un especialista en Recursos Humanos para compilar un retrato psicológico de un futuro empleado. Esta entrevista debe tomarse tan en serio como la técnica. Debe comprender que continúa trabajando con estas personas. Y si cree que sus futuros colegas no son muy adecuados para usted, entonces es mejor rechazar de inmediato una mayor cooperación.

Es menos probable que se realicen trabajos de prueba para el puesto de desarrollador intermedio.

Esta afirmación es bastante subjetiva. Personalmente, realmente me encontré con tal hecho. Conecto esto con el hecho de que el empleador está más interesado en su currículum. Si el currículum no se compila bien, lo más probable es que deba esperar la tarea de prueba.

Preguntas


En esta sección, se presentará la lista principal de preguntas que le hago al empleador en la entrevista. Quizás después de algún tiempo esta lista se ampliará o reducirá. Cabe señalar que estas preguntas deben hacerse con precisión en entrevistas técnicas y es aconsejable con quién interactuará más adelante.

1. ¿Cómo van las cosas con las pruebas? ¿Qué pruebas estás escribiendo? ¿Qué bibliotecas utilizas para probar? ( fábricas , moki , etc.)

Las pruebas son una parte muy importante de cualquier desarrollo. En mi opinión, todos los desarrolladores deberían escribir pruebas, al menos de alguna forma. Los únicos que pueden perdonar la falta de pruebas son las startups. En las startups, el curso del movimiento a menudo cambia debido a que los proyectos antiguos generalmente no son necesarios para nadie. Por lo tanto, garantizar la calidad de tales proyectos fue una pérdida de tiempo. Para todas las demás empresas, no debería haber piedad en este asunto. Debe comprender que la introducción de un nuevo empleado en el proyecto al principio dará lugar a varios errores en el código. Y las pruebas en este caso son su reaseguro personal y el reaseguro de quien pondrá sus decisiones en producción.

Cuando el empleador responda la segunda parte de la pregunta, podrá comprender qué tan bien el equipo garantiza la calidad de su producto y también las posibles responsabilidades del desarrollador que no se discutieron en la vacante.

Vale la pena señalar que en este tema, los expertos técnicos a menudo comienzan a perderse. A veces alguien dice que el equipo acaba de comenzar a escribir pruebas y aún no está familiarizado con todas las sutilezas de este oficio. Pero a veces escuché esta respuesta: "Los probadores deben participar en las pruebas, y el desarrollador debe crear". Esto es absolutamente falso.

El desarrollador debe escribir el mínimo requerido de pruebas, porque es él quien sabe cómo debería funcionar la funcionalidad que creó. Nadie habla de la inutilidad de los probadores. Pero es importante comprender que los desarrolladores también deben ser responsables de la calidad de su código.

2. ¿Qué hace el desarrollador con el código antes de enviarlo al repositorio?

Esta pregunta se refiere a la verificación local de su código contra varios parámetros. Aquí hay una breve lista de qué código generalmente se verifica antes de enviarlo al repositorio:

  • Flake8 - análisis de código para cumplir con PEP8 ,
  • Pylint - análisis de código estático,
  • Cobertura : análisis de código para cobertura de prueba,
  • Tox : verificar la compatibilidad del código con diferentes versiones de paquetes individuales y con diferentes versiones de Python.

La ausencia de este caso en el desarrollo no es crítica. Además, en muchas empresas, este caso se usa directamente en CI y el desarrollador no lanza nada localmente. Incluso si esto no se usa en el desarrollo, sería bueno que las personas que lo entrevistan tengan una comprensión básica de estas herramientas.

3. ¿Hay proyectos de CI / CD? ¿Hay un ingeniero DevOps ?

Esta pregunta no tiene inconvenientes y le pido que comprenda mejor el dispositivo de la empresa. Si no hay CI / CD en los proyectos y el ingeniero de DevOps también está ausente, entonces es probable que lo haga. Por lo tanto, este punto también es mejor para discutir en una entrevista.

4. ¿Hay una revisión de código? Como va

La primera parte de la pregunta se puede dejar sin comentarios, porque todos entienden la importancia de este evento. Pero vale la pena señalar que personalmente estaba interesado en cómo funciona exactamente. A menudo sucede que cada equipo revisa al desarrollador que realizó la Solicitud de fusión. Pero a veces sucede que hay un mentor / mentor sobre cualquier desarrollador, y es él quien revisa al desarrollador. Considero que el primer enfoque es más correcto, ya que cuanta más gente revise el código, mejor será para el proyecto y el equipo. Aquí, aspectos como el trabajo en equipo, la responsabilidad colectiva y un aumento en el factor del autobús se ven afectados de inmediato.

5. ¿Qué sistema de control de versiones utiliza?

En este momento en Rusia hay muchas compañías que todavía usan hg , svn y otros sistemas de control de versiones antiguos. Esto es especialmente cierto para las empresas que han estado en el mercado durante más de 10 años. Esta pregunta prueba más la antigüedad de la empresa susceptible a las nuevas tecnologías. También vale la pena señalar que participé en el desarrollo usando hg durante un corto período de tiempo y no me dio mucho placer.

6. ¿Utiliza git / hg-flow o alguna metodología específica cuando trabaja con git / hg?

Esta pregunta se desprende de la pregunta anterior sobre los sistemas de control de versiones. Por lo tanto, si el equipo no usa git / hg , entonces no tiene sentido preguntarlo. Si la empresa usa git / hg , esta pregunta le mostrará qué tan bien se depura el proceso de desarrollo.

7. ¿Utiliza metodología de desarrollo (scrum, kanban, etc.)?

En el desarrollo, es importante adherirse a un enfoque específico (metodología). El enfoque de desarrollo más popular es iterativo. Este enfoque le permite determinar su contribución al proyecto. Según tengo entendido, si un equipo usa algún tipo de metodología, esto definitivamente es bueno. Esto le permite determinar su efectividad. También le ayuda a comprender los plazos asignados a las tareas. Es lo mismo que los escolares tienen 4 trimestres de un año, donde se les da una calificación para luego determinar la calificación final del año.

8. ¿Se utilizan sistemas de monitoreo en proyectos (Centinela, NewRelic, etc.)?

La presencia de sistemas de monitoreo en un proyecto es tan importante como la presencia de pruebas. Se trata de sistemas de monitoreo que le permiten evaluar objetivamente el trabajo de todo el sistema en función de las acciones que realiza el usuario final. Si no hay sistemas de monitoreo, debe pensar en la calidad del producto fabricado. Es como un cocinero que cocina comida, pero nunca le pregunta a nadie si es sabrosa.

9. ¿Utiliza el proyecto un sistema para almacenar registros y trabajar con ellos (tecnología ELK, etc.)?

Para mí, este también es un indicador importante. Si no hay ELK, es muy difícil determinar la causa de un error complejo en el sistema. Esta pregunta no es tan importante como la pregunta número 8, pero también vale la pena preguntar para comprender cuán rica es la experiencia del equipo en la elaboración de perfiles de errores complejos.

10. ¿Qué bases de datos se utilizan en el proyecto? ¿Por qué exactamente estos?

Esta pregunta tiene como objetivo evaluar la competencia del entrevistado. Muy a menudo cuando uso bases de datos antiguas escucho algo como "sucedió históricamente". Considero que esta respuesta es inapropiada. El técnico debe comprender los inconvenientes / ventajas de la base de datos que está utilizando. Esta pregunta debe hacerse solo si usted está bien versado en varias bases de datos y sus diferencias.

11. ¿Qué versión de Python se usa en proyectos? Si se utiliza la versión de Python2.x, ¿hay algún plan para migrar a Python3.x? ¿Y cómo va a migrar de una versión a otra?

Esta pregunta, como la anterior, tiene como objetivo evaluar la competencia del entrevistado, así como evaluar su razonamiento. Debe entenderse que los empleadores son muy analfabetos y que estos problemas pueden identificarse ya en la etapa de entrevista. Antes de hacer este tipo de preguntas, le recomiendo que profundice en ellas usted mismo.

12. ¿Busca la compañía un desarrollador fullstack o un desarrollador back-end?

Hago esta pregunta solo si la compañía misma no la especificó antes de la entrevista. Los trabajos fullstack-developer en el mercado laboral se pueden encontrar con bastante frecuencia. Muchas compañías encuentran esto beneficioso para ellos mismos. Mi experiencia personal me dice que no hay desarrolladores fullstack, ya que el front-end y el back-end se han convertido en direcciones muy diferentes desde que surgió la Web. En otras palabras, "No puedes sentarte en dos sillas".

En la mayoría de los casos, la compañía está satisfecha de que no conoces la interfaz y espera que la aprendas directamente en la batalla. Aclararé que la vacante de desarrollador fullstack es inaceptable para mí personalmente. Muchas personas consideran que esta es una excelente oportunidad para sumergirse en el rico mundo de la interfaz y sin pagar un solo rublo.

13. ¿Se utiliza la tecnología de contenedorización en proyectos?

Esta pregunta es un complemento de la Pregunta No. 3.

14. Pregúntele al entrevistador un poco sobre lo que estaba haciendo antes de este proyecto y cuánto tiempo había estado en el proyecto.

Esta pregunta es muy importante. Cuanto más rica sea la experiencia de su entrevistado, más afectará sus habilidades con el tiempo. Es especialmente bueno hacer una pregunta de este tipo en una pequeña empresa donde la rotación de personal es lenta.

15. ¿Tiene la empresa una evaluación anual / trimestral de los empleados y cómo sucede?

Es útil para cualquier empleado recibir comentarios de sus colegas. Si la empresa tiene eventos especiales para esto, entonces esto es maravilloso. Si no, entonces no hay nada de qué preocuparse. En cualquier caso, nadie prohíbe solicitar comentarios de colegas de forma gratuita.

16. ¿La empresa tiene procesamiento? Si es así, ¿se compensan y con qué frecuencia ocurren?

A pocas personas les gusta reciclar, especialmente si eres un estudiante o un padre de enfermería. Hay una gran cantidad de empresas que ponen el reciclaje a la vanguardia. Para entender que la empresa no tiene refinerías o es rara, es necesario hacer preguntas de este tipo. Si la empresa ocasionalmente se refina, entonces no hay nada crítico. Si el refinado es más frecuente, entonces vale la pena considerar la viabilidad de permanecer en la empresa.

17. ¿Qué tan fuerte es la burocracia en la empresa? (Tasa de 1 a 10)
Muchos desarrolladores ni siquiera son conscientes de la presencia de la burocracia en la esfera de TI, pero, desafortunadamente, existe. Esto se aplica especialmente a grandes empresas antiguas o a empresas que trabajan con el estado. ordenes. El grado de burocracia en una empresa depende solo de la imaginación de la gerencia. Típicamente, la burocracia consiste en varias aplicaciones formales, vistas, accesos, conflictos de intereses entre varios departamentos de la compañía y la escritura de documentación cruda aburrida en Word. El principal problema de tal burocracia es la inhibición muy fuerte del proceso de desarrollo. Lo que se hace en una empresa normal en un día hábil, tardará semanas. En pocas palabras, cuanto más fuerte sea la burocracia en la empresa, más lento será el desarrollo del producto y su desarrollo como especialista.

18. ¿Cuál es la situación con la extracción de recursos?

Los recursos se entienden como computadoras nuevas para empleados, servidores, dominios, licencias, etc. Este problema también se puede atribuir al problema anterior de la burocracia.

19. ¿Cómo se relaciona el entrevistador con las nuevas implementaciones en el proyecto?

Esta pregunta nos permite evaluar la democracia dentro del equipo. Y también esta pregunta le permitirá comprender cuánto pesa la voz de un desarrollador común para el equipo y el mentor.

20. ¿La empresa participa en alguna conferencia de TI y tiene publicaciones sobre temas de TI?

La conferencia es una gran oportunidad para que el desarrollador y la empresa se declaren a sí mismos y sus logros. Si la empresa se publica y participa en conferencias, en algún momento también puede aprovechar esta oportunidad. Si esto no es interesante para usted, no tiene sentido preguntar al respecto.

21. ¿Hay algún mitaps dentro de la empresa?

Aquí hablaremos sobre mitaps para desarrolladores dentro de un equipo o entre equipos. Las mitapas son muy importantes. Le permiten averiguar quién y qué está haciendo exactamente en un momento dado. Si tiene problemas para hablar en público, esto también contribuirá al desarrollo de sus habilidades blandas .

22. ¿La empresa tiene pasantes y un sistema de mentoría?

Los pasantes son un futuro potencial para la empresa. Si la compañía tiene pasantes, entonces quizás puedas ser un mentor para ellos y compartir tu experiencia personal. La tutoría también es una de las áreas donde puede desarrollarse.

Conclusión


Todo lo anterior es mi pensamiento basado en la experiencia personal y no es información 100 por ciento verdadera. La moraleja principal del artículo es que es necesario verificar no solo al candidato, sino también al empleador. Además, no se ponga nervioso antes de las entrevistas o en las entrevistas. Debe comprender que los entrevistadores son las mismas personas que usted, que también están equivocados o no saben o no entienden algo.

Source: https://habr.com/ru/post/es428283/


All Articles