He desarrollado un programa de capacitación diseñado para estudiar estructuras de datos y algoritmos que combina ( teoría + práctica) en proporciones adecuadas, como lo apoya la investigación.
Comienza desde el nivel cero y termina convirtiéndote en un programador NINJA.

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

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

PARTE B – Problemas de dominio HackerRank DS
=> Complementar la PARTE A resolviendo algunos ejercicios de codificación relacionados con DS aquí Subdominio de estructura de datos de HackerRank
=> Muchos de ellos también están diseñados por la misma gente en MyCodeSchool y están destinados a ser seguidos simultáneamente con las conferencias de video

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 matemáticas rigurosas que te chupan la sangre para más tarde.

=> Esta será una gran prueba de su comprensión de la FASE 1
FASE 2 :: IR A PROFUNDIDAD
NPTEL IIT-D Video Conferencias
-> 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ñó durante la fase 1)

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

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

=> InterviewBit usa el concepto de Gamificación para fomentar el aprendizaje.
=> La plataforma está interconectada con Facebook, por lo que puede ver el rendimiento de sus amigos e infundir una sensación de competitividad. Incluso puedes seguir a una persona que no está conectada a través de Facebook también.
=> Lo mejor de IB es el concepto de nivel y racha completa. 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 una buena explicación y código limpio + completo.
=> Suplemento con GeeksQuiz para mayor práctica => Se puede usar como referencia

(II) codificador superior
Competiciones en línea de programación de computadoras en los lenguajes Java, C ++ y C #. Las competiciones se llevan a cabo dos veces por semana, y los miembros pueden ganar de $ 25 a $ 300.
Tipos de competiciones
- Algoritmos (duración de la competencia de aproximadamente dos horas): A los competidores se les da 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 de 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 la forma correcta y práctica de su diseño.
- Desarrollo (duración de la competencia de 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 son juzgados por su funcionalidad y estilo de codificación.
- Partidos de maratón (duración de la competición una o dos semanas): los participantes tienen 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): los concursantes deben mostrar sus habilidades creativas en un entorno competitivo.
- Architecture Assembly TopCoder ha creado concursos de ensamblaje como una extensión de los concursos de diseño y desarrollo de componentes. A través de estas competiciones, los competidores crean aplicaciones de alta calidad utilizando componentes completos y el método competitivo establecido por TopCoder.
- Pruebas
- Razas de errores Los equipos, clientes y miembros del Proyecto pueden registrar los errores que encuentran en el software desarrollado y soportado 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 Razas de errores activos.

(III) Codeforces
Codeforces proporciona los siguientes servicios principales a todos los usuarios:
- la participación en los concursos cortos (2 horas), los llamados “Codeforces Rounds”, que se realizan una vez a la semana;
- participación en concursos educativos (1.5-2.5 horas), realizados 2-4 veces por mes
- desafiar / hackear soluciones de otros concursantes;
- capacidad para resolver problemas de concursos anteriores con fines de entrenamiento;
- “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 de computadoras en línea
2. SPOJ – Sphere Online Judge (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. Juez en línea de TJU – TJU ACM-ICPC
8. PJU – UNION PANAMERICANA DE JUDO
9. USACO – Pasarela del programa de capacitación de USACO
10. TIMUS – Timus Juez en línea
11. AIZU – Desafío de programación
12. URI – Juez en línea URI – Iniciar sesión
13. ZOJ – ZOJ :: Inicio
14. NTHU – Juez en línea de NTHU
15. Leetcode – LeetCode
16. AI Challenge – Inicio | Desafío de IA
17. Saratov – Universidad Estatal de Saratov :: Participante en línea
18. Atasco de código de Google – Atasco de código de Google
19. InterviewStreet – Concursos de programación – Codesprints – Interviewstreet
20. Kaggle: hacer de la ciencia de datos un deporte.
21. Herbert – Bienvenido a Herbert Online Judge
22. CoderCharts – CoderCharts – Social Meets Programming
23. PKU – Bienvenido a PKU JudgeOnline
24. CodingBat – CodingBat
25. Programr – Programr | Aprender.Código.Compartir
26. HackerRank – Desafíos de la inteligencia artificial :: Problemas y competencias de programación de AI :: 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 comienza desde aquí primero
=> Juez de PEG – 2048
PARTE C: Creo que esta gran 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 hojearlo.
Capítulo 2: Sólo lectura 2.1 y 2.2.
Capítulo 3: Si eres principiante, puede que no te guste este capítulo. Entonces, solo lee 3.1. Revisar a través de 3.2
Capítulo 4: Para el primer temporizador, está bien leer sólo 4.1, 4.3, 4.4 y 4.5 y dejar el resto.
Capítulo 5: Puedes saltarte esto como un 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: Puedes dejar estos capítulos al principio.
Capítulo 10: Todas las secciones de este capítulo son obligatorias y deben leerse.
Capítulo 11: Puedes saltarte la sección de Hashing perfecto (11.5)
Capítulo 12 y 13: Por favor, no omita nada en estos capítulos.
Capítulo 14: Salta esto si eres el primer contador de tiempo.
Capítulo 15: Le encantará este capítulo. La sección de 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: Salta 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 ser leídos
Capítulo 26: Puedes saltarte esto, no es muy importante para empezar.
Capítulo 27 en salas: no para empezar, una vez que tenga una buena mano sobre los capítulos hasta aquí, siempre puede elegir qué leer de los capítulos restantes según su interés.
==> Pero si vas a un desafío de CUBIERTA A CUBIERTA (es decir, implementar cada algoritmo, entender cada prueba, etc.), estos cuatro caballeros pueden tener piedad de tu alma.

PARTE D :: Libros de preparación para la entrevista:
Cracking the Coding Interview :: LA BIBLIA DE LA 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 para la entrevista de programación, así como otros valiosos consejos.
=> 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 compañías principales 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 :: HACER MEJOR USO DE INTERNET
Puede seguir a algunos programadores, autores e ingenieros de software profesionales conocidos para obtener consejos, consejos, trucos 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)
- Quora Usuario
- 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) CodeChef Usuario | CodeChef
- Lalit Kundu
- Anshuman singh
- Triveni Mahatha
2) Desarrolladores profesionales de software ::
Jon Skeet

