Cómo planificar 1-2 años de programación para convertirse en un experto en algoritmos, suponiendo que tenga un conocimiento de C ++ en la escuela secundaria

Hola ,

La pregunta se ha elaborado más y créanme, toda la discusión o las respuestas que hubieran sido posibles ya se encuentran en la pregunta, pero aún le faltan muchas cosas y me gustaría aprovechar la oportunidad para señalar las cosas que faltan.

Has mencionado sobre los lenguajes c ++ e información sobre los sitios web de la competencia. Sí, es bueno, pero en su agenda no se menciona ninguna clase de algoritmo, libro ni nada. Lo que ha enumerado anteriormente es útil para aprender el lenguaje de programación y algunos trucos de seguridad, pero ninguno de ellos le dará una inspección de los algoritmos. Lo que ha mencionado anteriormente es para las personas que ya son expertas en la escritura de algoritmos y desean probar sus habilidades en el mundo real, entonces pueden hacerlo resolviendo preguntas competitivas en un sitio web como www. codechef .com, etc. Ahora parece que necesito considerarte novato para que realmente puedas aprender algo en el tiempo mencionado.

Para aprender el algoritmo no necesita tener conocimiento sobre ningún lenguaje de programación. Si es así, es una ventaja adicional aprender las cosas rápidamente, pero no son condiciones necesarias. A continuación, si realmente desea dominar la escritura del algoritmo, dedique también una buena cantidad de tiempo a las estructuras de datos. Al menos déles 2-3 meses después de todo, el algoritmo eficiente depende en gran medida de las estructuras de datos utilizadas en él.

La siguiente parte viene a sumergirse en el desarrollo de algoritmos reales. Para empezar, compre un buen libro . Por favor no prefiera una copia electrónica . Al principio parece intuitivo y muy técnico, pero desperdicia y consumirá una gran cantidad de tiempo buscando y moviéndose aquí y allá. También causará problemas físicos que lo obligarán a tomar una brecha entre las Horas de aprendizaje que no es obligatorio. He estudiado sentado continuamente durante 10-15 horas al día. Si no puede, tome un descanso cada 2 horas, pero depende de persona a persona.

El algoritmo de Good books for learning es:

1. INTRODUCCIÓN A LOS ALGORITMOS 3ED 3a Edición
2.FUNDAMENTOS DE ALGORITMOS INFORMÁTICOS 2ED 2ª Edición
3. Estructuras de datos y algoritmos en Java, 2ª edición, 2ª edición
4.El manual de diseño de Algoritham 2ª ed.
5.Estructuras de datos y algoritmos simplificados 2da edición

Entre los cinco libros enumerados anteriormente, My Favorited es el primero. Créeme, es una Biblia para el aprendizaje de algoritmos y se explica en un lenguaje muy fácil. Lo completé en 6 meses pero tienes más tiempo y puedes obtener más conocimiento de él.

Los buenos sitios web para aprender el diseño de algoritmos son:

1: http://nptel.ac.in/courses.php?d…
2: http: //openclassroom.stanford.ed…
3: http://courses.csail.mit.edu/6.0…
4: http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=alg_index
5: http://www.cs.uiuc.edu/~jeffe/te…

Como indio soy fanático de las conferencias NPTEL, así que lo mantuve en primer lugar en la lista, pero siempre tienes todas las opciones abiertas.

Algunos sitios web más que pueden probar ser valiosos:

1. http://www.cs.sunysb.edu/~skiena…
2.http: //courses.csail.mit.edu/6.8…
3. http://www.cs.berkeley.edu/~jrs/…
4.https: //www.coursera.org/course/…
5. https://www.coursera.org/course/…
6. http://www.careercup.com/page?pi…
7.http: //www.careercup.com/page? Pi …
8 http://leetcode.com/
9 http://stackoverflow.com/questio…
10. http://stackoverflow.com/questio…
11 https://www.udacity.com/course/c…
12 http://www.manishkk.blogspot.in/…

Lista de referencia: http://www.indiageeks.in

Sobre la escritura de algoritmos:

