Desarrollé un programa de capacitación diseñado para estudiar estructuras de datos y algoritmos que combina ( teoría + práctica) en proporciones apropiadas según lo respaldado por Research.
Comienza desde el nivel cero y termina convirtiéndote en un programador de NINJA.

Quizás debería ver todo el programa una vez y decidir por sí mismo desde dónde quiere comenzar.

FASE 1 :: LIGERA, INTERESANTE Y FÁCIL
PARTE A : videoconferencias de MyCodeSchool DS
-> Para conocimiento práctico y comprensión intuitiva de temas básicos
-> Los videos son altamente trabajados en términos de aportes tecnológicos y experiencia del usuario.
-> El narrador Animesh Nayan ha hecho un gran trabajo explicando cosas tomando ejemplos de la vida real y señalando errores comunes que los principiantes hacen
-> Uno de los cofundadores de esta startup fue una vez el codificador mejor calificado de la India (humildefool). Para que pueda estar seguro de la mejor calidad.

PARTE B – Problemas del dominio de HackerRank DS
=> Complemente la PARTE A resolviendo algunos ejercicios de codificación relacionados con DS aquí Estructura de datos Subdominio de HackerRank
=> Muchos de ellos también están diseñados por las mismas personas en MyCodeSchool y deben seguirse simultáneamente con las video conferencias

FASE 1.5 :: OPCIONAL
=> Estructuras de datos y algoritmos simplificados por Narasimha Karumanchi Lo bueno de este libro es que es divertido hacerlo.
=> Te permite dejar las rigurosas matemáticas que te chupan la sangre para después.

=> Esta será una gran prueba de su comprensión de la FASE 1
FASE 2 :: IR EN PROFUNDIDAD
Conferencias de video NPTEL IIT-D
-> Creo que estas conferencias son más exhaustivas y comprensibles que MIT OCW
=> Omita los primeros 3 videos de la serie (ya ha cubierto todo lo que se enseñó en ellos durante la fase 1)

=> Al completar la Fase 2, ya ha cubierto todos los temas básicos de DS con la teoría y ha obtenido una buena cantidad de experiencia práctica en codificación
FASE 2.5 :: OPCIONAL Ravindra Babu Ravula
-> Vea sus conferencias para el aprendizaje orientado a GATE. Son un buen suplemento

FASE 3 :: TEORÍA RIGOROSA Y CODIFICACIÓN CONSISTENTE
PARTE A :: InterviewBit
=> Un programa de preparación de entrevistas con estrellas ★★★★★
=> Adictivo, divertido y prometedor. También podría ser el futuro de la programación de aprendizaje.

=> InterviewBit utiliza el concepto de Gamificación para fomentar el aprendizaje.
=> La plataforma está interconectada con Facebook, por lo que puedes ver el rendimiento de tus amigos e infunde un sentido de competitividad. Incluso puedes seguir a una persona que no está conectada a través de Facebook también.
=> La mejor parte de IB es todo el concepto de racha y nivel. Necesitas alcanzar cierto número de puntos todos los días para mantener una racha, de lo contrario se reduce a la mitad. Y puede pasar al siguiente nivel solo si ha completado lo esencial de ese nivel.
PARTE B::
(I) GeeksforGeeks
=> El mejor sitio web para todo tipo de problemas de práctica en DS con buena explicación y código limpio + completo.
=> Suplemento con GeeksQuiz para más práctica => Puede usarse como referencia

