Después de un tiempo, estamos contratando nuevamente, y estoy revisando las pruebas para programadores; algunos de ellos están un poco desactualizados. ¿Cuáles son algunas de las preguntas de tipo FizzBuzz para desarrolladores web y SQL? Es decir, no es demasiado trivial, pero puede resolverse en cinco a diez minutos con lápiz y papel y sin Google.
Por lo general, elimino alrededor de dos tercios o más de los candidatos en función de su CV, y luego todos menos algunos candidatos realmente buenos en una entrevista de una hora (que puede ser por teléfono). En este punto, el candidato está escribiendo una prueba de personalidad y tiene la oportunidad de escribir un poco de código similar a FizzBuzz. Por lo tanto, no estoy tratando de eliminar a un grupo de candidatos, pero estoy tratando de validar mi evaluación inicial de que el candidato es contratable y capaz de codificar.
Respuestas:
Veo FizzBuzz como una prueba para ver si las personas realmente saben lo que dicen saber en su currículum. No lo usaría como otra cosa que una pregunta para descartar candidatos que no saben de qué están hablando.
Un reemplazo adecuado de SQL sería simplemente pedirle al candidato que escriba una declaración SQL, como seleccionar los campos Nombre de dos tablas unidas que comienzan con A. Es simple y demuestra que el candidato realmente tiene algún conocimiento de SQL.
Para un desarrollador web, simplemente les pediría FizzBuzz. El hecho de que esté programando para la web no significa que deba carecer de la capacidad de hacer una lógica de programación básica.
Si está buscando preguntas de entrevistas reales, hay muchas buenas en línea que puede encontrar con una búsqueda rápida. Encontré más de lo que me importa enumerar al tomar 10 segundos con Google.
fuente
Aquí hay una respuesta que di a una pregunta muy similar (posiblemente duplicada) que se cerró en este sitio.
Nivel extremadamente fácil: dada una tabla de empleados con las columnas EmpID, FirstName, Lastname, HireDate y TerminationDate: escriba una consulta para devolver a todos los empleados que aún trabajan para la empresa con apellidos que comienzan con "Smith" ordenados por apellido y luego nombre.
Nivel fácil Dada la tabla de empleados anterior, más una nueva tabla "Revisiones anuales" con las columnas EmpID y ReviewDate: escriba una consulta para devolver a todos los empleados que nunca tuvieron una revisión ordenada por HireDate.
Nivel medio
Dada la tabla de empleados anterior, ¿escribe una consulta para calcular la diferencia (en días) entre el empleado más y el menos ocupado que aún trabajan para la empresa?
Nivel difícil Dada la tabla de empleados anterior, escriba una consulta para calcular el período más largo (en días) que la compañía ha pasado sin contratar ni despedir a nadie.
Nivel
más difícil Nuevamente, utilizando las mismas tablas, escriba una consulta que devuelva a cada empleado y para cada fila / empleado incluya la mayor cantidad de empleados que trabajaron para la compañía en cualquier momento durante su mandato y la primera fecha en que se alcanzó el máximo. Puntos extra por no usar cursores.
fuente
¿Qué tal fizzbuzz en sí? Aquí hay una versión de Oracle:
fuente
Me parece que las personas tienden a tener muchos problemas para trabajar con el tiempo por alguna razón, por lo que puede ser un buen lugar para hacer una pequeña prueba.
Algo como esto:
Parte 1: Cree una función que calcule el enésimo o último día de la semana en un mes determinado, es decir; el primero, tercero, el martes pasado en el próximo mes.
Parte 2 (si lo desea): Diseñe tablas para contener expresiones temporales para programaciones recurrentes. Los horarios pueden ser cualquiera de "el enésimo día de la semana de uno o más meses" o "el enésimo día de uno o más meses" o "cada N días desde la fecha".
Ejemplo, el 15 de cada mes, el último miércoles de cada marzo, el último día de cada mes, cada 17 días a partir del 2 de diciembre de 2008, etc.
fuente