La cantidad de contenido en Internet para CSE (informática) es abrumadora. ¿Cómo se elige sabiamente y aprende?

Querido Ekansh

Gracias por A2A.

Me ha llevado innumerables horas encontrar el contenido correcto. Tuve que buscar en muchos marcadores y archivos para compilar las cosas que he mencionado a continuación. La razón por la que hice esto es para que no reinventen la rueda y usen esta respuesta como plataforma para lograr más.

Espero que esta publicación responda a tu pregunta. Si es así, compártala con otros y ayude a difundir el conocimiento. 🙂

Nota : Esta es una publicación muy larga. Puede exhibir tl; síndrome de dr.

En primer lugar, es alentador ver tu entusiasmo por aprender sobre informática. Felicitaciones a tu espíritu !!

Sin embargo, usted, como muchos otros, exhibe FOMO, Fear Of Missing Out .

No necesita cavar 100 pozos de profundidad de 10 pies cada uno, sino que debe cavar 10 pozos de 100 pies.

El tiempo es un recurso crucial y, por lo tanto, debes elegir tus batallas sabiamente. En lugar de perseguir 10 cosas diferentes al mismo tiempo, recoge 2–3 elementos e intenta desarrollar experiencia en esa área.

Como has aprendido C, intenta aprender C ++ y STL. Aprenda las construcciones del lenguaje y comprenda el concepto / filosofía de la Programación Orientada a Objetos.

Además, tome cursos sobre estructuras de datos y algoritmos.

Comience desde lo básico. Aprenda a codificar: matriz, pila, cola, lista vinculada, lista vinculada bidireccional, lista de lista, árbol de búsqueda binaria. Una vez que haya adquirido confianza en estos, elija temas avanzados como mapas hash, conjuntos, árbol AVL, árbol rojo-negro, árbol B, árbol de segmentos, matrices dinámicas, TRIE, etc.

Todas estas son herramientas para realizar una determinada tarea. Por lo tanto, debe saber cuándo usarlos. Comprenda su complejidad espacio-tiempo, donde se aplican todas estas estructuras, etc.

Ahora para resolver un problema, vienes con algoritmos. Hay toneladas de algoritmos por ahí. No necesita saberlo todo, sino leer / implementar búsquedas, ordenar algoritmos.

Existen diferentes tipos de estrategias de resolución de problemas, como la fuerza bruta, la codicia, la división y la conquista, la programación dinámica, etc. Aprenda más sobre ellas y sepa cuándo aplicarlas.

En algún momento mientras aprendemos, nos centramos tanto en el DS / Algo, que no podemos cerrar la brecha entre el concepto y su aplicación. Por lo tanto, la práctica es la parte más crucial de todo el ciclo de aprendizaje.

IDE para el desarrollo:
Puedes usar CodeBlocks. Es un buen IDE para Windows.
Si usa Linux, puede buscar el editor Vi y GDB para la depuración.

Hay muchos cursos en línea sobre DS, algoritmos, lenguajes de programación.

Ahora, responderé a su pregunta principal: qué recursos usar y cómo lograr sus objetivos.


Advertencia : antes de continuar
El contenido a continuación es muy exhaustivo y puede ser intimidante.
El objetivo no es asustarte, sino compartir una lista completa contigo y con personas como tú que preferirían la información en un solo lugar.

A pesar de mis esfuerzos, a la lista todavía le puede faltar algo. Si es así, hágamelo saber y lo agregaré.

Es posible que no necesite algunos de los elementos mencionados a continuación. Así que estudia lo que necesitas.


Cursos online:

C ++, Programación Orientada a Objetos:
Para aquellos que tienen experiencia en C, deben pasar por la serie de videos NPTEL-HRD del Dr. Partha Pratim Das.

Algoritmos
Hay una especialización de 4 cursos por el Dr. Tim Roughgarden de la Universidad de Stanford en Coursera. Estas son buenas series de conferencias para inscribirse.

Algoritmos | Coursera

O, alternativamente, también puede ver el curso de Algoritmos de la Universidad de Princeton ofrecido por el Dr. Sedgewick.

Algoritmos, Parte I | Coursera

Algoritmos, Parte II | Coursera

