Cómo comenzar a aprender algoritmos y estructuras de datos desde cero

Con respecto a su pregunta, aquí hay una breve sugerencia que puedo proporcionar:

Como dijiste, solo conoces los conceptos básicos de Python, por lo que te recomendaré que primero aprendas C, ya que este es el mejor lenguaje para comenzar a sumergirte en la programación. C le enseñará cómo se escribe un programa sintácticamente. También le enseñará cómo funciona un lenguaje de procedimiento. Con C tiene la flexibilidad de trabajar a nivel de máquina mediante el uso de punteros.

Para aprender C, algunos libros que recomendaré son:

  1. Pongámonos C por yashavant Kanetkar. (Recomiendo encarecidamente tomar la copia impresa del libro).
  2. Programación en ANSI C por BALAGURUSAMY. (También tiene algunos de los conceptos básicos de estructura de datos).
  3. También puede seguir el tutorial de newboston para C. (Tutorial C – Introducción)

Para aprender Estructura de datos, debe seguir estos libros:

  1. Estructura de datos usando C por Reema Thareja. (Compre estructuras de datos utilizando C Book Online a precios bajos en India)

Debería comenzar a aprender la estructura de datos básica como matriz, pilas, cola, listas vinculadas, etc.

Para aprender algoritmos, visite este enlace para obtener información sobre qué libros seguir: ¿Cuál es el mejor libro para aprender diseño y análisis de algoritmos?

Por último, pero no menos importante, Python es un lenguaje muy poderoso y popular, pero le sugiero que comience a aprender C porque al aprender C aprenderá cómo funciona un lenguaje de programación.

¡¡Espero que esto ayude!!

Si buscas preparación para la entrevista. Puede comenzar con “ Resolución de problemas en estructuras de datos y algoritmos ” escrito en varios lenguajes como C, C ++, Java, C #, Python, etc. Estos libros son fáciles de seguir y están escritos para el punto de vista de la entrevista . Además, estos libros tienen el último capítulo sobre Diseño de sistemas , que también se requiere en entrevistas.

Los enlaces de los libros en Amazon están abajo:

1. Resolución de problemas en estructuras de datos y algoritmos utilizando C

2. Resolución de problemas en estructuras de datos y algoritmos usando C ++

3. Resolución de problemas en estructuras de datos y algoritmos utilizando Java

4. Resolución de problemas en estructuras de datos y algoritmos con C #

5. Resolución de problemas en estructuras de datos y algoritmos usando Python

6. Estructuras de datos y algoritmos en Go

Descargo de responsabilidad: soy autor de todos los libros anteriores.

Empecé como tú, solo conocía lo básico de un lenguaje de programación y estaba muy confundido acerca de usar un libro o practicar en línea. Compré muchos libros, y todos están en mi estantería durante años. ¡No he usado ninguno de ellos! Tal vez, el tiempo más largo que utilicé para aprender uno de esos libros fue de 2 semanas, luego dejé porque había demasiadas cosas que ni siquiera necesito saber.

Entonces, mi solución para usted ahora es conectarse a Internet y aprender algoritmos en Internet, hay una lista útil para esto en las fuerzas de código.

¡Una lista increíble para programación competitiva! – Fuerzas de código

Si todavía es confuso elegir qué sitios en la lista anterior. Aquí está mi lista y cosas que hice (y todavía estoy trabajando en xD)

  1. Codeforces (intente hacer el div. 2 primero y segundo problemas)
  2. HackerRank (intenta resolver el primer y segundo problema en Rookie Rank o Week Of Code). Hackerrank también tiene una lista de problemas que están ordenados Fácil – Experto para trabajar.

Estos dos son dos sitios realmente útiles para practicar tu habilidad de pensamiento. Por lo general, los dos primeros problemas no requieren un amplio conocimiento de la estructura de datos y los algoritmos. ¡No estés tan triste si no puedes hacerlos (incluso lo más fácil), todos tienen un punto de partida! Sigue intentándolo, llegarás a la cima pronto 🙂

Y ocurre otro problema, no sabes qué hacer con los problemas más difíciles. Ahora es el momento de aprender nuevos algoritmos y estructuras de datos.

Algoritmos – GeeksforGeeks

Es un buen sitio para esto, es como un diccionario en el que puedes buscar algoritmos y practicarlos enviando los problemas, creo que también tienen algunos tutoriales en Python.

Y eso es todo. ¡Ahora es tu forma de estudiar y practicar!

En realidad, para aprender sobre las estructuras de datos, no es necesario que sea específico del lenguaje.

En realidad es un concepto, que se puede aplicar a cualquier lenguaje de programación. (Siempre y cuando ese lenguaje de programación tenga soporte para implementar esa estructura de datos).

Imagina que estás aprendiendo a conducir un automóvil. siempre que conozca los conceptos de “conducir un automóvil”, puede aplicar esos conceptos a cualquier automóvil.

Entonces, “concepto de conducir un automóvil” es una analogía para “concepto de estructura de datos”, y “cualquier automóvil” es una analogía para “cualquier lenguaje de programación”.

Como punto de partida, le sugiero que lea este recurso https://www.tutorialspoint.com/d
Estructura de datos y algoritmos (DSA …

Al igual que con muchas otras respuestas a preguntas similares, la mejor manera de comenzar a aprender algoritmos y estructuras de datos desde cero es trabajar a través de un libro de texto como CLRS. Esto es genial porque es independiente del lenguaje: para usar su conocimiento de Python, recomendaría un libro Dominio de algoritmos básicos en el lenguaje Python porque es una muy buena manera de aplicar su nuevo conocimiento de algoritmos a los detalles de Python.

A medida que trabaje en un libro de texto de algoritmos como CLRS, notará que necesitará una sólida formación matemática (que estoy seguro de que tendrá después de terminar un año de ingeniería electrónica).

Revise o lea ese libro de texto (lo que llevará un tiempo, pero solo está entrando en su segundo año), luego eche un vistazo al libro de algoritmos específicos de Python después o al mismo tiempo, y tendrá un buen conocimiento de los algoritmos. y estructura de datos.

Descubrí este sitio a través de una pregunta similar sobre quora. [1]

Además de algoritmos y estructuras de datos, puede aprender alarmas sobre conceptos básicos de redes, bases de datos, etc.

Notas al pie

[1] Enséñate Ciencias de la Computación

Si estás en Bangalore, visita Best for C ++ Training en India o Shambhala Technologies Private Limited; de lo contrario, puedes comenzar con las matemáticas básicas, como series, registros y exponentes. Luego avance hacia el problema del idioma y comience a usar o diseñar el flujo del programa en papel como diagrama de flujo. Después de eso, pase a las estructuras de datos y comience la implementación en algoritmos básicos y gráficos. Si ha llegado a esta nota, comience a calcular la complejidad y practique hasta el último aliento. Todo lo mejor.

Hmm! A menos que tenga experiencia con C ++, le sugiero que comience con un lenguaje más simple como Python o JS, de esa manera pasará su tiempo enfocándose en la comprensión e implementación de algoritmos en lugar de depurar C ++ que puede ser difícil.