¿Qué estructuras de datos informáticos solo son útiles para entrevistas de trabajo, pero no para un trabajo real?

Por lo general, encuentro que las preguntas de la entrevista son sobre la implementación de una estructura de datos común, pero su trabajo consiste en seleccionar la estructura de datos correcta. La implementación de una estructura de datos común normalmente es irrelevante, ya que existen ejemplos excelentes y de alto rendimiento para la mayoría de los idiomas.

Me aborrece decir que cualquier estructura de datos es completamente irrelevante en ‘el mundo real’, aunque no he usado una lista doblemente vinculada o un filtro de floración en la naturaleza, recientemente utilicé un árbol rojo-negro por primera vez desde Universidad. Siempre es útil tener cosas flotando en su kit de herramientas.

Curiosamente, cuando estaba en la escuela, la recomendación era usar un árbol binario en la memoria y un árbol de ab ± para el almacenamiento en disco. Sin embargo, las tres capas de cachés y sus latencias relativas significan que b ± árboles podrían ser mejores en ambas situaciones. Página en buffalo.edu

La moraleja es mantenerse al día. El hardware cambia lentamente, pero cambia. Comprueba tus suposiciones.

Algunas compañías pueden comenzar con solo usar matrices de estructuras (ignorando las estructuras de datos de las bases de datos, por supuesto). Por ejemplo, el juego Braid solo usa matrices de estructuras no expandibles.

La mayoría de las estructuras de datos no son comunes. Gráficos y listas y dependiendo de qué tan talentoso seas (si no lo eres), árboles (de cualquier variedad). Uso montones a menudo, pero no estoy seguro de que sea típico.

  1. (Listas) La última vez que alguien en mi oficina usó una lista fue hace un año, en lugar de usar matrices dinámicas con inserciones O (1) amortizadas. Que una vez que estaban usando una lista, una matriz hubiera sido suficiente.
  2. (Gráficos) A menos que esté haciendo explícitamente algo que esté relacionado con la teoría de gráficos o necesite gráficos, esta no es realmente una estructura de datos común. Excepto por las máquinas de estado, son bastante comunes.
  3. (Árboles o Pruebas o Gráficos) Los usamos en el trabajo. Tal vez los uso dos veces al mes. Mis colegas probablemente 1 o menos al mes. Cuando surge una pregunta donde un árbol / trie / gráfico es una respuesta, es por un problema de concurso de programación que nos dimos el uno al otro o por un problema difícil. Aunque pareciera que no existieran árboles, esta solución sería mil líneas más larga y alabado sea Dios por haber comentado ese código de árbol porque cuando vengas y actualices mi código, lo necesitarás para entenderlo. Me contaron sobre una máquina de 8 estados (100 líneas de código + comentarios) que hice que tardó dos días en comprender a un grupo de tres desarrolladores .

    Y estas ni siquiera son estructuras de datos difíciles. Me encantan las estructuras de datos, pero una triste realidad es que más allá de las matrices, los mapas (matrices asociativas) y las máquinas de estado, se necesitan estructuras de datos avanzadas en la mayoría de los días promedio de los desarrolladores.

    Digamos que estoy codificando una Estructura de datos (Prefijo Trie) y esto hará que mis operaciones sean 2 veces más rápidas. Solo usarán 1 ms en lugar de 2 ms si utilizo un HashMap (la memoria de Prefix Trie es mejor, pero la mayoría de la gente no escribe aplicaciones donde esto sería importante). Más aún, digamos que no hay una restricción de tiempo real donde este ahorro masivo es importante. Digamos que lleva 16 horas codificarlo, comentarlo, documentarlo, probarlo, más tarde para manejar el control de calidad cuando se encuentran errores, etc. Digamos que esta operación se realizará en la naturaleza cuarenta millones de veces al día, pasará un año y medio antes de que la mejor estructura ahorre algo de tiempo a un humano.

Como todos sabemos, la recopilación, el procesamiento, el almacenamiento, la recuperación, la presentación de datos en gráficos, tablas o tablas y la minería de datos se llaman tecnología de la información.
La complejidad en la realización de las tareas mencionadas anteriormente requiere varias entradas del mundo real. Las estructuras de datos nos dan la idea al mostrar cómo los datos pueden recibir una estructura de acuerdo con las necesidades.
Por ejemplo, se le asigna la tarea de escribir un programa para preparar una lista para promover a los altos funcionarios en función de la antigüedad. Utilizará la estructura LIFO en función de su fecha de unión.