Pitón
He escuchado sobre el programa Python de Udemy. Sin embargo, no tengo experiencia de primera mano. Pero puedes consultarlo desde el siguiente enlace:

Completa Python Bootcamp: pasa de cero a héroe en Python

DS
Hay tutoriales en YouTube de Tushar Roy, Saurabhschool, iDeserve, etc., a los que puede referirse para sus problemas relacionados con DS. Si lo desea, hay cursos disponibles en EdX y Coursera para el mismo.

Biblioteca de plantillas estándar (STL)
Si planea utilizar C ++ como su idioma de preferencia, le recomendaré que primero estudie la serie de videos de C ++ que mencioné anteriormente y luego estudie STL. Hay un libro llamado “STL eficaz” de Scott Meyers al que puede referirse. Además, puede consultar los recursos en línea donde sea que se quede atascado.

Desarrollo Android / IOS
No he hecho esto personalmente, por lo tanto, podría no ser el tipo adecuado para comentarlo. Pero le sugiero que vaya a YouTube, escriba “programación de Android” y habrá toneladas de series de videos que le proporcionarán instrucciones paso a paso sobre cómo seguir adelante.

Tu mejor amigo a lo largo de este viaje sería stackoverflow. Le ayudará a resolver sus consultas sobre la marcha.

Programación competitiva:

Si está realmente interesado en la programación competitiva, puede comenzar con Codechef. Mira sus últimos 25-30 eventos largos. Elija los 2 problemas más resueltos e intente resolverlos por su cuenta. Una vez que gane confianza, debe pasar a los siguientes 2 problemas más resueltos.
Después de cada evento, Codechef publica editorial para la competencia, revisa los editoriales de todas las preguntas (incluso las que puedas resolver).
Poco a poco, verá que hay un conjunto de algo / DS que se requieren para as en tales concursos. Practíquelos y sobresalga más.

Comenzar con el deporte de la programación lo ayudará a seleccionar el conjunto correcto de problemas. Aunque también deberías seguir la estrategia anterior.

Puede consultar los Tutoriales de ciencia de datos en TopCoder para obtener más información sobre la programación competitiva.

Estructuras de datos:

La siguiente es la lista exhaustiva de DS que encontré en geeksforgeeks. Los enlaces relevantes se mencionan a continuación:

Revisa la lista e implementa tantos como puedas. Comprenda su importancia e intente conectarlos con una aplicación relevante. Algunos de ellos pueden no ser útiles para usted por adelantado, pero quería mantenerlo exhaustivo.

Lista enlazada:

Lista enlazada individualmente:

  1. Introducción a la lista vinculada
  2. Lista vinculada vs matriz
  3. Inserción de lista enlazada
  4. Eliminación de la lista vinculada (eliminación de una clave determinada)
  5. Eliminación de la lista vinculada (eliminar una clave en una posición determinada)
  6. El enfoque de un programador de mirar Array vs. Lista enlazada
  7. Encontrar la longitud de una lista vinculada (iterativa y recursiva)
  8. ¿Cómo escribir funciones C que modifiquen el puntero principal de una Lista vinculada?
  9. Intercambie nodos en una lista vinculada sin intercambiar datos
  10. Invertir una lista vinculada
  11. Combinar dos listas vinculadas ordenadas
  12. Ordenar por fusión para listas enlazadas
  13. Invierta una lista vinculada en grupos de tamaño determinado
  14. Detectar y eliminar bucles en una lista vinculada
  15. Agregue dos números representados por listas vinculadas | Serie 1
  16. Rotar una lista vinculada
  17. Lista enlazada genérica en C

Lista circular vinculada:

  1. Introducción y aplicaciones de la lista circular vinculada,
  2. Inserción de lista circular vinculada individualmente <
  3. Recorrido circular de la lista vinculada
  4. Dividir una lista circular vinculada en dos mitades
  5. Inserto ordenado para lista circular vinculada

Lista doblemente vinculada:

  1. Introducción e inserción de listas doblemente vinculadas
  2. Eliminar un nodo en una lista doblemente vinculada
  3. Invertir una lista doblemente vinculada
  4. El gran problema de recursión de la lista de árboles.
  5. QuickSort en la lista doblemente vinculada
  6. Ordenar por fusión para la lista doblemente vinculada

