Cómo aprender estructuras de datos y algoritmos lo suficientemente buenos como para conseguir un trabajo en 10 meses

¡Hazte relevante! Trataré de responder esta pregunta siguiendo las líneas de otra pregunta.

¿Qué debo comenzar a hacer todos los días para obtener un trabajo en el dominio de Ingeniería de Software en India?

Mi consejo sería comenzar a pensar, no en términos de aprender solo estructuras de datos o algoritmos, sino más en términos de problemas y ¿cómo resolvería un problema?

¡Define los problemas que crees que son interesantes en la vida cotidiana!

Por ejemplo:

  • ¿Cómo ve un cliente de Ola / Uber la ETA del controlador, de los miles de controladores que operan en una región?
  • ¿Cómo funciona un administrador de descargas de Internet?
  • ¿Cómo funciona un acortador de URL?

La intención es comprender y diseñar sistemas a su alrededor que impliquen:

  • Aprender sobre qué estructuras de datos usar y cuándo.
  • Comprender qué estructuras de datos podrían usarse, pero ¿por qué no?
  • ¿Cuándo usar una base de datos? Sugerencia: cuando la RAM no sería suficiente para contener todas las estructuras de datos en la memoria.
  • Piense por qué la relación es una buena opción frente a una base de datos no sql . ¿Por qué usarías MySQL vs MongoDB, etc.?
  • ¿Cuándo una base de datos no sería suficiente y necesitará una memoria de acceso más rápida? Sugerencia: base de datos en memoria

Básicamente, lo que debes comenzar a entender es, ¿cómo lo resolverás?

Se trata principalmente de volverse relevante en el dominio. Elegir las herramientas adecuadas utilizadas en la industria siempre aumentará sus posibilidades de conseguir un trabajo.

En el proceso de leer y comprender lo anterior, asegúrese de crear algo utilizando las herramientas también.

¡Bueno! Basta de consejos, pero ¿Cómo comenzar con esto?

Para mejorar su DS y Algoritmos, vaya con Cracking the Coding Interview (4th Edition), resuelva todas las preguntas primero. Hay soluciones disponibles para estos en Github. (Las soluciones son para la 5ta edición, intente obtener la misma o la última 6ta edición).

Algunas buenas preguntas de diseño del sistema se pueden encontrar en este repositorio de Github. Al principio pueden ser abrumadores, pero comenzarán a tener sentido si sigues leyendo sobre ellos.

Feliz codificación 🙂

Las estructuras de datos no son tan difíciles. Requiere un poco de presencia mental. La mejor manera de aprender las estructuras de datos y el algoritmo es hacer un “mapa de memoria” animado dentro de su mente.

Nuestro maestro usa realmente “diapositivas geniales” para explicar los conceptos involucrados.

Le aconsejaría que use algunas diapositivas informativas de alta calidad.

Use algunas herramientas visuales como VisuAlgo. Así es como visualizo mergesort:

Una vez que practique, tendrá la sensación de visualizar los algoritmos más difíciles. La codificación es la parte más cómoda.

“La mayoría de las personas carecen de visualización, si puedes verlo dentro de tu cabeza, puedes codificarlo con tus manos”.

En caso de que necesite ayuda, no dude en enviar un mensaje.

Nitin Gandhi

No sé cuánto tiempo puedes dar, pero la Introducción a los algoritmos de Thomas Cormen es un libro muy elaborado y descriptivo. Según yo, es una lectura obligada para todos los ingenieros de software.

También trate de enfocarse en algoritmos de práctica y problemas de programación competitivos, geeksforgeeks, hackerearth y hackerrank pueden ayudarlo mucho con esto.

Solo lee y practica. 10 meses es un gran momento … si sigue este consejo, se puede hacer en 3–4 meses en Max.

Buenas universidades como MIT, IIT han publicado sus conferencias en línea. Puedes probar esos. Elija cualquier curso y encuentre las mejores series para ello. Mire la conferencia y luego intente escribir programas para practicar material para cada conferencia. 10 meses es tiempo suficiente para aprender estructuras de datos y algoritmos si sigue un cronograma. Puede encontrar problemas y ayuda para codificar cualquier tema en línea fácilmente.

More Interesting

¿Es razonable delegar decisiones importantes sobre algoritmos?

¿Cómo se hace un motor de chatbot como Wit.ai o API.AI? ¿Cómo puedo hacer una versión simple? Proporcionarme algunos algoritmos y técnicas.

Suponiendo una memoria infinita, ¿siempre es posible aumentar la complejidad de cualquier programa sin introducir redundancia?

¿Cuál es el mejor algoritmo de clasificación para matrices aproximadamente ordenadas?

¿Cómo funciona el algoritmo de clasificación de páginas de Google?

¿Qué es el retroceso en algoritmos?

Cómo calcular la correlación de cada fila en una matriz 2D con una matriz 1D de la misma longitud

¿Existe un método o algoritmo matemático para expresar la suma de un número y un número multiplicado por un radical como la fórmula (a + b) ^ 3?

¿Cómo definirías la ordenación rápida en pocas palabras?

¿Cómo dirigen los sistemas de guía del vehículo de lanzamiento la carga útil hacia órbitas tan precisas?

En Python, dada la siguiente permutación de a, b, c, d, e, f, g, h, i, j, ¿cuál es la próxima permutación en el orden lexicográfico (diccionario)?

¿Qué es un buen libro sobre las estructuras de datos de Java?

¿Es una burbuja una forma muy lenta de ordenar los elementos en comparación con los otros tipos? En caso afirmativo, ¿por qué?

Procesadores de señal digital (DSP): cuando alguien escribe un archivo en una tarjeta SD usando un bus spi, ¿cómo sabe dónde debería estar el comienzo de un nuevo archivo?

¿Cuál es la forma más fácil de animar el algoritmo de Dijkstra para Power Point Presentation?