2008-10-29 12 views
11

Como segunda entrevista hago que la gente se siente y escriba el código ... Intento que el problema sea realmente independiente de la tecnología.OOP Problemas para usar en las pruebas de codificación durante las entrevistas

Mis problemas de programación que tengo realmente no ejercitan las capacidades de OO de las personas. Tiendo a intentar y mantener el problema de codificación solucionable dentro de 2 horas. Por lo tanto, he luchado para encontrar un problema lo suficientemente pequeño e involucrado lo suficiente como para exponer las habilidades de diseño OO de las personas.

¿Alguna sugerencia?

+2

2 horas!? ¿Por qué no solo obtienes un problema con tu equipo y se lo das a ellos. De esta forma obtienes 2 horas de trabajo gratis! –

+0

lo intenté antes ..... a menudo terminan hablando demasiado sobre el dominio del problema en lugar de resolver cualquier cosa. Además, si establece el mismo problema para muchas personas diferentes, de alguna manera le da una buena base para comparar –

+0

Vuelva a etiquetar su pregunta para decir preguntas "OO largo" si Vas a downvote y comentar las respuestas existentes. –

Respuesta

0

Estos no específicamente OO preguntas, pero echa un vistazo a las otras preguntas etiquetados interview-questions

Editar: ¿Qué pasa con la aplicación de algunas design patterns? No tengo el mejor conocimiento en el área, pero parece que recibiría dos preguntas por el precio de una. Puede probar tanto OO como patrones de diseño en la única pregunta.

+0

sí .... Eché un vistazo a esos ... similar a lo que hago en este momento ... Realmente estoy queriendo algo interesante de una perspectiva OO. Usualmente me gustan los juegos para OO, pero es difícil encontrar un juego lo suficientemente pequeño y lo suficientemente complicado. –

+0

Como que quiero un problema, potencialmente lanzarán algunos patrones de diseño (o mejor aún, tomarán porciones de patrones de diseño que son más apropiado). Pero depende completamente de ellos cómo/qué diseñan –

-1

Tengo un conjunto súper simple. La idea es principalmente utilizarlos para filtrar personas que realmente no conocen sus cosas en lugar de filtrar en las estrellas del rock.

Estas son todas preguntas de 5 minutos en el tablero blanco, por lo que realmente no son tan difíciles. Pero el hecho de escribir un código y hablar a través de él revela mucho acerca de un candidato, y es brillante por exponer a aquellos que de otro modo podrían tener BS a través de la charla.

  • Escriba un método que toma un radio de un círculo como un argumento y devuelve el área del círculo (Usted se sorprenderá de cuántas personas se esfuerzan en éste!)
  • escribir un programa que acepta una serie de números como argumentos de la línea de comando. Sumarlos, e imprimir la suma
  • Escriba una clase que actúa como un contador con llave (básicamente un mapa que lleva la cuenta de las veces que cada tecla es "contado")
+3

a) No todo el mundo recordaría las matemáticas de la conversión de la cabeza, no significa que no sean buenos programadores. b) Nuevamente no muestra que son buenos en OOP, solo que han hecho muchas aplicaciones de línea de comandos. C) Más constructivo que los demás en términos de una buena pregunta. – vdhant

+2

Realmente no relacionado con OOP –

+0

Respuesta totalmente inútil. – John

6

idealmente, que desea presentar un problema que parece difícil, pero tiene un elegante, solución simple, obvia si se piensa en términos OO

quizá:

  • tenemos que controlar el acceso a un sitio web del cliente
  • cada cliente puede tener una o más personas para acceder al sitio
  • personas de diferentes clientes pueden ser capaces de ver diferentes partes del sitio
  • la misma persona puede trabajar para más de un cliente
  • clientes quieren para administrar los permisos basado en la persona, departamento, equipo o proyecto

diseño de una solución para este uso de técnicas orientadas a objetos