Todos los artículos de la lista vinculada
Prueba en la lista vinculada
Práctica de codificación en la lista vinculada
Artículos recientes en la lista vinculada

Apilar:

  1. Introducción a la pila
  2. Conversión de infijo a postfix usando la pila
  3. Evaluación de la expresión de Postfix
  4. Invertir una cadena usando la pila
  5. Implemente dos pilas en una matriz
  6. Comprobar paréntesis equilibrados en una expresión
  7. Siguiente elemento mayor
  8. Invierte una pila usando recursividad
  9. Ordenar una pila usando recursividad
  10. El problema del stock span
  11. Diseñar e implementar una estructura de datos de pila especial
  12. Implementar pila usando colas
  13. Diseñe una pila con operaciones en el elemento medio
  14. ¿Cómo implementar eficientemente k pilas en una sola matriz?
  15. Ordenar una pila usando recursividad

Prueba en pila
Todos los artículos sobre la pila
Práctica de codificación en pila
Artículos recientes sobre la pila

Cola:

  1. Introducción a la cola e implementación de matriz
  2. Implementación de lista enlazada de cola
  3. Aplicaciones de la estructura de datos de cola
  4. Introducción de cola prioritaria
  5. Deque (Introducción y Aplicaciones)
  6. Implementación de Deque usando matriz circular
  7. Implementar cola usando pilas
  8. Encuentra el primer recorrido circular que visita todas las bombas de gasolina
  9. Máximo de todas las submatrices de tamaño k
  10. Un método interesante para generar números binarios del 1 al n
  11. ¿Cómo implementar eficientemente k colas en una sola matriz?

Quiz on Queue
Todos los artículos en cola
Práctica de codificación en la cola
Artículos recientes sobre la cola

Árbol binario:

  1. Introducción al árbol binario
  2. Propiedades del árbol binario
  3. Tipos de árbol binario
  4. Lema de apretón de manos y propiedades interesantes del árbol
  5. Enumeración de árbol binario
  6. Aplicaciones de la estructura de datos de árbol.
  7. Árboles transversales
  8. BFS vs DFS para árbol binario
  9. Recorrido del árbol de orden de nivel
  10. Diámetro de un árbol binario
  11. Recorrido del árbol de pedido sin recursión
  12. ¡Recorre el árbol transversal sin recursión y sin apilamiento!
  13. Árbol binario roscado
  14. Profundidad o altura máxima de un árbol
  15. Si le dan dos secuencias transversales, ¿puede construir el árbol binario?
  16. Clonar un árbol binario con punteros aleatorios
  17. Construir un árbol a partir de los recorridos de pedido y preorden dados
  18. Ancho maximo de un arbol binario
  19. Imprimir nodos a k distancia de la raíz
  20. Imprimir antepasados ​​de un nodo dado en árbol binario
  21. Compruebe si un árbol binario es un subárbol de otro árbol binario
  22. Conecte nodos al mismo nivel

Cuestionario sobre árbol binario
Prueba sobre recorridos binarios de árboles
Todos los artículos sobre árbol binario
Práctica de codificación en árbol binario
Artículos recientes sobre el árbol

Árbol de búsqueda binaria:

  1. Buscar e insertar en BST
  2. Eliminación de BST
  3. Valor mínimo en un árbol de búsqueda binaria
  4. Orden predecesora y sucesora de una clave dada en BST
  5. Compruebe si un árbol binario es BST o no
  6. El ancestro común más bajo en un árbol de búsqueda binaria.
  7. Sucesor de orden en el árbol de búsqueda binaria
  8. Encuentra el k-ésimo elemento más pequeño en BST (Estadísticas de pedidos en BST)
  9. Combine dos BST con espacio extra limitado
  10. Se intercambian dos nodos de un BST, corrija el BST
  11. Piso y techo de un BST
  12. Conversión in situ de DLL ordenada a BST equilibrado
  13. Encuentra un par con una suma dada en un BST equilibrado
  14. Número total de posibles árboles de búsqueda binaria con n teclas
  15. Combinar dos árboles de búsqueda binaria equilibrados
  16. Conversión de árbol binario a árbol de búsqueda binaria