Bueno, supongo que realmente depende del trabajo.

Cuando estaba entrevistando (para el desarrollo de software integrado), me hicieron muchas preguntas sobre el árbol, como operaciones en el árbol de búsqueda binaria equilibrada, listas enlazadas (revertirlo, etc.). Nunca tuve que usarlos en los últimos dos años.

No tenía una base sólida en estructuras de datos, así que terminé estudiándolas y me convertí en profesional después de 2-3 entrevistas 😉

No estoy seguro de por qué a las personas les gusta entrevistar sobre la base de las estructuras de datos (¿tal vez ayuda a evaluar sus habilidades de programación?), Pero como preguntan y usted quiere el trabajo, simplemente apréndalo .

También tuvimos que estudiar fechas históricas y hechos para ser ingeniero 🙂

Depende de tu trabajo. Si trabaja mucho con cosas de bajo nivel, puede usar las estructuras de datos, de lo contrario, rara vez se usan las siguientes IMO:

  • Lista doblemente vinculada.
  • Árboles AVL.
  • Listas escasas.

No podemos estar seguros. Hoy en día tenemos una biblioteca estándar para la mayoría de los algoritmos y estructuras de datos estándar. No tenemos que recordar ninguna de las estructuras de datos o algoritmos. Hacen preguntas sobre estos temas solo para tener una idea de su comprensión conceptual de algoritmos y estructuras de datos. Pero si va a ser un investigador en estos campos, entonces esté preparado para responder cualquier tipo de pregunta de estructura de datos que se le presente durante la entrevista.

Se ha demostrado que codificar entrevistas es una forma eficiente y económica para que las empresas seleccionen a los solicitantes. Es más como sobrecargar la carga de las empresas a los solicitantes, ya que tienen que pasar tiempo preparando esos problemas de codificación. No aprobar esta entrevista no significa que no esté calificado para el trabajo, pero aprobar esta entrevista en la mayoría de las ocasiones significa que está calificado para el trabajo.
En el trabajo real, depende de sus puestos. Si piratea una base de código grande, creo que esas estructuras de datos son solo su trabajo diario. Sin embargo, si usted es un desarrollador, los implementados pueden ocultarse de usted.

Creo que aprender sobre las estructuras de datos es una buena educación y conocimiento que podrías usar indirectamente. Le ayuda a pensar de nuevas maneras y a encontrar nuevas soluciones. Eso hace un buen solucionador de problemas e inventor. No es que él conozca algunas estructuras específicas que cree que podrían surgir en una entrevista.

Algunas estructuras son bastante específicas, como los intentos, otras son más generales, como los árboles, los registros, etc.

Tienes que elegir ver el que quieras

More Interesting

¿Es difícil encontrar trabajo en Singapur con CFA nivel 1?

He aplicado a cada nuevo trabajo de gestión de productos de posgrado y no he tenido mucho éxito. ¿Qué debería hacer después?

Soy un pase de BE (CS) de 2016 y todavía no tengo ningún trabajo. ¿Me queda alguna oportunidad en 2017?

Cómo saber qué trabajo quieres

¿Cuáles son algunos trabajos bien remunerados que te protegen de una mala economía?

¿Cómo obtener una respuesta de mi solicitud de empleo? Solicité alrededor de 30 empleos y no he recibido respuesta en 2 semanas.

¿Alguien puede aprender Java sin un título y conseguir un buen trabajo?

¿Qué harías si estuvieras en tus veintes con un grado, pero incluso después de esforzarte mucho no consigues ningún trabajo?

¿Qué haces cuando no puedes conseguir un trabajo?

¿Cuál es su primer trabajo sin ninguna calificación y experiencia?

Mi papá se retiró el año pasado y está dispuesto a hacer un trabajo. Tiene 60 años y no puedo encontrar un trabajo para él. ¿Podría darme alguna dirección?

¿Cuál podría ser la razón para no obtener el trabajo cuando eres muy entusiasta y experimentado?

Soy un estudiante BE (IT). Necesito un trabajo tan pronto como me desmayo. No soy elegible para el campus ya que mi agregado es inferior al 60%. ¿Qué debo hacer ahora para obtener un buen trabajo?

Cómo conseguir empleo

Si pertenezco al BC-D Munnuru Kapu en la región del estado de Telangana y luego en Karnataka, ¿a qué categoría pertenezco?