- Él es el maestro de las bibliotecas del tiempo.
- Él tiene la puntuación más alta de todos los tiempos en StackOverflow.
- Él es el mismo para la programación que Chuck Norris para combatir el crimen. Más sobre esto aquí: hechos de Jon Skeet
- Autoridad en C #.
- > 32000 respuestas StackOverflow
- Tiene un inmenso respaldo de parte 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: http: //www.linkedin.com/in/mari…
Jonathan Kang
Jonathan es un diseñador de CPU en Nvidia (dice su perfil, al menos). Brillante con cualquier cosa en el nivel de la arquitectura, realmente aprendo muchas cosas de sus respuestas.
Anders Kaseorg
Creo que Anders es lo que podríamos llamar coloquialmente como un genio. Dos cosas de las que tiene mucho conocimiento son Python y 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. Me gustaría que publicara más sobre cosas a nivel de sistemas (es decir, Linux principalmente). De hecho, me gustaría que publicara más periodo. Actualización : verlo publicar más en C y C ++, que son mis propios idiomas de elección. También olvidé mencionar la última vez que responde muchas preguntas de algoritmos y todas son brillantes. Muy simples, claras explicaciones.
Robert love
El hacker de Linux que trabaja para Google, primero en el kernel de Android y ahora en la infraestructura de búsqueda web, también escribió un buen libro 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 publicar mucho más y estoy aprendiendo más que nunca. Entre Robert y Anders, realmente obtengo muchas cosas sobre la programación C y el kernel de Linux, y es fantástico.
Quora Usuario
Hacer un doctorado en automatización de diseño electrónico, algo de lo que no sé mucho ni conozco a mucha gente que lo haga, pero es un tema muy 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
Recientemente he seguido a Cameron, pero al observar su actividad pasada, parece muy informativo con respecto a Java, sistemas distribuidos y bases de datos. Trabaja para Oracle, por lo que sus áreas temáticas parecen adecuadas. EDIT: Solo para agregar, él fue un fundador de inicio (Tangosol) y se vendió a Oracle. Gracias Miguel por la distinción en los comentarios.
Joshua Engel
Por lo que recuerdo haber leído sobre él, es programador durante el día y casi todo lo demás por la noche, y puedes verlo por su actividad en Quora. De hecho, publiqué un comentario sobre cómo él no publica lo suficiente en el software, pero me indicaron que sí y que no lo había visto en el mismo volumen relativo que otras personas a las que sigo desde que Josh está activo en tantos temas diferentes. Sin embargo, si busca sus respuestas en el software, son de hecho muy perspicaces y claras. También me gustaría agregar que Joshua es una persona divertida a 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). Conocedor en áreas generales de computadoras, y algunas áreas más específicas también. También mensajes sobre temas de la escuela de posgrado. Otra persona que me gustaría publicar más. También, creo, un 2012 Quora Top Writer (¡felicidades!).
Greg Pfister
Arquitecto de computadoras retirado, solía trabajar en IBM. Escribió un libro llamado In Search Of Clusters y está muy bien informado sobre la arquitectura de todas las computadoras. Ojalá él también publicara más, 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 CS, si se lo estuviera preguntando). 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 terso a veces (mi preferencia es respuestas más largas), pero admito que a veces es necesario. Ciertamente, una persona a la que deberías considerar seguir, independientemente de tu preferencia, ya que da algunas respuestas genuinamente buenas.
Quora Usuario
Un estudiante de primer año de CS / Mecatrónica 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 debido a su junta directiva llamada Hardcore Engineering, donde publica algunas cosas fantásticas sobre software, idiomas y CS en general. Solo algunas cosas realmente, realmente de alta calidad, asegúrate de que las revises.
Jessica Su
Ashish Kedia
3) Si también está interesado en contribuir o aprender de proyectos de código abierto de buena calidad:
ENLACES DE GITHUB ::