(II) Topcoder
Concursos de programación informática en línea en los lenguajes Java, C ++ y C #. Las competiciones tienen lugar dos veces por semana, y los miembros pueden ganar entre $ 25 y $ 300.
Tipos de competiciones
- Algoritmos (duración de la competencia de aproximadamente dos horas): los competidores reciben un conjunto (generalmente tres) de problemas algorítmicos y tienen 75 minutos para resolver correctamente tantos como puedan.
- Diseño de software (duración de la competencia una semana): los competidores reciben un conjunto de requisitos del usuario e intentan convertirlos en una especificación de diseño de software utilizable. Sus esfuerzos se juzgan según una variedad de criterios del “mundo real” sobre cuán correcto y práctico es su diseño.
- Desarrollo (duración de la competencia una semana): los competidores reciben un conjunto de especificaciones de diseño e intentan escribir componentes de software que coincidan con esta especificación. Estos componentes se juzgan por su funcionalidad y estilo de codificación.
- Partidos de maratón (duración de la competencia una o dos semanas): los concursantes reciben un problema algorítmico particularmente difícil. La puntuación se realiza por computadora en base a criterios específicamente adaptados al problema.
- Estudio (diseño gráfico): se pide a los concursantes que muestren sus habilidades creativas en un entorno competitivo.
- Ensamblaje de arquitectura TopCoder ha creado Concursos de ensamblaje como una extensión de los Concursos de desarrollo y diseño de componentes. A través de estas competencias, los competidores crean aplicaciones de alta calidad utilizando componentes completos y el método competitivo establecido de TopCoder.
- Pruebas
- Los equipos, clientes y miembros de Bug Races Project pueden registrar errores que encuentran en el software desarrollado y respaldado por TopCoder. TopCoder comunicará estos errores a la comunidad miembro. Los errores que están abiertos a la comunidad se publicarán en la página Active Bug Races.

(III) Fuerzas del código
Codeforces proporciona los siguientes servicios principales a todos los usuarios:
- participación en los concursos cortos (2 horas), llamados “Rondas de Codeforces”, que se realizan aproximadamente una vez por semana;
- participación en concursos educativos (1.5-2.5 horas), que se llevan a cabo 2-4 veces por mes
- desafiar / piratear otras soluciones de concursantes;
- capacidad de resolver problemas de concursos anteriores con fines de capacitación;
- “polígono” para crear y probar problemas;
- tipo de redes sociales mediante el uso de blogs públicos internos.


(III) OTROS
1. Codechef: concurso de programación, concurso de programación, programación informática en línea
2. SPOJ – Juez Esfera en línea (SPOJ)
3. UVa – Juez en línea de UVa – Inicio
4. ProjectEuler – Proyecto Euler
5. Desafíos de programación – Desafíos de programación
6. ahmed-aly – Concursos virtuales en línea
7. TJU – Juez en línea TJU ACM-ICPC
8. PJU – UNIÓN PANAMERICANA DE JUDO
9. USACO – Portal del programa de capacitación de USACO
10. TIMUS – Juez en línea de Timus
11. AIZU – Desafío de programación
12. URI – Juez en línea de URI – Iniciar sesión
13. ZOJ – ZOJ :: Inicio
14. NTHU – Juez en línea de NTHU
15. Leetcode – LeetCode
16. AI Challenge – Inicio | AI Challenge
17. Saratov – Saratov State University :: Contester en línea
18. Google code jam – Google Code Jam
19. InterviewStreet – Concursos de programación – Copias de imprenta – Interviewstreet
20. Kaggle – haciendo de la ciencia de datos un deporte
21. Herbert – Bienvenido a Herbert Online Judge
22. CoderCharts – CoderCharts – Programación Social Meets
23. PKU – Bienvenido a PKU JudgeOnline
24. CodingBat – CodingBat
25. Programador – Programador | Learn.Code.Share
26. HackerRank – Desafíos de inteligencia artificial :: Problemas de programación de IA y competencias :: HackerRank
27. Al Zimmermann – Concursos de programación de Al Zimmermann
28. Light OJ- Página en lightoj.com
Si las cosas parecen difíciles, entonces comience desde aquí primero
=> Juez de PEG – 2048
PARTE C :: Creo que esta preparación es suficiente para domesticar a la Bestia más enervante del Diablo en una cantidad razonable, es decir.
Capítulo 1: Puede elegir ignorar el capítulo 1 o pasarlo por alto.
Capítulo 2: Solo lectura 2.1 y 2.2.
Capítulo 3: Si eres principiante, es posible que no te encante este capítulo. Entonces, solo lea 3.1. Hojear a través de 3.2
Capítulo 4: Para el primer temporizador, está bien leer 4.1, 4.3, 4.4 y 4.5 y dejar el resto.
Capítulo 5: Puede omitir esto como primer temporizador.
Capítulo 6: Todo es muy importante, lea todas las secciones.
Capítulo 7: Puede omitir la sección 7.3, pero asegúrese de leer las otras secciones detenidamente
Capítulo 8 y 9: Puede dejar estos capítulos al principio.
Capítulo 10: Todas las secciones de este capítulo son obligatorias y deben leerse.
Capítulo 11: Puede omitir la sección Hashing perfecto (11.5)
Capítulo 12 y 13: No omita nada en estos capítulos.
Capítulo 14: Omita esto si es el primer contador de tiempo.
Capítulo 15: Le encantará este capítulo. La sección LCS puede parecer complicada, pero si es posible, intente leer esto dos veces.
Capítulo 16: Solo lectura 16.2, 16.2 y 16.3
Capítulo 17: Omita esto por primera vez.
Capítulo 18, 19, 20 y 21: omita todos estos capítulos. Capítulo 22: Puede optar por omitir la sección 22.5 (Componentes fuertemente conectados)
Capítulo 23: Todo en este capítulo es importante y debe leerse la primera vez.
Capítulo 24 y 25: estos deben leerse
Capítulo 26: Puede omitir esto, no es muy importante para empezar.
Capítulo 27 sobre salas: no para empezar, una vez que tenga una buena mano en los capítulos hasta aquí, siempre puede elegir qué leer de los capítulos restantes en función de su interés.
==> Pero si vas por un desafío COVER TO COVER (es decir, implementando cada algoritmo, entendiendo cada prueba, etc.), que estos cuatro caballeros tengan piedad de tu alma.

