¿Prefieren las personas programar en una pizarra o en una computadora durante la programación de entrevistas?

Me gusta pensar y dibujar cosas en una pizarra , y luego, con suerte, codificar el algoritmo en una computadora . Ahora, ese no es el caso en general con la programación de entrevistas, así que tienes que conformarte con lo que sea que tengas.

Creo que la programación debería dividirse en:

  • Diseño: aquí es donde analiza la complejidad del tiempo, la complejidad del espacio, las compensaciones, las optimizaciones generales, etc.
  • Código: aquí es donde va la escritura de códigos
  • Prueba: aquí es donde puede averiguar si cubrió casos extremos, entradas no válidas, 0, nulo, etc.

Para mí, entonces, cada entrevista de programación progresa desde el diseño hasta el código para probar, en ese orden específico. Y si estoy limitado solo a una computadora, es increíblemente difícil imaginar cómo funcionarán las cosas. (Intente imaginar un tipo de burbuja simple usando solo un teclado y un monitor)

Utilizo la pizarra diariamente para mi trabajo, e imagino que la usaré para cualquier cosa que requiera creatividad, imaginación y / o cualquier sesión de resolución de problemas. Una pizarra blanca simplemente permite que su mente fluya libremente y use su imaginación de una manera que una computadora simplemente no puede. Una pizarra es un lienzo.

Por eso surgieron muchas ideas geniales de personas que garabateaban en servilletas.

Prefiero usar una pizarra blanca; es mucho más natural dado el hecho de que las entrevistas no se tratan solo de escribir código.

Los uso en todas partes (trabajo, escuela, hogar) para dibujar máquinas de estado, diagramas, pensamientos generales y fragmentos de código. Las pizarras blancas (y bolígrafos) también son bastante universales, lo que significa que estoy familiarizado con ellas desde el principio.

Si bien los entrevistadores generalmente le entregan papel si elige codificar en una computadora portátil, las pizarras son más fáciles de ver y editar por ambas partes.

Cuando tengo la opción, hago el diseño en la pizarra y luego lo codifico en una computadora.

Realmente no hay nada de malo en escribir código en la pizarra, pero puedo escribir mucho más rápido de lo que puedo escribir, y eso significa que esencialmente pierdo menos tiempo escribiendo.

De las entrevistas de programación que hice en una computadora, ninguna de ellas tenía un IDE o un compilador, por lo que la única diferencia es que solo escribo más rápido.

Prefiero 100% las pizarras blancas a las computadoras durante las entrevistas. Tuve que hacer entrevistas sobre ambos, y debo decir que no es competencia para mí.

Escribir en una pizarra es como escribir en un lienzo en blanco : puede tomar notas, dibujar diagramas, escribir casos de prueba, lo que sea. Esto significa que a medida que escribo cosas que dice el entrevistador o que se me ocurren, no tengo que dividir mi atención entre mis notas y una computadora. Esto es similar al efecto de atención dividida visto en la investigación educativa, que esencialmente se reduce al hecho de que tengo que dividir mi atención entre dos fuentes y luego reunir la información.

Tampoco hay una curva de aprendizaje para escribir en superficies, mientras que diferentes personas usan diferentes sistemas y aplicaciones para escribir código. Por ejemplo, recuerdo y entrevisté lo que hice cuando necesitaba escribir mi código en una Macbook en una interfaz web que era esencialmente un procesador de texto con estilo para el código. Por casualidad uso un Chromebook Pixel y codifico usando vim. Estaba tan agotado por el hecho de que seguí (literalmente) eliminando todo el código que había escrito y luego tuve que presionar deshacer que terminé haciendo muy mal durante la entrevista. Podría argumentar que tal vez tenga que “recordar” cómo escribir en una pizarra, pero en mi caso, es más fácil para mí aprender a escribir.

En una nota más seria, escribir en una pizarra blanca me permite demostrar completamente cómo abordo un problema dado . Siempre le digo a las personas que escriban lo que están pensando (y me han dado el mismo consejo), incluso si es algo tan simple como repetir lo que dice el entrevistador o la entrada / salida en sus propias palabras. Soy realmente expresivo y me gusta dibujar imágenes y tomar notas y mirar mi código; no puedo hacer esto tan fácil o prolijamente en una computadora, especialmente porque así es como trabajo en la vida real. También es más fácil interactuar con el entrevistador cuando tiene preguntas sobre lo que está pensando o editar sus notas o código cuando le dan pistas o hacen comentarios.

Existen muchas ventajas al usar pizarras blancas sobre computadoras para programar entrevistas, pero cada uno tiene sus propias preferencias.

Las computadoras son más problemáticas de lo que valen.

¿Tienes el IDE correcto? ¿Tiene todos los complementos correctos configurados? Oh, Dios, este teclado no es ergonómico. O es demasiado grande o demasiado pequeño. Ya sabes, en casa utilizo un monitor más grande para poder ver más de lo que estoy haciendo.

Podrías pasar meses haciendo que alguien se sienta lo suficientemente cómodo, y no hace una gran diferencia, porque solo quieres saber si el candidato (que podría ser yo) puede administrar una estructura de datos.

Las computadoras también desalientan pensar en voz alta y garabatear material suplementario para mantenerse al día, y el texto requiere que todos se metan como si fuera la hora pico en el metro.

Las únicas ventajas que puedo imaginar son la verificación de sintaxis, que nadie en su sano juicio está entrevistando, y la capacidad de “depurar la existencia del programa”, que es exactamente lo contrario de lo que desea entrevistar.

Prefiero una computadora en general, pero hay cosas que pueden desanimarte:

  • el teclado es realmente raro
  • el mouse / trackpad no le es familiar
  • en menor medida, las asignaciones de teclado en el editor no son las que estás acostumbrado

He trabajado con alguien con un teclado ergonómico que no pude escribir en absoluto. Las llaves debajo de cada mano se colocaron en una curva como si estuvieran dentro de un tazón. Hacer cualquier cosa en su teclado significaba que estaba gastando el 80% de mi esfuerzo escribiendo y el 20% haciendo la tarea real.

Pizarra

Una pizarra blanca me da mucha libertad para mostrar cómo abordo un problema. También creo que deja una mejor impresión a pesar de no haber resuelto un problema, ya que presenta una imagen más grande.

Escribir código incluso en un bloc de notas en una computadora me hace sentir torpe en todo momento.

Preferiría una pizarra blanca a una terminal de computadora. Razones
1. Me permite escribir pseudocódigo sin importar la sintaxis. Más libertad de esta manera en comparación con mover un cursor.
2. Puedo dibujar diagramas o escribir pruebas para convencerme de la efectividad del algoritmo que estoy codificando.