Original article: My favorite free courses to learn data structures and algorithms in depth

Las estructuras de datos y los algoritmos son algunos de los temas más esenciales para los programadores, tanto para conseguir un trabajo como para hacerlo bien. Un buen conocimiento de las estructuras de datos y los algoritmos es la base para escribir un buen código.

Si estás familiarizado con las estructuras de datos esenciales, como por ejemplo: arreglo, cadenas, listas enlazadas, árboles binarios, mapas, y estructuras de datos avanzadas como tries, y árboles autoequilibrados como los árboles AVL, etc., sabrás cuando usar cuál estructura de datos y calcular el costo de CPU y memoria de tu código.

Aunque no necesitas escribir tu propia arreglo, lista enlazada, o tabla hash, dado que cada SDK de programación importante los proporciona, por ejemplo: JDK o la librería STL de C++, necesitarás entenderlos para poder utilizarlos en el lugar adecuado.

El uso de la estructura de datos correcta puede mejorar drásticamente el rendimiento de un algoritmo.

Idealmente, todos deberíamos aprender estructuras de datos y algoritmos en nuestras escuelas y universidades, pero rara vez se cubre. La mayoría de los programadores, incluyéndome a mí, solo conocemos una estructura de datos en nuestros cursos de informática, pero realmente no aprendimos su importancia en el mundo real, y es por eso que no los entendemos mejor.

Para nosotros, son solo los algoritmos y las estructuras de datos, solo conceptos, no herramientas que puedas utilizar para escribir buenos programas. No sabíamos que Facebook los usaría para almacenar nuestros datos o que Google los usaría para almacenar páginas web y enlaces a consultas de búsqueda.

De todos modos, nunca es demasiado tarde.

Si crees que tu conocimiento de estructura de datos no está a la altura o deseas mejorar tu conocimiento de estructura de datos, entonces has venido al lugar correcto.

Anteriormente, compartí algunos libros en inglés gratuitos para aprender estructuras de datos y algoritmos, y en este artículo, aprenderás sobre algunos de los mejores cursos de estructura de datos y algoritmos que están disponibles de forma gratuita en línea.

Cursos gratis para aprender estructura de datos y algoritmos

Aquí está mi lista de algunos de los mejores cursos para aprender estructuras de datos y algoritmos, que además son gratuitos. Muchos programadores piensan que los recursos gratuitos no son buenos, lo cual no es cierto.

Aunque a veces no igualan la calidad y la cobertura de los recursos pagos, son, de hecho, los mejores recursos para empezar.

Puedes usar estos cursos para familiarizarse con las estructuras de datos esenciales y aprender algunos conceptos básicos.

Algunos de ellos son particularmente buenos desde el punto de vista de una entrevista, por lo que puede utilizarlos junto con cualquier libro que estés utilizando para prepararte para su entrevista de trabajo de programación.

Curso #1: Conceptos de estructura de datos en C

Este es otro curso gratuito de capacitación en línea sobre algoritmos y estructuras de datos, cuyo objetivo es enseñar estructuras de datos básicas en la programación de computadoras.

Las estructuras de datos que se enseñan en el curso incluyen Stack, Queue y Listas enlazadas, empleando el lenguaje de programación C.

El objetivo principal de esto es hacer que los estudiantes y los ingenieros de software visualicen cómo funcionan las diferentes estructuras de datos.

9KAnoe0SwLrdwMWSxZvutFKzyxq959oVVyZ7

Este no es un curso exhaustivo, pero aprenderás sobre Stack, Queue y listas enlazadas.

En resumen, es un gran curso para programadores nuevos en estructuras de datos y para aquellos que acaban de aprender un lenguaje de programación y quieren aprender los conceptos básicos de cómo funcionan las estructuras de datos.

Curso #2: Algoritmos Parte 1 - Coursera

Esta es la primera parte de una serie de cursos de dos partes que cubren algoritmos y estructuras de datos en Coursera por Robert Sedgewick.

En esta parte, aprenderá estructuras de datos esenciales como listas enlazadas, stacks, queues, árboles binarios, y tablas hash, y algoritmos de búsqueda y clasificación como: binary search, quicksort, mergesort, insertion sort, etc.

