Algoritmos y Estructura de Datos

johnnietirado
12/20/2020

Temas de programación que deberíamos aprender para estar preparados para entrevistas en empresas como Facebook, Amazon, MercadoLibre, Google o Microsoft.

Estos temas se aprenden después que dominemos los fundamentos de programación.

Teoría Básica de algoritmos

Complejidad de un algoritmo (Big O Notation)

Esto involucra entender cuanto tiempo puede demorar un algoritmo en concluir su operación en un peor caso. Esto nos demuestra la velocidad de ejecución del algoritmo. Al mismo tiempo debemos de tomar en consideración el espacio de este (Cuanta memoria debemos alojar o utilizar para correr el algoritmo). Esta es otra parte importante que debemos entender.

Iteración vs. Recursividad

Explicar y entender la diferencia entre iteración y recursividad. Explicación rápida:

  • Iteración: Repite la acción hasta alcanzar la meta deseada.
  • Recursividad: Se llama la función hasta alcanzar la meta deseada. Ambas son maneras que podemos solucionar problemas y emplear algoritmos.

Estructura de Datos Básicas

  1. Listas simplemente enlazadas (Linked Lists)
  2. Listas doblemente enlazadas (Doubly Linked Lists)
  3. Stack
  4. Queue
  5. Heap

Estructuras de Datos Avanzadas

  1. Grafos dirigidos y no dirigidos o G
  2. Grafos dirigidos acíclicos
  3. Árboles
  4. Árboles binarios (Binary search tree)

Algoritmos de Ordenamiento

  1. Bubble Sort
  2. Insertion Sort
  3. Merge Sort
  4. Quick Sort

Algoritmos de Grafos

  • Búsqueda a lo profundo (Depth First Search)
  • Búsqueda a lo ancho (Breadth First Search)
  • Djikstra para caminos más cortos entre 2 nodos

Técnicas Avanzadas

Programación dinámica

Recomendaciones para aprender

Una vez que domines los fundamentos de programación podemos empezar a aprender como funcionan bien los fundamentos de algoritmos y estructuras de datos.

El lenguaje que has escogido para aprender a programar y aprender los fundamentos se puede utilizar para practicar e implementar los algoritmos y estructura de datos que utilizamos.

Enfoca tus estudios en entender bien como funcionan los algoritmos y las estructuras de datos, no te preocupes por aprender otros lenguajes, usa el que más domines.

El único libro que tienes que leer

Introduction to algorithms es el libro más completo en el tema y el que se usa en universidad americanas para enseñar estos temas.

Todos los temas son explicados con pseudocodigo o con Java, sin embargo, es nuestro trabajo entender como funcionan los algoritmos y las estructuras de datos y intentar implementarlas.

Esta ultima parte es lo que te va a permitir que de verdad entiendas como funcionan estos temas y luego en las entrevistas podrás responder las preguntas de una manera mucho más fluida.

Como saber si estamos listos para entrevistar

Si entiendes los algoritmos, los beneficios de cada uno y como implementarlos estarás listo para empezar a entrevistar.

Recuerda que en las entrevistas te van a pedir escribir código así que haber implementado el algoritmo o estructura de datos en tu lenguaje de programación favorito es muy importante.

También practicar esta parte es importante durante la entrevista, ahora que tenemos más herramientas digitales lo más probable es que tengas que escribir el código a través de la computadora y no con una pizarra, practica esto de igual manera que practicarías estudiar para un examen de matemáticas.

Lugares para practicar

Plataformas para practicar escribiendo código:

Conclusión

Los algoritmos y estructuras de datos son parte de los fundamentos de programación. Es algo que debemos aprender para poder mejorar nuestras habilidades para solucionar problemas con la programación.

Pronto estaremos subiendo videos de YouTube sobre estos temas para ayudar a programadores como tu mejorar sus habilidades y estar listos para las entrevistas de programación.

Suscríbete aquí

Si tienes alguna pregunta o duda puedes escribir a través de nuestro Instagram aquí


Hecho con 🧡 por
@Tomás Ferreira y @Johnnie Tirado
© 2021 Codealo