por javinpaul
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 en él. 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, por ejemplo, array, string, lista enlazada, árbol, mapa, y estructuras de datos avanzadas como tries, y árboles autobalanceados como árboles AVL, etc., sabrás cuando usar cada estructura de datos y calcular el coste de CPU y memoria de tu código.
Aunque no necesites escribir tu propio array, lista enlazada, o hashtable, dado que todos los principales SDK de programación los proporcionan, por ejemplo JDK o la librería STL de C++, necesitarás entenderlos para poder utilizarlos en el lugar adecuado.
Usar la estructura de datos adecuada puede mejorar drásticamente el rendimiento de un algoritmo.
En realidad, 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í, sólo son introducidos a una estructura de datos en nuestros cursos de ciencias de la computación, pero realmente no aprendimos la importancia del mundo real de ellos, y es por eso que no los entendimos mejor.
Para nosotros, son sólo los algoritmos y estructuras de datos, por ejemplo, algún concepto, no una herramienta que se puede utilizar para escribir buenos programas. No sabíamos que Facebook las usaría para almacenar nuestros datos o que Google las usaría para almacenar páginas web y enlazar con las consultas de búsqueda.
De todos modos, nunca es demasiado tarde.
Si crees que tus conocimientos sobre estructuras de datos no están a la altura o quieres mejorarlos, has llegado al lugar adecuado.
Antes, compartí algunos libros gratuitos para aprender estructuras de datos y algoritmos, y en este artículo, aprenderás sobre algunos de los mejores cursos de estructuras de datos y algoritmos que están disponibles de forma gratuita en línea.
Cursos gratuitos para aprender estructuras de datos y algoritmos
Aquí está mi lista de algunos de los mejores cursos para aprender estructuras de datos y algoritmos, que también 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 de pago, son, de hecho, los mejores recursos para empezar.
Puedes utilizar estos cursos para familiarizarte con las estructuras de datos esenciales y aprender algunos fundamentos.
Algunos de ellos son especialmente buenos desde el punto de vista de las entrevistas, por lo que puedes utilizarlos junto a cualquier libro que estés utilizando para preparar tu entrevista de trabajo de programación.
Curso #1: Conceptos de estructura de datos en C
Este es otro curso gratuito y online de formación en algoritmos y estructuras de datos, cuyo objetivo es enseñar las estructuras de datos básicas en la programación de ordenadores.
Las estructuras de datos que se enseñan en el curso incluyen Pila, Cola y Lista Enlazada utilizando el lenguaje de programación C.
El objetivo principal de este curso es hacer que los estudiantes e ingenieros de software visualicen cómo funcionan las diferentes estructuras de datos.
Este no es un curso exhaustivo, pero aprenderás sobre Pila, Cola y Lista Enlazada.
En resumen, es un gran curso para los programadores nuevos en las estructuras de datos y los que acaban de aprender un lenguaje de programación y quieren aprender los fundamentos de cómo funcionan las estructuras de datos.
Curso #2: Algoritmos Parte 1 – Coursera
Esta es la primera parte de una serie de dos cursos que cubren algoritmos y estructuras de datos en Courera por Robert Sedgewick.
En esta parte, aprenderás estructuras de datos esenciales como listas enlazadas, pilas, colas, árboles binarios y tablas hash, y algoritmos de búsqueda y ordenación como la búsqueda binaria, quicksort, mergesort, insertion sort, etc.
También aprenderá sobre las estructuras de datos principales y los algoritmos que se utilizan en las aplicaciones cotidianas y comprenderá las ventajas y desventajas que implica 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 finalizarlo.
Curso #3: Algoritmos – Parte 2
Esta es la segunda parte de una serie de dos cursos online gratuitos de Coursera que cubren las estructuras de datos y los algoritmos por Robert Sedgewick y Kevin Wayne, ambos son profesores de Ciencias de la Computación.
Robert Sedgewick es también el autor del libro Algorithms 4th Edition, uno de los libros más populares sobre Algoritmos para desarrolladores de Java.
En esta parte, aprenderá sobre los algoritmos de procesamiento de grafos y cadenas.
También aprenderá algunas estructuras de datos y algoritmos avanzados utilizados en el desarrollo de aplicaciones.
Hablando de la prueba social, tanto Algoritmos Parte 1 como Algoritmos Parte 2 son cursos altamente recomendados y tienen impresionantes críticas y calificaciones.
Curso #4. Estructuras de datos en Java
Este es un curso online introductorio sobre estructuras de datos, algoritmos y análisis de complejidad. Te enseñará a diseñar, implementar y analizar estructuras de datos básicas utilizando el lenguaje Java.
Lo mejor de este curso es la cantidad de ejemplos prácticos y que se centra en la intuición más que en las fórmulas y pruebas matemáticas.
El curso proporciona una buena introducción para el «análisis de complejidad», que permite detectar un programa de bajo (y un gran) rendimiento, incluso sin necesidad de ejecutarlo.
Eso es todo sobre algunos de los cursos gratuitos de estructura de datos y algoritmos disponibles en línea. Puede utilizar estos cursos para aprender estructuras de datos y algoritmos a su propio ritmo.
Puede que no todos sean completos, pero proporcionan una buena introducción. Una vez que pase por estos cursos, puede elegir un buen libro como Introducción a los Algoritmos para complementar aún más su conocimiento.
Curso #5. Easy to Advanced Data Structures
Actualización: este curso ya no es gratuito, pero es un gran curso y puede merecer la pena para ti. Este curso de estructuras de datos y algoritmos de Udemy es para todas aquellas personas que quieran aprender estructuras de datos desde un nivel absolutamente básico hasta avanzado.
Este curso no espera que tengas ningún conocimiento previo de estructuras de datos, pero un conocimiento básico previo de Java es útil.
El autor @William Fiset es un Ingeniero de Software en Google y un ex finalista mundial de la ACM-ICPC y tiene excelentes habilidades de programación de computadoras y resolución de problemas.
Hablando de prueba social, el curso tiene más de 25K estudiantes y un promedio de 4,1 calificaciones de 683 de calificación que es impresionante.
En resumen, es una guía completa para aprender todo lo que hay que saber sobre las estructuras de datos.
También es un curso ideal para los estudiantes de ciencias de la computación y los profesionales de software de trabajo que quieren aprender las estructuras de datos y algoritmos desde una perspectiva de entrevista.
Así que, si estás buscando conseguir un trabajo en empresas basadas en productos como Amazon, Google, Microsoft o Facebook, puedes utilizar este curso para iniciar tu preparación.
Aprendizaje adicional
- Estructuras de datos y algoritmos: Deep Dive Using Java
- Estructura de Datos y Algoritmos – Parte 1 y 2
- 10 libros para preparar entrevistas de trabajo de programación/codificación técnica
- 10 libros de algoritmos que todo programador debería leer
- Los 5 mejores libros de estructuras de datos y algoritmos para desarrolladores Java
- Del 0 al 1: Estructuras de Datos &Algoritmos en Java
- Análisis de Estructuras de Datos y Algoritmos – Entrevista de Trabajo
Notas de Cierre
Gracias. Has llegado al final del artículo. ¡Buena suerte en tu viaje de programación! Ciertamente no va a ser fácil, pero siguiendo estos cursos, estás un paso más cerca de dominar la estructura de datos y algoritmos que otros.
Si te gusta este artículo, entonces por favor comparte con tus amigos y colegas, y no te olvides de seguir a javinpaul en Twitter!