En una entrevista técnica, ¿debo implementar las estructuras de datos auxiliares o usarlas de la biblioteca estándar?

A menos que el entrevistador le pida específicamente que implemente algo que se encuentra comúnmente en una API general, debe asumir que tiene acceso a API de lenguaje estándar como STL o API de Java.

Una cosa que haré una entrevista, si un candidato propone una solución que utiliza una estructura de datos especializada , es pedirle que primero codifique una solución suponiendo que la estructura de datos se proporciona con una API, luego, si hay tiempo restante después, podríamos ir volver y hablar sobre cómo se implementa realmente la estructura.

Por ejemplo, una vez hice que un candidato resolviera un problema utilizando la estructura de datos de conjunto disjunto, lo que hizo que la parte de codificación del problema fuera extremadamente concisa, por lo que como seguimiento hablamos sobre cómo se podría implementar una API de este tipo.

Sin embargo, las colas, las pilas, las tablas hash, las listas vinculadas, etc. son lo suficientemente comunes como para darlas por sentado. La responsabilidad de su entrevistador es declarar lo contrario.

Una última advertencia: una pregunta similar que podría tener es: ¿Debería saber cómo implementar estructuras de datos de biblioteca estándar para mi entrevista? A esto diría que . Pedirle a alguien que implemente una lista doblemente vinculada no me parece una pregunta de entrevista particularmente interesante, pero no está fuera del alcance de lo que se esperaría que cualquier ingeniero de software supiera.

En una entrevista técnica, ¿debo implementar las estructuras de datos auxiliares o usarlas de la biblioteca estándar?

Tengo un par de reglas generales aquí.

Una es que no debes hacer un trabajo extra sin preguntar. Si le preguntan dónde hay una solución fácil para la fuerza bruta y parece que hay una solución más óptima que tomaría más tiempo diseñar y codificar, creo que tiene sentido señalar eso y ver cómo proceder.

Otra es que debe esperar hacer un trabajo extra si es fundamental para la pregunta. Si la pregunta es escribir una función que analiza un número y su función llama a la función de biblioteca que analiza un número, no es probable que el entrevistador quede impresionado. (Decir “Hay una función de biblioteca que hace esto, pero parece que solo quieres ver cómo abordaría un problema como este sin la función de biblioteca. ¿Es correcto?” Sería bueno).

¿Pero si tiene un problema que involucra una cadena que debe analizarse? Luego llame a la función de biblioteca. Si quieren que codifiques algo más, te preguntarán.

Generalmente, si le pido a alguien que implemente un algoritmo, no quiero que también implemente estructuras de datos ansilares.

Sarcástico racional: algunas personas son demasiado brillantes para su propio bien. Lo que quiero decir es que el mejor curso de acción suele ser usar algo de confianza y que funcione. (IE usa la cola STD) Las personas más molestas son los reinventores de ruedas que pasan tiempo diciéndole cómo su pila, lista vinculada, árbol, socket, analizador xml, lo que sea mejor porque es más eficiente en el caso X, pero luego encuentra muchos de errores sutiles a lo largo de los años que no existirían en una implementación más confiable.

Si durante una entrevista alguien implementa su propia Cola, preguntaría:

  1. ¿Hay alguna razón por la que no usaste el estándar? (Será mejor que tengan una buena respuesta)

También debe recordar que las entrevistas son procesos cortos, salir e implementar tareas tangenciales parece una pérdida de tiempo, no muestra su habilidad para resolver el problema que se le asignó, está demostrando que puede construir algo que un estudiante de segundo año cs se le enseña a construir.

También me parece que la persona está tratando de hacer un trabajo extra para sí misma.

¿Quiero contratar a una persona que haga trabajo extra?

¡NO!

La funcionalidad es un activo, pero el código es un pasivo (generalmente, cuanto menos código se escriba, mejor estará)

Pero si no está seguro, pregunte al entrevistador: “¿Quiere que use las bibliotecas STL?”

Si la persona es una entrevistadora engañosa, podría devolverle la pregunta: “¿Crees que deberías?” “¿Cuáles son las ventajas y desventajas de construir su propia empresa frente a elegir una implementación lista para usar?”

A menos que el entrevistador le pida que implemente esto a mano, siempre puede usar bibliotecas disponibles. Esto es particularmente cierto si se solicita un algoritmo de nivel superior. Tampoco puedes usarlo si esa es la pregunta. Como usar utilidades de cola cuando la solicitud es implementar una cola.

Pregunta Específicamente, sugiera “Usaré std :: queue aquí si está bien. Sin embargo, puedo implementarlo después de terminar o escribirlo desde cero si así lo desea”.

Dependiendo del objetivo de la pregunta, la mayoría de los entrevistadores estaría perfectamente de acuerdo con esto, pero si encuentra a alguien que está buscando específicamente una implementación hecha desde cero, les ahorrará la molestia de interrumpirlo.

Esto no solo es bueno porque ahorra ese tiempo, sino que también le ahorra la interrupción mental de ser interrumpido y corregido.

More Interesting

¿Alguna vez ha sido entrevistado por Jabong?

¿Cuáles son algunas preguntas típicas de entrevistas de diseño para ingenieros de software?

Mañana tengo una entrevista técnica en software acuvate para el rol de ingeniero de software. Alguien puede ayudarme?

¿Es posible aprender algoritmos y estructuras de datos (sin conocimientos previos, solo Python básico para aprendizaje automático) en 1.5 meses para estar listo para la entrevista para una pasantía SWE de primer año?

¿Cuánto importa la velocidad en la programación de entrevistas y hay escenarios en los que la velocidad es más importante que en otros?

¿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?

Siendo un estudiante de ingeniería mecánica, ¿cómo me preparo para la entrevista TCS?

¿Hay alguna reunión en línea para codificar la preparación de la entrevista?

Antes de una entrevista, ¿los entrevistadores de las principales compañías de software están actualizando su conocimiento de algoritmos / estructura de datos?

¿Cuál es un método eficiente para ordenar una matriz?

¿Cuál es el punto de la estructura de datos y las preguntas de algoritmos en las entrevistas? (ver comentario para más detalles)

Dada una matriz de 'n' enteros. ¿Encuentra los números 'k' de manera que la diferencia mínima de todos los pares posibles de números 'k' sea máxima (máxima entre otras diferencias mínimas para varias posibles selecciones de números k)?

¿Qué tipo de preguntas se hacen en una entrevista en Google para el rol de ingeniero de software, para un candidato con un año de experiencia laboral?

Cómo saber qué error cometiste en una entrevista después de ser rechazado

¿Cómo podemos multiplicar dos números representados por listas vinculadas?