La escritura de algoritmos no es tan fácil como la programación . Si comienzas a aprenderlo, muchas veces sentirás que lo dejas, pero no sigas esa intuición.
Mantenga su objetivo destinado y avance.

Mientras aprendes, encontrarás muchas peculiaridades con el lenguaje de programación y en ese momento debes abandonar tu experiencia y seguir como dice el libro, y esta es la única razón por la que dije anteriormente que para aprender el algoritmo no necesitas tener programación experiencia. En algoritmo utilizamos lenguaje sudo.

Hay muchas cosas que están escritas en un inglés claro y comprensible, pero aún así no podrás entender lo que realmente dice.

Habrá un momento en el que verá solo una declaración que contiene pocas palabras como 10 a 12, podrá descubrir el significado individual en inglés de esas palabras, pero tendrá dificultades para entender lo que realmente significa en ese contexto.

Una vez más, repito Algorithm Writing no es tan fácil para que todos puedan hacerlo Y no tan difícil para que nadie pueda hacerlo. Necesita creatividad e imaginación extendida.

Consejos :

1. Vaya con el libro físico ya que alguna vez se acostará en la mesa, luego en la cama, luego en el piso y finalmente nuevamente en la mesa.

2. No intente de memoria los algoritmos. Es fácil, pero no necesita ir a los exámenes universitarios. Estás aprendiendo, así que trata de entender.

3. Comience con el primer capítulo y continúe con el capítulo siguiente solo si siente que ha entendido muy bien el primer capítulo. El libro que mencioné arriba, el primero, que es INTRODUCCIÓN A LOS ALGORITMOS 3ED 3rd Edition también contiene ejercicios. Ve con eso. Ayudará a aclarar los temas.

4. Si te quedaste en alguna página o algo. entonces no lo fuerces a entender.
Tómese un descanso, tome un vaso de agua fría, camine por el jardín o la terraza y en una nueva sesión, simplemente lea una vez y avance unas pocas páginas, luego vuelva otra vez en reversa para comenzar ese tema y leerlo nuevamente. Este es el mejor truco para aprender cualquier cosa que no entiendas. Es simple leer algunas páginas más adelante y luego reiniciar desde el principio.

5. Tome la ayuda de foros de discusión .www. stackoverflow .com es el mejor.

6. Si tiene algún problema, pregúnteme. No soy el mejor, pero sí, soy una de las buenas opciones que tiene. Lo dije antes, he leído todo el libro página por página y palabra por palabra para que sea fácil y rápido. para que obtengas aclaraciones.

7. Siempre comparte lo que tienes :). Esta es la mejor manera de aprender.

Intenté mi mejor nivel para guiarte a comenzar a aprender algoritmos, pero aún si tienes alguna duda, por favor vuelve.

Feliz aprendizaje 🙂

Be Code y Play Code

Los algoritmos son una habilidad básica, no un objetivo final. En la actualidad, la mayoría de los lenguajes de programación tienen bibliotecas de los algoritmos más utilizados. Lo más importante para entender es su complejidad de tiempo y complejidad de espacio. La complejidad del tiempo es una forma elegante de decir cuánto tiempo tardan en un tamaño de problema determinado en términos del tamaño del problema. Por ejemplo, si quiero ordenar varios elementos (llamemos al número n), un ordenamiento de burbujas lo hará en n * n operaciones (n ^ 2),. Pero un ordenamiento rápido lo hará en n * log n. Pero mientras que una clasificación de burbujas no requiere memoria adicional, una clasificación rápida tomará un búfer fijo.

La complejidad del espacio es la cantidad de memoria utilizada por un algoritmo, nuevamente, en términos del tamaño del problema. Estas características son los aspectos más importantes de los algoritmos y las estructuras de datos. La mejor manera de aprenderlos es en un curso de informática, ya sea en persona en la universidad o en línea, ahora hay muchas universidades que ponen sus conferencias en línea.

Aprender las estructuras de datos y algoritmos comunes es una tarea relativamente aburrida, pero lo convertirá en un mejor programador.