No, prefiero ver (1) cómo piensan los candidatos de pie, y (2) qué tan buenos se comunican. Para ambos, una pizarra es una herramienta mucho mejor que una computadora portátil con un editor y un compilador.
[He estado involucrado en la selección y evaluación de candidatos durante más de 10 años, en empleadores de alto perfil. Las opiniones expresadas aquí son mías y no necesariamente reflejan la política de mis empleadores actuales o pasados.]
Las preguntas de programación cuyo énfasis está predominantemente en la sintaxis del lenguaje o sus bibliotecas son con frecuencia tontas. Nadie es una enciclopedia ambulante de un lenguaje o marco o API o sistema operativo dado, e incluso si un candidato lo fuera, se correlacionaría poco con sus habilidades para resolver problemas.
- Antes de una entrevista, ¿los entrevistadores de las principales compañías de software están actualizando su conocimiento de algoritmos / estructura de datos?
- ¿Cuáles son las preguntas importantes que un entrevistador puede hacer desde la red informática?
- Dada una matriz entera y un número constante X, imprima todos los pares de números en la matriz cuyo producto es igual a X. Seguimiento: ¿cómo lo hará en O (n)? ¿Cómo manejarás los pares duplicados?
- ¿Se solicitan estructuras de datos y algoritmos en entrevistas con gigantes tecnológicos como Microsoft, etc. para candidatos que tienen muchos años de experiencia en el campo de TI que no requirieron algoritmos y DS en absoluto en su trabajo anterior?
- ¿Cuáles son algunos acertijos interesantes que se hacen en las entrevistas técnicas de programación informática?
Por supuesto, para los candidatos que afirman conocer bien C ++, es necesario incluir un cierto número de preguntas asociadas con el lenguaje en la entrevista, pero es muy difícil elegir preguntas que determinen si los candidatos tienen tanta experiencia como afirman, sin aventurarse en detalles bizantinos que nadie debe recordar de memoria.
Las preguntas más importantes que hago son problemas sobre algoritmos y arquitecturas de computadora, y los candidatos pueden responder oralmente, o con diagramas, o en código fuente en un idioma existente de su elección o en pseudocódigo. El desempeño de los candidatos está completamente determinado por las ideas que expresan y cuán rigurosamente se expresan, no por la forma de expresión que eligen.
En una entrevista realizada de la manera que usted propone (es decir, escribiendo código real en una computadora portátil), el candidato inevitablemente pasará un tiempo valioso de entrevista en detalles poco interesantes como escribir código repetitivo (buscar qué archivos de inclusión son necesarios, qué módulos importar, qué bibliotecas para vincular, etc. …) que no me ayudan a juzgar sus habilidades para resolver problemas. Al ver que buscas en cppreference.com qué incluyen los archivos que te perdiste y qué función de miembro olvidaste, no me dices nada específico sobre tus habilidades: todo el mundo usa cppreference.com todo el tiempo. Es mucho mejor usar mi tiempo y el tuyo para que pienses en voz alta sobre los problemas. Si lo desea / puede, puede enviar muestras de su código para su revisión. Si ha contribuido a proyectos de código abierto, es muy probable que ya haya revisado su código antes de la entrevista.
En todos los entornos de alto perfil, el énfasis está más en los algoritmos que en los idiomas. Las personas inteligentes pueden aprender un nuevo idioma rápidamente. Los candidatos menos versátiles intelectualmente que se han vuelto competentes en un idioma específico pero no pueden hacer la transición fácilmente a diferentes entornos obtendrían una buena puntuación en el tipo de entrevista que sugiera, pero son una contratación menos deseable.