PARTE D :: Libros de preparación de entrevistas:
Cracking the Coding Interview :: LA BIBLIA DE PREPARACIÓN DE LA ENTREVISTA
=> Este libro le brinda la preparación para la entrevista que necesita para obtener los mejores trabajos de desarrollador de software.
=> Se enfoca en las habilidades de ingeniería de software utilizando 150 preguntas y respuestas de entrevistas de programación, así como otros consejos valiosos.
=> El autor es un ex ingeniero de software y ha trabajado en Google, Microsoft y Apple. También ha estado en el otro lado de la mesa, contratando candidatos para estas empresas líderes y, por lo tanto, tiene información valiosa sobre lo que sucede y cómo prepararse para ello.
=> Un sitio web relacionado es CareerCup, que es un foro de discusión donde puede encontrar una variedad de preguntas de varias compañías. Tiene una buena colección de preguntas ya que es antigua (fundada en el año 2005)

OPCIONAL :: HACIENDO UN MEJOR USO DE INTERNET
Puede seguir a algunos programadores conocidos, autores e ingenieros de software profesionales para obtener consejos, sugerencias, trucos habituales o aprender de su código.
1) Programadores competitivos: 🙁 Sin ningún orden en particular)

- Turista (programador competitivo) Gennady Korotkevich
- Michal Forišek (misof en Topcoder)
- Bohdan Pryshchenko (I_love_Tanya_Romanova – Codeforces)
- Michal Danilák (Mimino en Topcoder)
- Przemysław Dębiak (psyho en Topcoder)
- Neal Wu (neal_wu en Topcoder)
- Johnny Ho (codeforces.comrandom.johnnyh – Codeforces)
- Usuario de Quora
- Mark Gordon (msg555 en Topcoder)
- Egor Suvorov (yeputons en Topcoder)
- Brian Bi
- Anudeep Nekkanti
- Petr Mitrichev (programador competitivo)
- ACRush (Tiancheng Lou) CodeChef Usuario | CodeChef
- Djdolls (Ajay K. Verma) Usuario de CodeChef | CodeChef
- Lalit Kundu
- Anshuman Singh
- Triveni Mahatha
2) Desarrolladores de software profesionales ::
Jon Skeet

- Es el maestro de las bibliotecas del tiempo.
- Tiene el puntaje más alto de todos los tiempos en StackOverflow.
- Es el mismo para la programación que Chuck Norris para combatir el crimen. Más sobre esto aquí: Datos de Jon Skeet
- Autoridad en C #.
- > 32000 respuestas de StackOverflow
- Tiene un respaldo inmenso de la comunidad.
Mariya Mykhailova Desarrollador de software, principalmente interesado en algoritmos y lenguajes de programación.
Especialidades: SQL, Oracle SQL, C ++, algoritmos, escritura de problemas https://www.linkedin.com/in/mari…
Jonathan Kang
Jonathan es diseñador de CPU en Nvidia (dice su perfil, al menos). Brillante con cualquier cosa a nivel de arquitectura, realmente aprendo mucho de sus respuestas.
Anders Kaseorg
Anders, creo, es a lo que se podría referir coloquialmente como un genio. Dos cosas de las que está muy bien informado son Python y las matemáticas. Eso no es demasiado sorprendente dados sus logros: tiene una SB en matemáticas del MIT y cofundó una startup (K-Splice) que fue comprada por Oracle. Desearía que publicara más sobre cosas de nivel de sistemas (es decir, Linux principalmente). De hecho, desearía que publicara más período. Actualización : verlo publicar más en C y C ++, que son mis propios lenguajes de elección. También olvidé mencionar la última vez que responde muchas preguntas sobre algoritmos y todas son geniales. Muy simple, explicaciones claras.
Robert Love
El hacker de Linux que funciona para Google, primero en el kernel de Android y ahora en la infraestructura de búsqueda web, también escribió un libro muy bueno sobre el kernel de Linux. Mi única queja sobre Robert es que no publica más en Quora. Actualización : En estos días veo a Robert publicando mucho más, y estoy aprendiendo más que nunca. Entre Robert y Anders, realmente estoy aprendiendo mucho sobre programación en C y el kernel de Linux, y es fantástico.
Usuario de Quora
Hacer un doctorado en automatización de diseño electrónico, algo de lo que no sé demasiado ni sé que mucha gente lo hace, pero es un tema reconociblemente importante. Sabe mucho sobre arquitectura, buenos consejos sobre el campo y sobre la escuela de posgrado en general. Su actividad es excelente, encuentra cosas que no puedo, así que es un buen negocio.
Cameron Purdy
Hace poco seguí a Cameron, pero mirando a través de su actividad pasada, parece muy informativo con respecto a Java, sistemas distribuidos y bases de datos. Funciona para Oracle, por lo que sus áreas temáticas parecen adecuadas. EDITAR: Solo para agregar, fue un fundador de inicio (Tangosol) y vendió a Oracle. Gracias Miguel por la distinción en los comentarios.
Joshua Engel
Por mucho que recuerdo haber leído sobre él, es un programador de día, y casi todo lo demás de noche, y puedes ver eso por su actividad en Quora. En realidad, había publicado un comentario sobre cómo no publica lo suficiente en software, pero me señalaron que sí y no lo había estado viendo en el mismo volumen relativo que otras personas que sigo desde que Josh está activo en tantos temas diferentes. Sin embargo, si buscas sus respuestas en software, son realmente muy perspicaces y claras. También me gusta agregar que Joshua es una persona divertida para seguir en general, no solo para CS / software.
Anthony Yeh
Estudiante de doctorado en Berkeley en el EECS (su lema dice optoelectrónica, así que supongo que EE). Conocido en áreas generales de computadoras, y algunas áreas más específicas también. También publicaciones sobre temas de posgrado. Otra persona que deseo publicó más. También, creo, un Quora Top Writer 2012 (¡felicidades!).
Greg Pfister
Arquitecto informático retirado, solía trabajar en IBM. Escribió un libro llamado In Search Of Clusters , y está muy bien informado sobre toda la arquitectura de computadoras. Desearía que publicara más también, dada su experiencia en el campo.
Dan Zhang
Estudiante de doctorado en ingeniería informática en UT Austin (una de las mejores escuelas de informática, si se lo preguntaba). Una buena persona para seguir en general, y escribe publicaciones en la escuela de posgrado, así como cosas relacionadas con su propio campo. Un poco breve a veces (mi propia preferencia son las respuestas más largas), pero admito que a veces es necesario. Ciertamente, una persona que debe considerar seguir, independientemente de su preferencia, ya que da algunas respuestas realmente buenas.
Usuario de Quora
Un estudiante de primer año de CS / Mechatronics en la Universidad de Melbourne con intereses en finanzas, estadísticas y CGI. No responde muchas preguntas, pero la razón principal por la que lo sigo es por su tablero llamado Hardcore Engineering, donde publica algunas cosas fantásticas sobre software, idiomas y CS en general. Solo algunas cosas de muy, muy alta calidad, asegúrate de echarle un vistazo.
Jessica Su
Ashish Kedia
3) Si también está interesado en contribuir o aprender de proyectos de código abierto de buena calidad ::
ENLACES GITHUB ::
