¿Qué estructuras de datos y algoritmos aprender?
Curso de Entrevistas Técnicas: Estructuras de Datos y Algoritmos Avanzados
Contenido del curso
Omar Villada
Walter De Jesús Medina Puy
William Rodriguez
Edgar Alfredo López Salero
Giovanni Osorio
Carlos Eduardo Magallon Zepeda
Nicolas Alpargatero
Juan Ticante Vicente
¿Qué estructuras de datos y algoritmos aprender?
Para aprender a resolver problemas debemos entender estos conceptos que se relacionan entre sí. para tener mejor calidad y eficiencia en nuestras soluciones
Uno de los mejores sitios que he encontrado con información muy bien explicada sobre patrones de diseño de software es Refactoring Guru
A continuación el enlace de dicha página:
refactoring.guru/es/design-patterns
Estos son patrones de diseño de software son conceptos diferentes allí ves cosas como singleton etc etc. en patrones de soluciones son mas como sliding window, Programación dinámica, doble puntero etc. También patrones de diseño es super bueno saber pero son conceptos diferentes.
Estructuras de datos
Viene Clasificada en ++1.A++ Estaticas
1.A.1 Simples o Fundamentales 1. Boolean, 2. Char 3. Integer 4. Reales
++1.A.2++ Estaticas Compuestas o Estructuradas
2.A Dinamicas
2.A.1. Lineales:
2.A.2 No-Lineales:
Seria mejor que los conceptos los pusieran con el nombre en ingles ya que asi es como se conocen en la industria especialmente cuando lo que buscamos es trabajar con empresas extranjeras. En las entrevistas de trabajo siempre usan la terminologia en ingles ⚠️
Les comparto aquí una serie de simuladores interactivos de ciertas estructuras de datos y patrones, que pueden servirles mucho si quieren comprender la manera en la que funcionan de una manera más visual e interactiva que leyendo.
Debounce y Throttle:
Trie Tree:
Bloom Filter:
Worker Pool
Disclaimer, yo los programé y es mi blog, pueden mandarme mensaje si tienen alguna duda o notan algún error y se los arreglo.
Con esa introducción tan buena se elevan las expectativas del curso, sino al menos ya se sabe que investigar.
Para encontrar una buena solución a un problema debemos aprender a combinar patrones de resolución, estructuras de datos y algoritmos. No existe una única herramienta para todos los problemas; debemos analizar las características del problema y seleccionar la combinación adecuada.