Cuestionario sobre árboles de búsqueda binaria
Cuestionario sobre árboles de búsqueda binaria equilibrada
Todos los artículos sobre el árbol de búsqueda binaria
Práctica de codificación en el árbol de búsqueda binaria
Artículos recientes sobre BST

Montón:

  1. Montón Binario
  2. ¿Por qué se prefiere Binary Heap sobre BST para Priority Queue?
  3. Montón Binomial
  4. Montón de Fibonacci
  5. Heap Sort
  6. K’th Elemento más grande en una matriz
  7. Ordenar una matriz casi ordenada /
  8. Árbol de torneo (árbol ganador) y montón binario

Todos los artículos sobre el montón
Quiz on Heap
Práctica de codificación en el montón
Artículos recientes sobre el montón

Hashing:

  1. Introducción de hash
  2. Encadenamiento separado para manejo de colisiones
  3. Direccionamiento abierto para manejo de colisiones
  4. Imprima un árbol binario en orden vertical
  5. Averigua si una matriz es un subconjunto de otra matriz
  6. Unión e intersección de dos listas enlazadas
  7. Encuentra un par con una suma dada
  8. Compruebe si una matriz dada contiene elementos duplicados a una distancia de k entre sí
  9. Encuentre el itinerario de una lista dada de boletos
  10. Encuentra el número de empleados por cada empleado

Cuestionario sobre Hashing
Todos los artículos sobre Hashing
Práctica de codificación en hashing
Artículos recientes sobre Hashing

Grafico:

Introducción, DFS y BFS:

  1. Gráfica y sus representaciones
  2. Amplitud del primer recorrido para un gráfico
  3. Profundidad del primer recorrido para un gráfico
  4. Aplicaciones de Profund First Search
  5. Aplicaciones de Breadth First Traversal
  6. Detectar ciclo en un gráfico dirigido
  7. Detectar ciclo en un gráfico no dirigido
  8. Detectar ciclo en un gráfico no dirigido
  9. Trayectoria más larga en un gráfico acíclico dirigido
  10. Clasificación topológica
  11. Compruebe si un gráfico dado es bipartito o no
  12. Problema de serpiente y escalera
  13. Minimice el flujo de efectivo entre un grupo determinado de amigos que se han prestado dinero entre ellos
  14. Boggle (Encuentra todas las palabras posibles en un tablero de caracteres)
  15. Asigne direcciones a los bordes para que el gráfico dirigido permanezca acíclico

Todos los artículos sobre estructura de datos gráficos
Prueba en gráfico
Prueba sobre recorridos gráficos
Prueba sobre los caminos más cortos del gráfico
Prueba sobre el árbol de expansión mínima del gráfico
Práctica de codificación en gráfico
Artículos recientes sobre Graph

Estructura de datos avanzada:

Listas Avanzadas:

  1. Lista doblemente eficiente de memoria
  2. Lista enlazada XOR: una lista enlazada doblemente eficiente en memoria | Serie 1
  3. Lista enlazada XOR: una lista enlazada doblemente eficiente en memoria | Set 2
  4. Saltar lista | Conjunto 1 (Introducción)
  5. Lista de autoorganización | Conjunto 1 (Introducción)
  6. Lista vinculada desenrollada | Conjunto 1 (Introducción)

Árbol de segmento:

  1. Árbol de segmentos | Conjunto 1 (Suma del rango dado)
  2. Árbol de segmentos | Conjunto 2 (consulta mínima de rango)
  3. Propagación perezosa en árbol de segmentos
  4. Árbol de segmento persistente | Conjunto 1 (Introducción)

Todos los artículos sobre árbol de segmentos
Trie

  1. Trie | (Insertar y buscar)
  2. Trie | (Eliminar)
  3. Mayor coincidencia de prefijos: una solución basada en Trie en Java
  4. Imprima filas únicas en una matriz booleana dada
  5. ¿Cómo implementar la caché de búsqueda inversa de DNS?
  6. ¿Cómo implementar el DNS Forward Look Up Cache?

