¿Tienes un sueño de ganar una Medalla de Oro en las Olimpiadas de Programación (ACM ICPC)? ¿Quieres impulsar tu carrera con Google Kickstart o quieres ganar un premio de $20,000 y convertirte en un campeón mundial en Facebook Hackercup, Google Code jam? Entonces tienes que ser un solucionador de problemas listo para usar. Estos son algunos de los concursos de programación algorítmica global más famosos en los que programadores de todo el mundo ponen sus habilidades de codificación para resolver problemas del mundo real con el poder del pensamiento, la creatividad, la colaboración, la innovación y la capacidad de actuar bajo presión.
La programación competitiva no es más que un deporte en el que tu código necesita vencer a los demás. Por lo tanto, solo resolver un problema no es suficiente, sino que debe resolverlo de la manera más optimizada con las mínimas complejidades de tiempo y espacio auxiliar. Ahora, si desea codificar así, debe dominar los fundamentos y debe aprender conceptos profundos de cada rincón de la programación, la estructura de datos y los algoritmos . Solo un buen libro puede enseñarte y guiarte para convertirte en un mejor programador. Aquí hay algunos libros sobresalientes que no solo enseñan la sintaxis y la semántica de los lenguajes de programación, sino que también lo ayudan a pensar, organizar y convertirse en un buen solucionador de problemas, que es de hecho la lección más importante para un programador.
1. Introducción a los algoritmos por Thomas H .Cormen, Charles E. Leiserson:
Este libro es la Biblia de la codificación competitiva, un libro de texto completo y bellamente escrito que cubre todos los algoritmos modernos en profundidad. Es un libro introductorio completo y definitivo sobre el diseño y análisis de algoritmos accesible a todos los niveles de lectores. La mayoría de los libros sobre algoritmos disponibles en el mercado son rigurosos e incompletos o cubren una gran cantidad de material sin rigor, pero este libro es un ejemplo raro que combina de manera única tanto el rigor como la exhaustividad. La primera mitad de este libro brinda un método efectivo para estudiar algoritmos y la segunda mitad se enfoca en lectores más avanzados y estudiantes curiosos con material convincente sobre las posibilidades y los desafíos en este fascinante campo.
El enlace del libro es
- Cada capítulo está bien organizado y es mejor para el autoaprendizaje.
- Los pseudocódigos están diseñados para que cualquier programador principiante pueda leerlos.
- Explicación elemental sin sacrificar profundidad de cobertura o rigidez matemática.
- Ampliamente utilizado como referencia de investigación en algoritmos y comúnmente citado como referencia para algoritmos en artículos publicados (más de 10 000 citas).
- libro de programación superventas con medio millón de copias vendidas durante los primeros años.
2. Programación Competitiva 3 por Steven Halim:
Este es un libro de programación competitiva especialmente diseñado para la floreciente Olimpiada Internacional de Informática (IOI) y el Concurso Internacional de Programación Universitaria ACM (ICPC), un libro imprescindible para todos los programadores competitivos. Desde un codificador común hasta uno de los mejores programadores competitivos del mundo, es muy necesario dominar el contenido de este libro. Contiene una colección de estructuras de datos relevantes, algoritmos y consejos de programación escritos para ser más competitivos en estas competencias. Este libro es un placer para los amantes de la resolución de problemas con la programación y para los que quieren ir a entrevistas con grandes empresas de TI.
- Le brinda un sólido límite inferior del paradigma de resolución de problemas en informática.
- Cubre una amplia variedad de problemas, muchos de ellos conocidos por la comunidad por presentar jueces en línea populares.
- Explicar cada algoritmo con algunos problemas de ejemplo conduce a una comprensión profunda de un enfoque pragmático.
- Especialmente enfocado a la práctica con algunos ejercicios de muestra de cada tema para una mejor comprensión.
- Una obra maestra para guiar a cualquier apasionado solucionador de problemas algorítmicos.
3. Guía de Programación Competitiva de Antti Laaksonen:
Este es un libro de referencia ideal y fácil de seguir que presenta una introducción completa a la programación competitiva moderna. Se enfoca principalmente en aprender algoritmos a través de la programación competitiva para fomentar el diseño de algoritmos que funcionen en problemas del mundo real. Este libro también mejora las habilidades de depuración de un programador e influye en el pensamiento necesario para resolver problemas de forma competitiva. El libro contiene muchos consejos y trucos que pueden ser muy útiles para cualquier programador competitivo.
- Describe cómo escribir algoritmos eficientes para procesar grandes conjuntos de datos rápidamente,
- Proporciona conceptos detallados sobre estructuras de datos de la biblioteca estándar de C++,
- Una técnica de diseño algorítmico eficiente para la optimización de programación dinámica y algoritmos gráficos,
- Descripción fácil y agradable de temas de diseño de algoritmos avanzados como el paralelismo de bits y el análisis amortizado.
- Especializado en árboles y algoritmos geométricos, y discute los temas matemáticos para la programación competitiva,
- Contiene una amplia gama de temas de varios niveles de dificultad, este libro es adecuado tanto para principiantes como para lectores más experimentados.
4. Desafíos de programación de Steven S Skiena:
Este es un libro de programación competitiva bien escrito para el autoaprendizaje, la enseñanza de cursos innovadores en algoritmos y programación, y para la competencia internacional. Los concursos internacionales de programación son la mejor manera de mejorar tus habilidades algorítmicas y de codificación y, por esta razón, este libro utiliza problemas de tipo competencia de programación para motivar el estudio de los algoritmos e incluye más de 100 desafíos de programación con la teoría necesaria y los conceptos clave para abordarlos. Todos los problemas interesantes de este libro están bien estructurados por temas para obtener una comprensión concreta tanto de las técnicas algorítmicas como de los temas de codificación avanzada.
- Una gran cantidad de problemas de programación de calidad adecuados para el autoaprendizaje.
- Evaluación en línea en www.programming-challenges.com
- Adecuado para prepararse para los principales contenidos de programación como ACM ICPC, IOI y Topcoder Challenges.
- Contiene conceptos de calidad en resumen sobre elementos clave como teoría de números, geometría, programación dinámica y algoritmos gráficos.
- Los programas están escritos en lenguajes de programación populares como C, C++ y Java.
5. El manual de diseño de algoritmos de Steven Skeina:
Es uno de los libros clásicos más vendidos que revela el misterio detrás del diseño de algoritmos y el análisis de su eficiencia optimizada. No solo es el libro de texto principal de elección para los cursos de diseño de algoritmos, sino también la mejor guía práctica de referencia de algoritmos para programadores, investigadores y estudiantes, que brinda acceso directo a la tecnología de algoritmos combinatorios. Este libro también proporciona muchos consejos y trucos breves para diseñar y analizar algoritmos informáticos con el catálogo de recursos algorítmicos, implementaciones y una extensa bibliografía.
- Soporte en línea para conferencias con diapositivas de conferencias, audio y video completamente actualizados.
- Enlaces actualizados para las mejores implementaciones de algoritmos disponibles en C++ y Java,
- Contiene los problemas algorítmicos más populares que surgen con mayor frecuencia en la práctica,
- Proporciona problemas únicos de aplicaciones del mundo real,
- Apto para todos los niveles de lectores con orientación completa.
Adjunto la hoja de ruta completa para CP para los nuevos principiantes (https://www.geeksforgeeks.org/competitive-programming-a-complete-guide/)
Lo más importante es aprender los conceptos básicos fundamentales y practicar mucho. Puede seleccionar cualquiera de estos libros y comenzar a aprender y comenzar a codificar. Lo mejor de estos libros es que lo mantendrán motivado durante su viaje hacia un buen programador competitivo. Así que no dejes de seguir aprendiendo, sigue persiguiendo y, lo más importante, sigue practicando.
Publicación traducida automáticamente
Artículo escrito por PinakiBanerjee0 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA