Acabo de entrevistarme por teléfono con una empresa para un puesto de desarrollador de software graduado y me hicieron las siguientes preguntas. Debo agregar que la empresa en cuestión no es un proveedor de bases de datos.
¿Cómo funciona un optimizador de consultas?
Si una base de datos funcionara mal, ¿cómo usaría los registros de rendimiento para descubrir el problema?
En una primera entrevista telefónica, pregunté si hacen esas preguntas a todos los desarrolladores de software candidatos (graduados o con experiencia). Respondieron que les gusta probar el conocimiento de sus candidatos sobre el desarrollo de bases de datos.
Quiero escribir a la compañía para decir que estas preguntas no son razonables de hacer en una entrevista de desarrollador de software y solicitar que se termine mi entrevista.
Me gustaría verificar la razonabilidad de los siguientes supuestos
a) Esas preguntas no pueden clasificarse equitativamente como preguntas de desarrollo de bases de datos.
b) Creo que las preguntas son apropiadas para una entrevista de DBA pero totalmente irrazonables para una entrevista de desarrollador de software (con experiencia o no).
c) La primera pregunta solo es relevante para un proveedor de base de datos.
d) La segunda pregunta no es justa porque los desarrolladores de software generalmente no se ocupan de los registros de rendimiento de la base de datos, ya que ese es el trabajo del DBA.
Quizás algunos de ustedes tengan la amabilidad de comentar mis suposiciones o puedan tener otras sugerencias, antes de escribir a la compañía.
Respuestas:
Si fuera un entrevistador (que a veces lo soy) y recibiera una carta de un candidato quejándose de que las preguntas eran injustas y que querían que se volviera a hacer, agradecería a mis estrellas de la suerte que esquivamos esa bala e inmediatamente trasladamos la solicitud a la pila "rechazar". Actuar de esta manera solo demuestra que eres un quejumbroso y que no tienes la actitud de "poder hacer" que uno busca.
a. Las preguntas eran razonables para el tema del desarrollo de la base de datos.
si. falso. Cualquier cosa que tenga que ver con el desarrollo de software es un juego justo. Tenga en cuenta que obtener una respuesta incorrecta no lo descalifica automáticamente para el puesto (u otros puestos en la empresa); puede ayudar a clasificarlo como alguien que no sería el más adecuado para un trabajo orientado a la base de datos.
C. falso.
re. falso. En primer lugar, puede que no haya un DBA dedicado; segundo, un desarrollador de software debe ser consciente de una amplia gama de problemas que podrían afectar el rendimiento (y la precisión), y tener al menos un alto nivel de comprensión de la gestión de bases de datos.
Toma esto como una lección de que hay cosas que aún no sabes. Ahora sabes qué estudiar para la próxima vez.
fuente
Creo que es una pregunta justa (y suena como una pregunta que probablemente hace Google). :) El punto de la pregunta parece NO probar realmente su conocimiento detallado de las consultas de la base de datos y demás, sino más bien observar cómo abordaría y resolvería un problema. La capacidad de hacer una tarea que ya ha hecho antes es necesaria, pero la capacidad de pensar en pie y abordar un nuevo problema es una habilidad vital.
Cuando se me presenta una pregunta como esa, si me falta el conocimiento específico de la base de datos dada, creo que una respuesta justa comenzaría, "Bueno, no tengo mucha experiencia con esa tecnología en específico, pero en en general, examinaría los registros de rendimiento para encontrar las operaciones que se realizan con mayor frecuencia e intentar clasificarlas según el tiempo de procesamiento. De esa manera podría evaluar qué operaciones son las más caras y podrían ser buenas candidatas para la optimización ".
No necesita ningún conocimiento técnico específico para la respuesta anterior, pero le muestra a su entrevistador que está listo para resolver un nuevo problema.
fuente
Si la pregunta es justa o no justa, contratan para que hagan las reglas y se les permite preguntar lo que quieran (ok, no todo, pero casi todo;))
Y si todavía quieres el trabajo, no creo que te hagas un favor si los escribes.
fuente
Una estrategia muy común en las entrevistas de trabajo es hacer una pregunta que esté más allá del nivel del puesto para el que se está entrevistando y ver cómo se enreda un candidato. Con las preguntas formuladas, se podría esperar razonablemente que responda algo como:
O incluso:
En general, esperaría que los candidatos de nivel de entrada tengan al menos una comprensión básica de cómo funcionan las bases de datos y que también tengan una actitud de "No sé, pero intentaré aprender".
Si hubieras hecho un intento honesto y hubieran terminado la llamada telefónica inmediatamente, entonces tendrías una verdadera razón para sentirte mal, pero como diría, deberías aprender a parecer seguro mientras admites que no sabes las cosas.
fuente
Conozco entrevistadores que no consideran una entrevista completa a menos que puedan encontrar algunas preguntas técnicas semi-relevantes que el candidato no puede responder. El objetivo es ver cómo el candidato aborda ese tipo de preguntas.
¿Admitiendo que no lo saben? Bueno. Inventar spin / BS para una respuesta? La puerta.
fuente
Los roles de IMO, desarrollador de software y DBA no están bien categorizados en muchas empresas. Por lo general, también debe conocer al menos algunas partes de las bases de datos si es un desarrollador de software. Por lo tanto, las preguntas me parecen justas, siempre que no se las pida más frescas.
fuente
Creo que esto es justo. No trabajo en un proveedor de base de datos, pero saber cómo leer los planes de consulta (y los registros de rendimiento, en menor medida) es MUY importante. También es bueno saber cómo funciona el optimizador de consultas.
En respuesta a tus balas:
a) ¿Eh? Seguro que están relacionados con el desarrollo de bases de datos y si está escribiendo código y su programa necesita consultar datos, entonces es relevante.
b) En realidad no. Un DBA debería conocer mejor las respuestas, pero un buen desarrollador también debería saber una respuesta. No esperaría una respuesta tan detallada como la de un DBA, pero esperaría algo. Y si un desarrollador no lo sabe, podría aceptar como respuesta "le pediría al DBA que me enseñe" si el desarrollador todavía es relativamente nuevo en el trabajo de la base de datos.
c) No, no lo es. Es relevante para cualquier persona que esté preocupada por el rendimiento de sus consultas a la base de datos. Si no le importa qué tan rápido se ejecutan sus consultas, puede ignorar esto. Por otro lado, sus clientes, que tienen un rendimiento cada vez peor en sus sitios web, pueden estar en desacuerdo.
d) Quizás. No todos los desarrolladores ven los registros de rendimiento, pero si hay un problema, puede esperar que un DBA le envíe por correo electrónico las partes relevantes y le explique el problema si no sabe cómo interpretarlo. Como mínimo, un desarrollador debería poder mirar un plan de consulta y ver los problemas básicos (Escaneo de tabla completa => Malo, Escaneo de índice rápido => Bueno).
Como recién saliste de la escuela y es posible que no hayas cubierto estas cosas en tus clases, puedes responder diciendo "hablaría con un desarrollador o DBA más senior y pediría ayuda para entender esto". Los entrevistadores pueden aceptar eso, ya que muestra al menos que estás dispuesto a aprender cosas nuevas, ya que aún no has tenido la experiencia para descubrirlas. La otra opción es ir y aprenderlos por su cuenta.
¡Buena suerte en la próxima entrevista!
fuente
Tienen todo el derecho de preguntar qué quieren. Es posible que no haya cubierto estos temas en su plan de estudios universitario, pero eso no significa que otros entrevistados no hayan tenido o tengan suficiente interés en el tema para ir más allá del plan de estudios. Están buscando lo mejor. Espero que al menos trataste de responder las preguntas y no te pusiste a la defensiva. Si yo fuera ellos y recibiera una carta tuya, estarías en la lista negra.
fuente
El desarrollo de software es una profesión multidisciplinaria. No creo que pueda obtener ningún millaje pidiendo una repetición de su entrevista. "Razonable" en este contexto es si una compañía determinada lo eliminaría de consideración solo en base a su falta de habilidades de DBA. Hacer la pregunta es perfectamente razonable.
Cuanto más avance en su carrera, más necesitará saber. Si se pregunta por qué un desarrollador de software debería preocuparse por la optimización de consultas, considere el diseño de la aplicación. Los nuevos proyectos a menudo implican discusiones de modelado de datos. Esto conducirá a discusiones de normalización, que conducirán al trabajo de diseño de la base de datos. Los buenos principios de diseño fluyen hacia la implementación. Los diseños malos / ineficaces a nivel arquitectónico tienen consecuencias que a menudo son costosas de remediar.
fuente
El concepto de "justo" no importa aquí. Esta es una entrevista de trabajo.
No pueden rechazarlo por su color de piel, religión, etnia u otras cosas similares. Pero pueden rechazarlo por cualquier otra razón, una razón tan estúpida como el color de los zapatos que usó en la entrevista. Y es posible que nunca sepas la verdadera razón.
Es importante ser resistente al entrevistar. Entiendo la inclinación a analizar en exceso, y lo he hecho con la suficiente frecuencia. Pero lo mejor que puede hacer es aceptar que la vida no es justa y mantener suficientes entrevistas en curso para que no tenga que poner todas sus esperanzas en ninguno de ellos.
fuente
Como otros han dicho, las preguntas son completamente válidas. Sin embargo, sería extraño que el entrevistador decidiera contratarlo por completo en base a esas preguntas. Tal vez querían escucharte razonar sobre un tema con el que quizás no estés familiarizado, y esa es una técnica de entrevista válida.
Si yo estaba contratando, no se descartaría si usted dijo "lo siento, no sé mucho acerca de los optimizadores de consulta, pero puedo aprender". Sin embargo , te descartaría si comenzaras a quejarte sobre las preguntas.
fuente
Amigo, déjame decirte directamente: no hay forma de evitar las bases de datos como desarrollador de software. Todos los proyectos en los que he estado involucrado hasta ahora ocuparon al menos la mitad del tiempo de desarrollo. El diseño de la base de datos es una parte integral del desarrollo de software y cuanto más sepa, mejor podrá resolver el problema. Además, no se preocupe por el tipo de preguntas y su contexto es demasiado. La mayoría de las veces, los empleadores solo quieren ver si puede pensar en sus propios pies para resolver el problema en cuestión o si tiene la confianza de al menos decir algo sensato sobre el asunto. Como eres un graduado, se dan cuenta de que de todos modos tendrán que pasar tiempo enseñándote todas estas cosas, pero quieren saber si valdrá la pena el tiempo y el esfuerzo. Mantente fuerte y modesto!
fuente
¿Qué diablos crees que pasará si envías esa carta? ¿Te imaginas que dirán "Hmm, este candidato tiene un punto. Deberíamos tenerlo de vuelta y hacerle preguntas más fáciles"? Te garantizo que no lo harán. De hecho, lo que harán es pasar la carta y reírse.
Supere su sentido de derecho. Estás saliendo en el mundo real.
¿Cómo crees que las preguntas sobre las bases de datos son injustas? Usted piensa que los programadores no necesitan conocer bases de datos, pero aparentemente esta compañía sí. ¡Es por eso que hacen las preguntas! Los entrevistadores no hacen preguntas solo por el placer de hacerlo. Hacen las preguntas para averiguar si sabes las cosas que necesitan. Si no sabes lo que necesitan, entonces no eres la persona adecuada para el trabajo.
Si no quieres aprender sobre bases de datos, está bien, pero no te quejes si alguna compañía no quiere contratarte. No se te debe un trabajo.
fuente
¿Cómo son estas preguntas no justas? Los desarrolladores trabajan con bases de datos. ¿No cree que al menos deberían estar familiarizados con los factores que intervienen en hacer que las consultas a la base de datos sean eficientes y rápidas? No todas las empresas tienen DBA internos ... e incluso si lo tiene, eso no le quita la responsabilidad de escribir consultas efectivas lejos del desarrollador.
fuente
Si hacen las preguntas a todos los candidatos, entonces son justos.
No importa si usted siente que las preguntas son apropiadas para la posición que sólo importa si el empleador siente que son apropiados - y si piden entonces su probable que lo hacen (ya sea porque reflejan las habilidades necesarias o porque se han encontrado que las respuestas que obtienen les dicen cosas interesantes sobre el entrevistado).
Por último, parece que tiene algunas ideas extrañas sobre los límites del mandato de un desarrollador: nunca (hasta donde puedo recordar en una carrera de 25 años hasta la fecha) trabajé con un DBA dedicado ...
fuente
En cuanto a las preguntas, creo que esta podría ser mi empresa: hacemos este tipo de preguntas a CADA candidato como parte de una entrevista telefónica. Siempre. Nos da un estándar para trabajar.
La mayoría de las respuestas anteriores lo resumen bastante bien ...
a) Queremos personas con amplia experiencia, no personas que solo puedan hacer algunas cosas.
b) Las preguntas están ahí para ayudarnos a sondear su conocimiento, es posible que no conozca la respuesta completamente (o en absoluto) las preguntas son un punto de partida para que amplíe su conocimiento y experiencia.
c) Recuerde que la entrevista está ahí para nuestro beneficio Y EL SUYO ... a partir de los tipos de preguntas que usted debería tener una idea del papel y la empresa y si encajamos con usted y si encaja con nosotros ...
d) es trabajo, si no logra pasar la entrevista, entonces crezca, deje de lloriquear e intente mejor en la próxima entrevista.
fuente
Parece que no tienen un DBA, por lo que también querían que desempeñaras ese papel. Esto es habitual para las pequeñas empresas.
fuente
No veo absolutamente nada de malo en ello. ¿Por qué un desarrollador, especialmente si termina trabajando en la base de datos, no debería estar al tanto de tales elementos?
¿Debe un desarrollador de software no conocer el software de optimización o cómo acceder a los registros de eventos de la aplicación para resolver un problema de rendimiento? Si es así, ¿por qué no es lo mismo para alguien que es desarrollador de bases de datos? ¿Por qué no pueden ser uno en lo mismo?
Si estaba entrevistando a alguien para un puesto de desarrollo de software que también involucraba el desarrollo de bases de datos, tiene toda la razón, me aseguraré de que estén conscientes no solo de lo que están haciendo, sino de que pueden aumentar el rendimiento de su código o el código existente como base de datos puede ser un gran cuello de botella.
En lugar de desarrollar una actitud, quizás un mejor curso de acción hubiera sido "No sé la respuesta, pero esto es lo que haría para encontrarla".
fuente
Como otros han señalado, en una entrevista casi cualquier tipo de pregunta es un juego justo siempre que no toque algún tipo de área legalmente protegida (por ejemplo, edad, raza, sexo, etc.) y no es inusual que los entrevistadores tomen preguntas solo para ver cómo reaccionas a la pregunta y cómo tratarías de encontrar una solución a la pregunta. Además, dado que parece ser un recién graduado, son un poco limitados en cuanto a poder preguntarle sobre su experiencia laboral y qué tipo de problemas ha resuelto en un entorno de producción. Por lo tanto, si la empresa realiza una gran cantidad de trabajo orientado a la base de datos, las preguntas que formulan también pueden ser relevantes para el puesto que estaría entrevistando.
Con respecto a sus suposiciones:
Tal vez tal vez no. Si está desarrollando una base de datos, utilizará un optimizador de consultas y planificará de vez en cuando para intentar asegurarse de que no haya problemas obvios con sus consultas. Si la empresa cuenta con administradores de bases de datos o expertos que podrían revisar las consultas, es posible que no tengan tiempo para analizar todo y tampoco desearían analizar todas las consultas mal codificadas. Del mismo modo, tampoco es inusual que los desarrolladores sean responsables de mantener su entorno de desarrollo, incluir cualquier base de datos y hacer que los DBA se encarguen del lado de la producción.
Probablemente serían apropiados para una entrevista de DBA; pero independientemente, también son temas con los que un desarrollador debería estar familiarizado, aunque solo sea en el nivel de ser capaz de reconocer dónde podría estar un problema y de solucionar algunos problemas básicos. Como mencioné antes, si la compañía tiene recursos limitados, entonces querrán asegurarse de no perder el tiempo de las personas con algo que podría ser un problema básico.
Los detalles específicos pueden ser específicos del proveedor, pero los conceptos generales se pueden aplicar en cualquier lugar y, a veces, mostrarle que comprende los conceptos generales es todo lo que necesita. Si no desea quedar encerrado en una sola pila de desarrollo (es decir, LAMP ), deberá ser capaz de mostrar durante las entrevistas que comprende los conceptos básicos y se siente cómodo moviéndose a diferentes pilas de desarrollo.
Esto es generalmente cierto, pero si parte de su trabajo es escribir software para una base de datos determinada que debe ser altamente receptiva, entonces deberá asegurarse de realizar el mejor esfuerzo para escribir esas consultas para que un colega que sea un experto en un área determinada no está empantanado con consultas mal escritas. Si bien es posible que no necesite conocer los detalles más finos de lo que le dicen los registros, es posible que deba identificar problemas obvios.
¡Ojalá todo esto ayude!
fuente
El hecho de que sea un desarrollador softare no significa que solo deba conocer los temas del desarrollador de software. Tener una amplia variedad de conocimientos, desde administración de servidores hasta tecnologías de bases de datos, es en realidad una habilidad muy útil para tener como desarrollador. No tendría problemas para hacer este tipo de preguntas a los candidatos. Si no lo hacen bien, está bien, eso no los tacha de la lista (no espero que sepan todo), pero si pueden responder, eso me muestra que el desarrollador es mucho más que solo el típico programador de habilidades, y esos son una raza rara.
fuente
También tengo una disputa similar con un posible empleador que me hizo una pregunta sobre una tapa de registro. Te pregunto, ¿qué tiene que ver la forma de una tapa de registro con la programación?
fuente
Respuestas del formulario Bueno, no estoy seguro, pero lo buscaría yendo a, y también son buenas. Nadie piensa que lo sabes todo, pero poder buscar cosas es una habilidad clave
fuente