Todos los artículos sobre Trie
Árbol indexado binario:

  1. Árbol indexado binario
  2. Árbol indexado binario bidimensional o árbol Fenwick
  3. Árbol indexado binario: actualizaciones de rango y consultas de puntos
  4. Árbol indexado binario: actualización de rango y consultas de rango

Todos los artículos sobre árbol indexado binario
Matriz de sufijo y árbol de sufijo :

  1. Introducción a la matriz de sufijos
  2. Algoritmo de matriz de sufijo nLogn
  3. Algoritmo de kasai para la construcción de la matriz LCP a partir de Suffix Array
  4. Introducción al árbol de sufijos
  5. Construcción del árbol de sufijo de Ukkonen – Parte 1
  6. Construcción del árbol de sufijo de Ukkonen – Parte 2
  7. Construcción del árbol de sufijo de Ukkonen – Parte 3
  8. Construcción del árbol de sufijo de Ukkonen – Parte 4,
  9. Construcción del árbol de sufijo de Ukkonen – Parte 5
  10. Construcción del árbol de sufijo de Ukkonen – Parte 6
  11. Árbol de sufijo generalizado
  12. Construir matriz de sufijos de tiempo lineal usando el árbol de sufijos
  13. Verificación de subcadena
  14. Buscando todos los patrones
  15. Subcadena repetida más larga,
  16. Subcadena común más larga, subcadena palindrómica más larga

Todos los artículos sobre Suffix Tree
Árbol AVL:

  1. AVL Tree | Conjunto 1 (inserción)
  2. AVL Tree | Conjunto 2 (eliminación)
  3. AVL con claves duplicadas

Splay Tree:

  1. Splay Tree | Conjunto 1 (Buscar)
  2. Splay Tree | Conjunto 2 (Insertar)

B árbol:

  1. B-Tree | Conjunto 1 (Introducción)
  2. B-Tree | Conjunto 2 (Insertar)
  3. B-Tree | Conjunto 3 (Eliminar)

Árbol rojo-negro:

  1. Introducción del árbol rojo-negro
  2. Inserción de árbol negro rojo.
  3. Eliminación de árbol rojo-negro
  4. Programa para la inserción del árbol rojo negro

Todos los artículos sobre BST de equilibrio automático

Árbol Dimensional K:

  1. Árbol KD (Buscar e Insertar)
  2. Árbol KD (Buscar mínimo)
  3. Árbol KD (Eliminar)

Otros:

  1. Treap (un árbol de búsqueda binaria aleatorizado)
    1. Árbol de búsqueda ternario
    2. Árbol de intervalo
    3. Implementar caché LRU
    4. Ordenar números almacenados en diferentes máquinas
    5. Encuentra las k palabras más frecuentes de un archivo
    6. Dada una secuencia de palabras, imprima todos los anagramas juntos
    7. Árbol de torneo (árbol ganador) y montón binario
    8. Árboles de decisión – Rompecabezas de monedas falsas (falsificadas) (Rompecabezas de 12 monedas)
    9. Pila de espagueti
    10. Estructura de datos para el diccionario y el corrector ortográfico?
    11. Árbol cartesiano
    12. Clasificación de árboles cartesianos
    13. Conjunto escaso
    14. Descomposición centroide del árbol
    15. Árbol Gomory-Hu