Uqip9-SbrXSJg53ERcVRpQIvCRwBl9MQsozM
Algorithms Part 1

También aprenderás sobre las estructuras de datos centrales y los algoritmos utilizados en las aplicaciones cotidianas y comprenderá las ventajas y desventajas involucradas en la elección de cada estructura de datos junto con los algoritmos de recorrido, recuperación y actualización.

Todas las características de este curso están disponibles de forma gratuita, pero no ofrece un certificado al finalizar.

Curso #3: Algoritmos - Parte 2

Esta es la segunda parte de una serie de dos partes de cursos gratuitos en línea de Coursera que cubren estructuras de datos y algoritmos de Robert Sedgewick y Kevin Wayne, ambos profesores de Ciencias de la Computación.

Robert Sedgewick también es el autor del libro Algoritmos 4th Edition , uno de los libros más populares sobre algoritmos para desarrolladores de Java.

En esta parte, aprenderás sobre los algoritmos de procesamiento de cadenas y gráficos.

También aprenderás algunas estructuras de datos y algoritmos avanzados empleados en el desarrollo de aplicaciones.

Hablando de la prueba social, tanto Algoritmos Parte 1 y  Algoritmos Parte 2 son cursos altamente recomendados y tienen críticas y calificaciones impresionantes.

-ClYQqg03sCkaKTze2IFx-gVZ1rJ9oxXbiM3
Algorithms — Part 2

Curso #4. Estructuras de datos en Java

Este es un curso introductorio en línea sobre estructuras de datos, algoritmos y análisis de complejidad. Te enseñará el diseño, la implementación y el análisis de estructuras de datos básicas utilizando el lenguaje Java.

La mejor parte de este curso es la cantidad de ejemplos prácticos y que se enfoca en la intuición en lugar de fórmulas y pruebas matemáticas.

BidoQMlvn0BpD8u95vR7IaGcorlUbo87lAMw
Data Structure in Java

El curso proporciona una buena introducción al “análisis de complejidad”, que permite detectar un programa con un rendimiento deficiente (y excelente), incluso sin necesidad de ejecutarlo.

Eso es todo acerca de algunos cursos gratuitos de estructuras de datos algoritmos disponibles en línea. Puedes usar estos cursos para aprender estructuras de datos y algoritmos a su propio ritmo.

Puede que no todos sean exhaustivos, pero proporcionan una buena introducción. Una vez que complete estos cursos, puede elegir un buen libro como Introducción a los Algoritmos para complementar aún más su conocimiento.

Curso #5. Estructuras de datos de fáciles a avanzadas

Actualización: este curso ya no es gratuito, pero es un gran curso y puede valer la pena para ti. Este curso de estructura de datos y algoritmos de Udemy son para todas aquellas personas que desean aprender estructuras de datos desde un nivel absolutamente básico hasta avanzado.

Este curso no espera que tenga ningún conocimiento previo de estructuras de datos, pero un conocimiento previo básico de Java es útil.

El autor @William Fiset es ingeniero de software en Google y ex finalista mundial de ACM-ICPC y tiene excelentes habilidades de programación informática y resolución de problemas.

Hablando de prueba social, el curso tiene más de 25 000 estudiantes y una calificación promedio de 4.1 de 683, lo cual es impresionante.

En resumen, es una guía completa para aprender todo lo que hay que saber sobre las estructuras de datos.

4-E1RXoSCW8fNivg1wkYVuFmvzPzhkE3uVIF
Easy to Advanced Data Structures

Este también es un curso ideal para estudiantes de ciencias de la computación y profesionales de software en activo que desean aprender estructuras de datos y algoritmos desde una perspectiva de entrevista.

Entonces, si estás buscando un trabajo en compañías basadas en productos como Amazon, Google, Microsoft, o Facebook, puedes usar este curso para poner en marcha tu preparación.

Notas de cierre

Gracias. Llegaste al final del artículo. ¡Buena suerte en tu camino para convertirte en programador! Ciertamente, no será fácil, pero al seguir estos cursos, estarás un paso más cerca de dominar la estructura de datos y los algoritmos que otros.

Si te gustó este artículo, compártelo con tus amigos y colegas, ¡y no olvides seguir a javinpaul en Twitter!