¿Cuál fue su enfoque para aprender estructuras de datos y algoritmos?

Si voy a darle una larga lista de cursos o tutoriales, o muchas opciones, que eventualmente lo distraerán más, entonces lo estoy engañando.

Mi enfoque fue muy simple, pero muy eficiente. Todo está detrás de la idea de ” The Magic 5 “.

1. Codificación

Un software es una pieza de código (junto con documentos). Entonces, primero, aprende a codificar. Solo elige cualquier idioma. Sugeriría ir con Python o C ++ (solo lo básico sin OOP). Además, dedique algo de tiempo a aprender HTML, CSS y JavaScript (nuevamente, solo lo básico). No dolerá

Ya que hay muchos buenos recursos para usar para aprender lo básico. Simplemente recoja cualquiera de ellos para ponerse en marcha.

2. Programación orientada a objetos

El dominio de OOP es esencial para cualquier desarrollador que quiera construir un software de alta calidad. La orientación a objetos tenía la intención de estar más cerca del mundo real, por lo tanto, hacerlo más fácil y más realista.

3-A. Algoritmos y Estructuras de Datos

Escribir código no es suficiente. Todos pueden hacerlo. El truco es cómo escribir un algoritmo eficiente en términos de memoria y tiempo, y conocer diferentes estructuras de datos, para saber cuándo usar qué estructura de datos, y en qué cada estructura de datos es buena y cuándo es terrible.

Sugeriría primero comenzar con un vistazo rápido a las diferentes estructuras de datos.

Su cerebro es como la batería del automóvil, si no lo usó durante mucho tiempo, la batería se extinguirá. Del mismo modo, si no usaste tu cerebro; resolviendo desafíos algorítmicos, tu cerebro morirá. Entonces, siempre, siempre, practica .

3-B. Big O Notation

En el paso [3-A], a medida que comienza a aprender sobre algoritmos, necesita comparar algoritmos. ¿Cuál es mejor que el otro? ¿Resolverá los casos de prueba más grandes en tiempo y memoria aceptables? Big O Notation es una forma conveniente de expresar el peor de los casos para un algoritmo.

Mi consejo es que nunca busques la perfección. Quiero decir, nunca te esfuerces por aprender todo sobre un tema específico desde el primer giro.

Es perfectamente válido que extrañará algunos conceptos, y otros no serán claros. Eso es normal. En el momento, y a medida que avance, lo ambiguo comenzará a anunciarse nuevamente, y las cosas estarán claras.

La perfección mata la creatividad y la productividad.

La siguiente es una lista extensa de cursos y recursos de Data Science que le brindan las habilidades necesarias para convertirse en un científico de datos.

Elija una especialización completa o una serie de cursos, como los de Coursera, edX y Udacity, o aprenda temas individuales, como aprendizaje automático, aprendizaje profundo, inteligencia artificial, minería de datos, análisis de datos, limpieza de datos, visualización de datos, raspado web y mucho más. más con cursos independientes. Celebre su aprendizaje aún más, asegúrese de complementar estos cursos leyendo uno de los muchos libros gratuitos de ciencia de datos. ¡Debe haber algo allí para cada tema!

  • 1 Coursera1.1 Especializaciones: 1.1.1 Especialización en ciencia de datos1.1.2 Especialización en aprendizaje automático1.1.3 Ciencia de datos aplicada con especialización Python1.1.4 Estadística con especialización R1.1.5 Especialización en sistemas de recomendación1.1.6 Especialización en ciencia de datos genómicos1.1.7 Especialización en Big Data1.1.8 Datos Especialización en minería 1.1.9 Especialización en análisis e interpretación de datos 1.2 Otros cursos de ciencia de datos de Coursera:
  • 2 DataCamp2.1 Trayectorias de carrera 2.1.1 Científico de datos con Python2.1.2 Analista de datos con Python2.1.3 Científico de datos con R2.1.4 Analista de datos con R2.1.5 Analista cuantitativo con R
  • 3 Springboard3.1 Data Science Career Track3.2 Fundamentos del Taller de Ciencia de Datos
  • 4 edX4.1 XSeries4.1.1 Ciencia y análisis de datos en contexto 4.1.2 Ciencia e ingeniería de datos con Apache® Spark ™ 4.2 Certificados profesionales 4.2.1 Certificado del programa profesional de Microsoft en ciencia de datos 4.3 Otros cursos de ciencia de datos edX:
  • 5 Udacity5.1 Nanodegree:
  • 6 Udemy6.1 Introducción completa a Data Science6.2 Python6.3 R Language6.4 SQL6.5 NoSQL6.6 Hadoop6.7 Spark6.8 Tableau6.9 D3.js6.10 Excel
  • 7 Pistas de Dataquest7.1: 7.1.1 Científico de datos 7.1.2 Analista de datos 7.1.3 Ingeniero de datos (próximamente) 7.2 Otros cursos de ciencia de datos de Dataquest:
  • 8 O’Reilly8.1 Rutas de aprendizaje: 8.1.1 Ciencia de datos con R8.1.2 Aprendizaje automático 8.1.1 Visualización de datos 8.1.4 Hadoop8.1.5 Python para Data8.1.6 SQL y bases de datos relacionales
  • 9 Origami de datos
  • 10 canales de YouTube10.1

Concéntrese en las siguientes áreas mientras aprende y elija cualquier idioma de su elección:

Algoritmos: Complejidad de tiempo, Complejidad de 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 presentando 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

A2A

Para mí, el resumen es este:

  1. aprenda conceptos básicos de programación como if-else, switch, for-loop, función, recursión, etc.
  1. escriba muchos programas pequeños, digamos más de 100 programas
  2. pensar mucho – decir más de 60 días
  • aprender contenedores en c ++ (estas son estructuras de datos), digamos, en 2 semanas
  • hacer algoritmos
    1. resuelva muchos fáciles, pocos medios y pocos difíciles, por ejemplo, en 3 meses reales
    2. no copie, solo piense mucho, intente sin resolver más tarde hasta que se resuelva, por ejemplo, siempre
  • Vuelva a aprender los contenedores en c ++ (actualmente haciendo esto) – digamos, 10 + días ahora
  • Elija el idioma de su elección. Comience con implementaciones fáciles como lista, conjuntos, árbol. Luego pase a implementaciones pesadas como gráficos. Escriba casos de prueba para comprender por qué cierto enfoque es mejor. Impleméntelos en un lenguaje con el que no esté familiarizado. Viola, los recordarás para siempre

    Curso de la Universidad de Princeton en Coursera | Cursos en línea de las mejores universidades. Únete a Freegives con mucha confianza

    More Interesting

    Cómo escribir un script de fuerza bruta, en Eclipse

    ¿Por qué se ha reducido la participación de Instagram después de la actualización del algoritmo?

    ¿Cuál es la relación entre las cadenas de Markov y los procesos de Poisson?

    Cómo resolver el problema de los módems (SPOJ.com - Problema EC_MODE) en SPOJ

    Un problema importante con los algoritmos de programación prioritarios es el bloqueo indefinido o la inanición. ¿Puede explicar el concepto de inanición y cómo a menudo se resuelve en la programación de prioridades?

    Encontré un problema algorítmico y no sé cómo resolverlo. ¿Alguien me puede ayudar?

    ¿Qué es NP-hard y NP-complete?

    Cómo ordenar datos multivariados

    ¿Qué es lo necesario para dar el tamaño de una matriz en una declaración de matriz?

    Hay dos imágenes ¿Hay algún algoritmo que pueda decirnos si una imagen se recorta de la otra?

    ¿Cuáles son los ejemplos de colas en la vida real con algoritmo?

    ¿Existe un algoritmo eficiente para enumerar todos los ciclos dentro del Componente fuertemente conectado de un gráfico dirigido?

    Es un método de retroceso para imprimir permutaciones de cadena. No entiendo de qué manera se produce el flujo de control, como después de encontrar el intercambio, el intercambio se llama luego permutar y luego nuevamente. ¿Esto no se me viene a la cabeza?

    ¿Alguien podría escribir un programa en C para mostrar un árbol de búsqueda binario en forma gráfica y explicarlo?

    Cómo ordenar una matriz 2D de tipo char utilizando la función C ++ sort () o qsort ()