Algoritmos
La siguiente es la lista de algoritmos que debe conocer. Nuevamente, es una lista exhaustiva, que ha sido compilada de Codechef. No necesita estudiarlos todos, pero puede consultarlos si surge una necesidad.

  1. Búsqueda binaria: tutorial, problemas, tutorial, implementación, problema
  2. Quicksort: Tutorial, Implementación, Tutorial
  3. Ordenar fusión: Tutorial, Implementación, Tutorial
  4. Matriz de sufijo: Tutorial, Tutorial, Implementación, Tutorial, Implementación, Problema, Problema
  5. Algoritmo de Knuth-Morris-Pratt (KMP): Tutorial, Tutorial, Implementación, Tutorial, Problema
  6. Algoritmo Rabin-Karp: Tutorial, Implementación, Tutorial, Problema, Problema
  7. Intentos: Tutorial, Problemas, Tutorial: I, II, Tutorial, Problema, Problema, Problema
  8. Profundidad: primer recorrido de un gráfico: tutorial, impelementación, tutorial, problemas, problema, problema, problema
  9. Amplitud Primera transversal de un gráfico: Tutorial, Impelementación, Tutorial, Problemas, Problema, Problema, Problema, Relleno de inundación
  10. Algoritmo de Dijkstra: Tutorial, Problemas, Problema, Tutorial (codicioso), Tutorial (con montón), Implementación, Problema, Problema
  11. Árbol indexado binario: tutorial, problemas, tutorial, papel original, tutorial, tutorial, problema, problema, problema, problema, problema, problema, problema
  12. Árbol de segmentos (con propagación diferida): también se utiliza Tutorial, Implementación, Tutorial, Tutorial, Problemas, Implementación, Tutorial, Implementación y varios usos, Árbol de segmento persistente, problemas iguales a BIT, Problema, Problema / HLD /
  13. Algoritmo Z: Tutorial, Problema, Tutorial, problemas iguales a KMP.
  14. Algoritmo de Floyd Warshall: Tutorial, Implementación, Problema, Problema
  15. Tabla dispersa (LCP, RMQ): Tutorial, Problemas, Tutorial, Implementación (C ++), implementación de Java
  16. Heap / Priority Queue / Heapsort: Implementación, Explicación, Tutorial, Implementación, Problema, Capítulo de CLRS
  17. Inverso Multiplicativo Modular
  18. Coeficientes binomiales (nCr% M): Tutorial, Tutorial, Papel, Problema
  19. Sufijo Automaton: Documento detallado, Tutorial, Implementación (I), Tutorial, Implementación (II), Problema, Problema, Problema, Problema, Tutorial, Implementación
  20. Antepasado común más bajo: Tutorial, Problemas, Papel, Papel, Problema, Problema, Problema
  21. Contar inversiones: dividir y conquistar, árbol de segmentos, árbol de Fenwick, problema
  22. Algoritmo Extendido de Euclides
  23. Árbol de sufijos: Tutorial, Tutorial, Introducción, Construcción: I, II, Implementación, Implementación, Problema, Problema, Problema, Problema
  24. Programación dinámica: Capítulo de CLRS (esencial), Tutorial, Problemas, Problema, Problema, Problema, Problema, Tutorial, Problema, Problema, Problema, Subsecuencia de mayor aumento, Bitmask DP, Bitmask DP, Optimización, Problema, Problema, Problema, Problema Problema, problema, problema, DP en árboles: I, II
  25. Estructuras de datos básicas: Tutorial, Implementación de pila, Implementación de cola, Tutorial, Implementación de lista vinculada
  26. Exponenciación logarítmica
  27. Gráficos: definición, representación, definición, representación, problema, problema
  28. Árbol de expansión mínima: Tutorial, Tutorial, Implementación de Kruskal, Implementación de Prim, Problema, Problema, Problema, Problema, Problema
  29. Factorización Prime eficiente
  30. Combinatoria: Tutorial, Problemas, Problema, Tutorial
  31. Conjunto de búsqueda / disyunción de unión: Tutorial, Tutorial, Problemas, Problema, Problema, Problema
  32. Problema de mochila: solución, implementación
  33. Algoritmo de coincidencia de cadenas Aho-Corasick: tutorial, implementación, problema, problema, problema, problema
  34. Componentes fuertemente conectados: Tutorial, Implementación, Tutorial, Problema, Problema, Problema
  35. Algoritmo de Bellman Ford: Tutorial, Implementación, Tutorial, Implementación, Problema, Problema
  36. Descomposición pesada: tutorial, problemas, tutorial, implementación, tutorial, implementación, implementación, problema, problema, problema
  37. Casco convexo: Tutorial, Implementación del algoritmo Jarvis, Tutorial con escaneo de Graham, Tutorial, Implementación, Problema, Problema, Problema, Problema, Problema
  38. Intersección de línea: Tutorial, Implementación, Tutorial, Problemas
  39. Tamiz de Erastothenes
  40. Árbol de intervalos: tutorial, implementación, problema, problema, problema, problema, problema, problema, tutorial
  41. Contando Ordenar
  42. Las probabilidades
  43. Matriz de exponenciación: Tutorial, Tutorial
  44. Flujo de red: (Flujo máximo) Tutorial: I, II, Tutorial de flujo máximo (Ford-Fulkerson), Implementación, Tutorial (corte mínimo), Implementación, Tutorial (Flujo de costo mínimo): I, II, III, Algoritmo de Dinic con implementación, Flujo máximo de Edmonds Karp con Implementación, problema, problema, problema, problema, problema, problema, problema, problema, problema, problema, problema, problema, problema, problema, problema
  45. Árbol Kd: Tutorial, Tutorial, Implementación, Problema
  46. Deque
  47. Árbol de búsqueda binaria: tutorial, implementación, búsqueda e inserción, eliminación
  48. Selección rápida: implementación, implementación
  49. Treap / Árbol cartesiano: Tutorial (detallado), Tutorial, Implementación, Usos y problemas, Problema, Problema
  50. Teoría del juego: Documento detallado, Tutorial, Problemas, Números Grundy, Tutorial con problemas de ejemplo: I, II, III, IV, Tutorial, Problemas, Problema, Problema, Problema, Problema, Problema, Problema, Problema, Problema, Problema, Problema Problema, Nim
  51. STL (C ++): I, II, Curso intensivo
  52. Máxima coincidencia bipartita
  53. Algoritmo de Manacher: Implementación, Tutorial, Tutorial, Implementación, Tutorial, Implementación, Problema, Problema, Problema
  54. Prueba de primalidad de Miller-Rabin: código
  55. Problema de matrimonio estable
  56. Algoritmo Húngaro, Tutorial
  57. Algoritmo de línea de barrido: I, II
  58. LCP: Tutorial, Implementación, Tutorial, Implementación
  59. Eliminación gaussiana
  60. Factorización de Rho Pollard Integer, problema
  61. Clasificación topológica
  62. Detección de ciclos en un gráfico: Dirigido – I, II Sin dirigir: I
  63. Geometría: conceptos básicos, tutorial
  64. Retroceso: problema de N reinas, Tug of War, Sudoku
  65. Rutas Eulerianas y Hamiltonianas: Tutorial, Tutorial, Implementación (Ruta y Ciclo Euleriano), Implementación (Ciclo Hamiltoniano)
  66. Coloración de gráficos: Tutorial, Implementación
  67. Meet in the Middle: Tutorial, Implementación
  68. Entero de precisión arbitraria (BigInt), II
  69. Clasificación de radix, clasificación de cubeta
  70. Algoritmo de Johnson: Tutorial, Tutorial, Implementación
  71. Coincidencia máxima en un gráfico general: algoritmo de Blossom / Edmond, implementación, matriz de Tutte, problema
  72. Recursión: I, II, Torres de Hanoi con explicación
  73. Principio de inclusión y exclusión: I, II
  74. Compresión coordinada
  75. Descomposición Sqrt: Tutorial, Tutorial, Problema, Problema
  76. Link-Cut Tree: Tutorial, Wiki, Tutorial, Implementación, Problema, Problema, Problema, Problema
  77. Función del Totient de Euler: Explicación, Implementación, Problemas, Explicación, Problemas
  78. Lema de Burnside: Tutorial, Tutorial, Problema
  79. Editar / Levenshtein Distancia: Tutorial, Introducción, Tutorial, Problema, Problema
  80. Branch and Bound
  81. Matemáticas para la programación competitiva
  82. Algoritmo de Mo: Tutorial y Problemas

