Cómo preparar estructuras de datos y algoritmos desde cero para llegar a una empresa basada en productos

Centrarse en “Estructuras de datos y algoritmos”.

“Estructuras de datos y algoritmos” es el tema favorito de las empresas entrevistadas. Puede comenzar con la resolución de problemas en estructuras de datos y libros de algoritmos.

“Resolución de problemas en estructuras de datos y algoritmos” es una serie de libros sobre el uso de estructuras de datos y algoritmos en la programación de computadoras. El libro es fácil de seguir y está escrito para el punto de vista de preparación de la entrevista . En varios libros, los ejemplos se resuelven en varios lenguajes como C, C ++, Java, C #, Python, VB, JavaScript y PHP.

Composición del libro
Este libro está diseñado para entrevistas, por lo que en el Capítulo 0 se proponen varios planes de preparación . Luego, en los capítulos 1, se explica una breve introducción del lenguaje de programación y el concepto de recursión. Se explican varios problemas basados ​​en recursividad y matriz.

Luego, en el próximo capítulo, analizaremos el análisis de complejidad. Luego analizaremos las técnicas de clasificación y búsqueda.

Luego estudiará las diversas estructuras de datos y sus algoritmos. Buscaremos en una lista vinculada, pila, cola, árboles, montón, tabla hash y gráficos.

Luego analizaremos el algoritmo de análisis, analizaremos los algoritmos de fuerza bruta, los algoritmos de codicia, los algoritmos de división y conquista, la programación dinámica y el retroceso.

Al final, analizaremos el diseño del sistema , que proporcionará un enfoque sistemático para resolver los problemas de diseño en una entrevista.

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

Tabla de contenido
Capítulo 0: Cómo usar este libro.
Capítulo 1: Introducción – Descripción general de la programación
Capítulo 2: Análisis de Algoritmos
Capítulo 3: Enfoque para resolver problemas de diseño de algoritmos
Capítulo 4: Tipo de datos abstractos
Capítulo 5: Búsqueda
Capítulo 6: Clasificación
Capítulo 7: Lista vinculada
Capítulo 8: Pila
Capítulo 9: Cola
Capítulo 10: Árbol
Capítulo 11: Cola prioritaria
Capítulo 12: Hash-Table
Capítulo 13: Gráficos
Capítulo 14: Algoritmos de cadena
Capítulo 15: Técnicas de diseño de algoritmos
Capítulo 16: Algoritmo de fuerza bruta
Capítulo 17: Algoritmo codicioso
Capítulo 18: Divide y vencerás
Capítulo 19: Programación dinámica
Capítulo 20: Retroceso
Capítulo 21: Teoría de la complejidad
Capítulo 22: Estrategia de entrevista
Capítulo 23: Diseño del sistema

