xc3 - Problema de prueba de codificación Python para entrevistas
utf-8 python (5)
Estoy tratando de encontrar un buen problema de codificación para pedirle a los entrevistados que resuelvan con Python.
Tendrán una hora para trabajar en el problema, con un IDE y acceso a la documentación (no nos importa lo que la gente haya memorizado).
No estoy buscando un problema algorítmico difícil , hay otras secciones de la entrevista en las que hacemos ese tipo de cosas. El punto de esta sección es sentarse y verlos escribir código realmente. Por lo tanto, debería ser algo que les haga usar solo las estructuras de datos que son las herramientas cotidianas del desarrollador de aplicaciones: listas, tablas hash (diccionarios en Python), etc., para resolver una tarea casi realista. No deberían bloquearse completamente si no pueden pensar en algo realmente inteligente.
Tenemos un problema que utilizamos para las pruebas de codificación de Java, que implica leer un archivo y hacer un pequeño procesamiento de los contenidos. Funciona bien con candidatos que están familiarizados con Java (o incluso con C ++). Pero nos encontramos con una serie de candidatos que simplemente no conocen Java o C ++ o C # o algo así, pero sí conocen Python o Ruby. Lo que no debería excluirlos, pero nos deja con un dilema: por un lado, no aprendemos mucho viendo a alguien luchar con los conceptos básicos de un lenguaje totalmente desconocido. Por otro lado, el problema que usamos para Java resulta ser bastante trivial en Python (o Ruby, etc.) : cualquiera que sea medio competente puede hacerlo en 15 minutos. Entonces, estoy tratando de encontrar algo mejor.
Sorprendentemente, Google no me muestra a nadie haciendo algo como esto, a menos que sea demasiado tonto para ingresar el término de búsqueda obvio. La mejor idea que se me ha ocurrido es programar a los trabajadores en los horarios, pero quizás sea un poco demasiado abierto. ¿Te has encontrado con un buen ejemplo? ¿O una mala? ¿O simplemente tienes una idea?
Aquí hay una pregunta que respondí SO tan recientemente que podría ser el comienzo de algo adecuado:
Dada una cadena
"O João foi almoçar :) ."
, divídelo en una lista de palabras. Debes quitar toda puntuación excepto los emoticones. Resultado por ejemplo:[''O'',''João'', ''foi'', ''almoçar'', '':)'']
He ordenado un poco la pregunta. Ver el enlace original adjunto junto con mi respuesta. Prueba varias cosas y hay diferentes maneras de abordar el problema. También pueden obtener una solución a medias que primero ignora los aspectos de los emoticonos y la puntuación. Solo encontrar los emoticones es otro subproblema que puede resolverse por separado. Y así...
Podría ampliarlo a preguntas sobre los emoticones adyacentes a otros signos de puntuación, emoticonos adyacentes, emoticones superpuestos, definir emoticonos en forma :)
pero también buscar los de la forma :-)
. También puede convertirlo en un problema de conteo de frecuencia en lugar de simplemente dividir para alinearse un poco con su pregunta de Java.
También sugiero buscar a través de las python+interview-questions preguntas publicadas en SO. Hay algunos buenos, y puede que incluso desee ampliar su búsqueda para hojear todas interview-questions publicaciones de interview-questions si tiene tiempo.
Les he pedido a los candidatos que escriban código para implementar el puntaje de bolos antes, lo cual es fácilmente comprensible, pero contiene suficientes arrugas que la mayoría de las personas tienen para repetir su enfoque un par de veces para cubrir todos los casos extremos.
Muchos de los problemas en http://www.streamtech.nl/site/problem+set , que se obtienen de las competiciones de ACM, también son adecuados para su uso. Los utilicé para familiarizarme con la sintaxis de Python y las características del lenguaje. Una gran cantidad para la aplicación directa de estructuras de datos estándar; Algunos están más enfocados en cuestiones algorítmicas. Si los clasifica, estoy seguro de que encontrará varios que se ajusten a sus necesidades.
No sé específicamente acerca de Python, pero descubrí que las preguntas de la entrevista que involucran recursión son un filtro muy efectivo. Le pedí a los candidatos que produjeran todas las permutaciones de una cadena (y que pensaran cómo probarla), y me pidieron que pseudo-codificara la Subsecuencia Común Más Larga.
Siempre puedes simplemente darles algunas preguntas más sobre la de Java, como pedirles que realicen la tarea de Java, luego pedirles que definan una clase y luego pedirles que hagan FizzBuzz . Eso debería ser tan riguroso como su tarea de Java.
No tenga miedo de hacer una serie de preguntas. Tal vez incluso puede pedirles que escriban algunas frases de una línea para asegurarse de que obtengan los mejores puntos de Python (escriba una lista de comprensión, cómo define un lambda, etc.)
Te puedo recomendar Checkio.org