Si ha revisado toda la publicación, aquí hay un <3 (corazón) para usted.

¡Espero que sea útil!
¡Salud!

#feliz aprendizaje

No tengo mucha experiencia en piratería informática, pero Udacity es una gran fuente para los fanáticos y para el aprendizaje a nivel profesional.

Compartiré algunos de los cursos de piratería gratuitos de Udemy

_*HACKEAR*_

1. Curso completo de piratería ética (Código- * WOO052816 *)

El curso completo de piratería ética: ¡principiante a avanzado!

2. Introducción a python para piratería ética (Code- * FREEBIES *)

Introducción a Python para el pirateo ético – Udemy

3. El curso definitivo de piratería ética (código- * freebee *)

El curso definitivo de piratería ética: aprende desde cero

4. Explorando los secretos de la piratería ética (Code- * HACKING001 *)

Curso completo de piratería ética desde principiante hasta avanzado

5. Programación Bash- Domina el Comando Linux (Código- * BYLDGQ7F *)

Curso de programación BASH: ¡Domina la línea de comandos de Linux!

(Código- FREE4ALL)

https://www.udemy.com/htmlwebsite/

Pruebe 2–3 veces de código no funciona. Algunos cupones de cursos pueden haber expirado

Esto es lo que hago antes de aprender cualquier curso en línea:

Siempre haga esto: decida si quiere aprender desde cero (versión detallada) o simplemente quiere ir abstracto.

Por ejemplo, supongamos que desea aprender algoritmos y estructuras de datos:

Decide lo que quieres:

1) No quiero pruebas de si el algoritmo es correcto, cómo se deriva la complejidad del tiempo, solo quiero saber cómo funciona y su aplicación.

2). Quiero todas las pruebas de algos, junto con la complejidad del tiempo y la complejidad del espacio, cómo funciona, su aplicación, todo.

Para la Opción 1: Todos estos sitios web EDX, Coursera, Udacity, Udemy proporcionarán la opción 1. Perfectamente adecuada para aquellos que quieren ir al resumen.

Para la opción 2: cualquier clase de conferencias universitarias / universitarias como MIT, Stanford, IITS, Udacity (algunos cursos), etc., son perfectamente adecuadas para la opción 2. Son muy detalladas, se imparten perfectamente y están hechas para los estudiantes que desean aprender materias de rasguño.

Ahora, en caso de que no entiendas algo mientras tomas un curso de MOOCS o Universidades, explora los videos de YouTube para ese tema. Si eso aún no aclara sus conceptos, busque la búsqueda web (siempre prefiero los videos a los documentos buscados en la web, porque no me gusta leer todo el documento).

Espero eso ayude.

Edición 1: Hace poco encontré esta lista realmente increíble para la Opción 2, vale la pena revisarla.

prakhar1989 / awesome-cursos

Amigo, es solo una cosa “lógica”.

Otras cosas son solo herramientas.

Para comunicarse con una persona, necesita un proceso de pensamiento claro y un lenguaje común que ambos entiendan. Del mismo modo, el lenguaje es solo una herramienta, necesita descubrir cómo dar instrucciones claras y simples (código limpio) a las computadoras y de eso se trata la lógica.

Si es un principiante, le sugiero que elija un idioma (preferiblemente python, ya que no perderá demasiado tiempo aprendiendo la sintaxis) y comience a mejorar sus habilidades algorítmicas.

Para darle un buen comienzo, recomendaría encarecidamente “tutorialspoint” y “w3schools”

Aprenda todo lo que está presente en estos enlaces a continuación (en orden):

no siga otras fuentes hasta que complete estos tutoriales.

C Estructura del programa

Tutorial de Java

ahora que conoce los conceptos básicos de c y java, necesita saber cuándo aplicar qué.

Programas básicos C: Programas C AZ – Programas básicos C | Ejemplos de programación en C

revise estos programas, primero escriba su propio algoritmo para cada pregunta en inglés simple, trate de entender cuál es exactamente la pregunta. e intente codificar tanto en c como en java, al hacerlo comprenderá los pros y los contras de los diferentes lenguajes de programación.

si no entendió nada, vea la solución dada, si aún no entendió la solución, siempre puede preguntar en stackoverflow.com

ahora que tiene una comprensión básica de la resolución de diferentes problemas, cree una cuenta en hackerrank.com y comience a resolver preguntas con sus amigos e intente obtener un buen rango e intente participar en concursos de rango de hackers. Si no entendió nada, siempre busque desbordamiento de pila.

finalmente :

practica practica practica. eso es todo lo que necesitas hacer para convertirte en un buen programador 🙂

Esa es la habilidad. identifique lo básico que es necesario como bases de datos, estructura de datos, front, backend, sdlc, stlc, sistema operativo. y luego elegir qué idioma están más en tendencia y adquirir habilidades en ese