Aquí está el algoritmo para aprender estructuras de datos y algoritmos 🙂

  1. Lista todos los DS y Algo que quieres aprender. Elegir uno. Di: XYZ
  2. Busque en Internet: “Qué es XYZ”, “Aplicaciones de XYZ”, “Pros y contras de XYZ”, etc. Siga los primeros tres enlaces y vea cuánto tienen sentido (no se moleste si el enlace es de Wikipedia , escuela popular, blog, corporación, lo que sea. Google es lo suficientemente bueno como para clasificar los artículos por usted).
  1. Repita la búsqueda en YouTube (use 1.5 o 2x velocidad para videos si es necesario).
  • Refine los términos de búsqueda y / o los recursos web para buscar y continuar leyendo y escuchando hasta que obtenga ese XYZ y sus usos.
  • SI se está preparando para las entrevistas, vaya a geeksforgeeks (o cualquier sitio web ‘relevante’ y relevante) y busque problemas específicos de XYZ. ¿Eres capaz de resolver algunos (5–10) problemas aleatorios sin mirar sus respuestas?
    1. Sí → Ir al paso 5.
    2. No → Ir al paso 3.
  • Elija el siguiente elemento en su lista. Ir al paso 2.
  • Aquí está la lista con la que le recomiendo comenzar:

    Estructuras de datos: matriz, lista vinculada, pila, cola, tabla hash, BST, mapa (hash vs árbol), conjunto, trie, gráfico.

    Algoritmos: complejidad de tiempo, complejidad de espacio, recursión, clasificación, búsqueda, BFS y DFS, programación dinámica, manipulación de bits.

    Concéntrese en las siguientes áreas:

    Algoritmos: Complejidad del tiempo, Complejidad del espacio, Clasificación, Búsqueda, BFS y DFS, Programación dinámica, Recursión, Manipulaciones de bits.

    Estructuras de datos: matriz, lista vinculada, pila, cola, tabla hash, BST, mapa (hash vs árbol), conjunto, trie, gráfico. Aplicaciones y pros y contras de aquellos.

    Matemáticas: permutaciones, combinaciones, medianas, probabilidad, geometría, …

    Codificación: escriba código elegante, correcto y eficiente en 25–45 minutos.

    Resolución de problemas: cómo reducir cualquier problema dado a un problema conocido de Matemáticas o DS o DS + algo dado suficientes pistas.

    Puede tomar el curso a continuación para aprender los temas mencionados anteriormente.

    Descripción del curso-

    ¡Mantenlo práctico! Aprenda en profundidad las estructuras de datos y algoritmos de búsqueda más populares

    Enlace del curso: estructuras de datos prácticas y algoritmos en Java + HW: aprenda en profundidad las estructuras de datos más populares y los algoritmos de búsqueda

    Descripción del curso por instructor

    Si tuviera que elegir el tema más importante en el desarrollo de software, serían las estructuras de datos y los algoritmos. Piense en ello como las herramientas fundamentales disponibles para cada programador de computadoras. Cuanto mejor sea con estas herramientas, más seguro será un programador. El desarrollo de software es un vasto campo que requiere todo tipo de habilidades, pero ser bueno en este único tema es un gran avance en su viaje de programación y ciertamente allanará el camino para una carrera de programación exitosa.

    Los temas de este curso cubrirán estructuras de datos como listas, pilas, colas, árboles y algunos de los algoritmos de clasificación, búsqueda y gráficos más potentes que han revolucionado el campo de la informática. A lo largo del curso mantengo las cosas prácticas y proporciono ejemplos de la vida real de cómo funcionan todos estos algoritmos y cuándo y dónde se pueden aplicar para escribir programas informáticos eficientes.

    Me moveré a un ritmo lento y constante para presentar cada tema seguido de una asignación de programación PRÁCTICA para que pueda aplicar inmediatamente lo que aprendió. Todas las tareas en el curso irán acompañadas de videos de soluciones paso a paso que desmitifican cada problema a medida que codifico las soluciones. Mi objetivo es asegurarme de que, después de completar este curso, se sienta completamente seguro de ir a una entrevista de codificación porque habrá construido una base sólida en la programación de computadoras. Así que adelante e inscríbete y nos vemos en el curso.

    ¿Quién es el público objetivo?

    • Si está harto de cursos centrados en la academia sobre estructuras de datos y algoritmos y desea comprender intuitivamente y prácticamente cómo implementar y los algoritmos y estructuras de datos más populares en software
    • Si no le gustan las matemáticas y quiere aprender estructuras de datos y algoritmos populares a un nivel profundo

    ¿Qué voy a aprender?

    • Gane confianza para codificar entrevistas
    • Aprenda las estructuras de datos y algoritmos más prácticos y populares en profundidad en lugar de un curso apresurado sobre informática
    • Practique la traducción de códigos sudo y la implementación de algoritmos con Asignaciones y Soluciones
    • Obtenga una comprensión intuitiva de cuántos de los algoritmos y estructuras de datos populares se comportan

    Requisitos

    • Los conceptos básicos de la programación, como sentencias if / else, bucles y métodos en algún lenguaje de programación

    Enlace del curso: estructuras de datos prácticas y algoritmos en Java + HW: aprenda en profundidad las estructuras de datos más populares y los algoritmos de búsqueda

    ¿Has oído hablar de un libro llamado – Introducción a los algoritmos por Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, Clifford Stein

    Este es el mejor libro para leer sobre algoritmos de aprendizaje y estructuras de datos. Es un libro muy recomendable para todo informático e ingeniero de software, ya sea principiante o profesional.

    Segunda cosa: tendrás que ensuciarte las manos con la codificación, nada puede reemplazar eso. Para practicar la codificación, hay jueces en línea como:

    • Hackerrank
    • EntrevistaBit
    • Codechef
    • fuerzas de codificación
    • TopCoder

    Estas son algunas plataformas de codificación con complejidad creciente. Comience con la más fácil; una vez que esté lo suficientemente cómodo, muévase a otra plataforma.

    Para referencias puede ir a – GeeksForGeeks

    Si está apuntando a una empresa específica, puede leer las experiencias de entrevistas de otros candidatos, que puede encontrar fácilmente en GeeksForGeeks y Glassdoor. para esa empresa específica.

    ¡Sigue practicando!

    Si su objetivo final es formar una empresa, es mejor si pudiera comenzar a pensar en la idea en lugar de la implementación.

    Aquí en este mundo es fácil encontrar una solución que un problema. Podemos crear una solución a cada problema que tenemos en la Tierra. Lo que hace que una compañía basada en productos sea excelente es QUE HABÍAN IDENTIFICADO UN PROBLEMA Y LOS ESTÁN RESOLVIENDO.

    por ejemplo, ver cualquiera de las grandes empresas que tenemos

    • Aquí hay demasiada oscuridad, invente una bombilla eléctrica (Edison)
    • ¿Cómo cuento después de nueve, inventar cero (Aryabhata)
    • No hay mouse, inventa uno (Steve Jobs)
    • No hay computadora personal, fabrica una (Steve Jobs – Apple)
    • Los teléfonos Symbian / Java no son innovadores ni divertidos, desarrolle un nuevo sistema operativo (Android, IOS)

    El punto es que no necesita pensar en la implementación de estructuras de datos y algoritmos para formar una empresa, solo encuentre el problema y nosotros (los desarrolladores de software) encontraremos la solución, siempre podría hacerlo más eficiente con su conocimiento de estructuras de datos y algoritmos 😛

    Feliz lectura..

    Esto será útil:

    EntrevistaBit

    HackerRank (porción algorítmica especialmente)

    Además, también debe demostrar lo que es capaz de construir .ie sus proyectos, pasantías o experiencia técnica.

    Ambas cosas son igualmente necesarias para asegurar cualquier tipo de trabajo técnico como desarrollador o ingeniero de software.