una solución OO es tener una Persona, un Cliente, una Cuenta y CuentasPermisiones, donde la Cuenta especifica una Persona y un Cliente y una Cuenta principal opcional.el uso de un objeto de cuenta recursivo colapsa la estructura de persona/equipo/departamento/proyecto, que de lo contrario sería engorroso. Una solución directa de ERD podría generar

3

He utilizado el FizzBuzz Programming Test. Y sorprendentemente puede corroborar las afirmaciones hechas por el artículo. Como segundo seguimiento, les pedí a los candidatos que calcularan el ángulo (ángulos) entre las manos de un reloj analógico. Configuramos una computadora portátil con VS 2008 instalado y el talón en su lugar. todo lo que tienen que hacer es completar la implementación.

Siempre me sorprende lo mal que hacen los candidatos en estas dos preguntas. Realmente soy.

+0

Sí, utilizo un par de estas preguntas tipo en la entrevista inicial. ¡Es bastante sorprendente a veces! Una vez que llegan a la entrevista de la que estoy hablando aquí, generalmente deberían al menos poder hacer una codificación básica –

15

Este es un problema que yo uso con algunos entrenamientos, parece simple pero es complicado POO-sabia:

Crear clases del modelo que representarán correctamente las siguientes construcciones:

  1. definir un objeto Shape, donde el objeto es cualquier figura bidimensional, y tiene las siguientes características: un nombre, un perímetro y un área de superficie.
  2. Defina un círculo, conservando y emitiendo con precisión los valores de las características antes mencionadas de una forma.
  3. Definir un triángulo. Esta vez, el nombre del triángulo debe tener en cuenta si es equilátero (los 3 lados tienen la misma longitud), isoceles (solo 2 lados tienen la misma longitud), o escaleno (no hay 2 lados iguales).

Puede seguir y seguir con quadrelaterals (que incluyen cuadrados, rectángulos, rombos, etc.) y otros polígonos.

La forma en que resolverían los problemas anteriores revelaría a las personas que entienden OOP aparte de aquellos que no lo hacen.

0

¿Qué tal algún tipo de GUI simple. Tiene herencia, anulación, posiblemente eventos. Si quiere decir que realmente implementarán como parte de la prueba, podría entregarles un formulario de Windows en blanco con un OnPaint() y decirles que lo accedan.

0

Podría hacer algo peor que pedirles que diseñen una biblioteca de MapReduce con una implementación de proceso único. ¿Funcionará la interfaz para una implementación distribuida? ¿Cuál es la política de manejo de excepciones? ¿Debería haber un soporte especial para encadenar trabajos de MapReduce en una tubería? ¿Cuál es la interfaz para las entradas y salidas? ¿Cómo se fragmentan las entradas? ¿Pueden las diferentes entradas en un trabajo ir a diferentes mapeadores? ¿Qué valores predeterminados son razonables?

Una buena solución en Python toma aproximadamente una página de código.

2

Diseñar aplicaciones de seguridad social es algo que le pregunto a mucha gente durante las entrevistas.

Lo bueno de esto es que cada uno es consciente de cómo funciona y de qué cosas hacer un seguimiento. También tienen que justificar su diseño y esto realmente ayuda a conseguir dentro de su cabeza :) (Como no hay mucha flexibilidad aquí)

Saludos cordiales,

+0

¿Podría explicarme qué es esto? No estoy familiarizado con la aplicación de seguridad social y estoy buscando una prueba de entrevista. – John

1

Sea o no la gente hace algo de código en la entrevista , Hago un punto para preguntar esto: Cuénteme acerca de un problema que ha resuelto recientemente utilizando la programación orientada a objetos. Te sorprenderá la frecuencia con la que las personas no pueden responder esa simple pregunta. Muchas veces tengo una mirada en blanco, o dicen algo como "¿qué quieres decir? Me programo en.NET, que está orientado a objetos. "

+0

Sí, suelo cubrir este tipo de cosas en la primera entrevista ... y sí, puede ser REALMENTE sorprendente –

Cuestiones relacionadas