Los algoritmos son independientes del lenguaje y cualquier programador que valga la pena debería poder convertirlos al idioma de su elección. Desafortunadamente, me he encontrado con varios programadores que son REALMENTE buenos en lenguaje de programación, por ejemplo, Java, conoce pequeños detalles de la API y las complejidades del lenguaje, pero tiene muy poco conocimiento de los algoritmos. Pídales que corrijan los algoritmos de clasificación populares, por ejemplo, quicksort y se desmoronarán. Esperando que sepan sobre algoritmos más complejos, por ejemplo, algoritmos de cadena, gráfico, árbol o codicioso. Una vez, le pregunté a un candidato muy bueno que era bueno en Java, multiproceso, pero su estructura de datos y habilidad con el algoritmo era realmente pobre para su experiencia y calibre. Le pregunté, ¿por qué no pasó tiempo cepillando su algoritmo y su habilidad para resolver problemas antes de venir a la entrevista? Su excusa fue “esos algoritmos son solo para entrevistas y nunca se usaron realmente en la codificación práctica. Nunca los he usado en mis 6 años de carrera en el desarrollo de Java” . Tenía razón, pero no reconoció el algoritmo de mejora a más largo plazo y la estructura de datos para mejorar la habilidad de programación. Son una herramienta para desarrollar habilidades de resolución de programación y sentido de codificación, que se requiere para convertir un requisito del usuario en una línea de código también conocida como programa de computadora.
10 libros de algoritmos: lectura obligatoria para desarrolladores
Otro consejo de oro para aquellos que piensan que los algoritmos son estructuras de datos son para aquellos que quieren trabajar en Amazon, Google, Facebook, Intel o Microsoft, recuerden que es la única habilidad que es menos tiempo, por supuesto, aparte de UNIX y C. El lenguaje va y viene, pero el núcleo de la programación, que es el algoritmo y la estructura de datos, permanece igual. Si sabe cómo funciona la tabla hash, puede usar su implementación en cualquier lenguaje de programación, por ejemplo, HashMap de JDK o HashMap de la biblioteca de impulso de C ++. Entonces, si te tomas en serio la programación y te das cuenta de que los algoritmos y la estructura de datos no son opcionales, estos son algunos de los mejores libros para aprender algoritmos. Algunos de ustedes podrían haberlos leído antes, pero vale la pena leerlos nuevamente.
Introducción a los algoritmos por Thomas H. Corman
Este es uno de los libros de algoritmos más populares, pero tenga en cuenta que contiene una gran dosis de teoría. La edición actual de estos libros es la 3ra Edición y sugiero encarecidamente que cada programador tenga esto en su estantería, pero solo para lecturas cortas y referencias. No es posible terminar este libro de una sola vez. Otra razón por la que recomiendo este libro como uno de los primeros en algoritmo porque es independiente del lenguaje y está acompañado de conferencias aquí.
- ¿Cuál es el mejor libro para comenzar C y C ++ como principiante?
- ¿Cuál es el mejor libro para internet y programación web?
- ¿Cuáles son algunos libros avanzados para desarrolladores rápidos?
- ¿Cuál es el mejor lenguaje de programación para aprender a hackear? ¿Cuáles son algunos libros para principiantes?
- ¿Cuáles son los libros de Python más interesantes?
Algoritmos de Robert Sedgewick y Kevin Wayne
Este fue mi recurso preferido en algoritmos desde hace mucho tiempo, pero todavía lo veo con menos frecuencia que antes. Aprenderá muchos antecedentes sobre algoritmos y hoy en día hay disponibles versiones específicas de este libro para diferentes lenguajes de programación, por ejemplo, Java y C ++. También hay una clase de Coursera para este libro, Algorithms Part 1 y Algorithms Part 2. Es excelente. También es mi principal recomendación para los programadores de Java para el aprendizaje de algoritmos. Lo creas o no, pero si ya conoces un lenguaje de programación, ver ejemplos de algoritmos en ese lenguaje de programación que otros reduce la curva de aprendizaje. También puede leer la cuarta edición de este libro en línea de forma gratuita aquí
El manual de diseño de algoritmos de Steve S. Skiena
Este es otro excelente libro sobre algoritmos informáticos que abarca una tonelada de algoritmos con mucho código también. Lo que más me gusta del libro es donde realmente da ejemplos de dónde usó los algoritmos (o variaciones de los mismos) en la práctica; realmente le ayuda a ver la (s) clase (s) de problemas para los que se puede usar un algoritmo particular (o familia de algoritmos).
El código está en C, pero no es muy esotérico y es fácil de seguir.
También había estado fuera de la escuela por un tiempo y esto me ayudó a ponerme al día con bastante rapidez en varios algoritmos gráficos. He tenido esto durante casi 10 años y todavía lo veo de vez en cuando
Algoritmo para entrevistas
Algoritmo para la entrevista de Adnan Aziz es un libro de lectura sobre algoritmos, escrito en términos de tener en mente la entrevista de programación. La portada en sí muestra lo interesante que puede ser el libro, si miras de cerca, la imagen en la portada está dibujada con miniaturas de personajes famosos, y el libro explica cómo puedes desarrollar tales algoritmos. Me gusta este libro debido a su enfoque y objetivo, algunas veces aprender lo mismo con un objeto diferente ayuda a entenderlo mejor.
Algoritmo en cáscara de nuez
Algorithms in a Nutshell de O’Reilly es un libro muy bueno para aprender algoritmos de programación, especialmente para programadores de Java. Describe los algoritmos con enfoque en implementarlos y sin grandes matemáticas utilizadas en libros clásicos sobre algoritmos. Todos los algoritmos se presentan en forma de patrón, con una motivación para usarlos, imágenes y pseudocódigo que brindan una descripción general de alto nivel y un código de trabajo (en C, C ++, Java y Ruby). También tienen puntos de referencia para proporcionar pruebas del rendimiento teórico de los algoritmos. En resumen, uno de los mejores libros para aprender algoritmos para programadores.
Diseño de algoritmo por Kleinberg y Tardos
Este es en realidad el segundo mejor libro en Algoritmos después de Introducción a Algoritmos de Thomas Cormon. No es realmente una introducción a algoritmos y es más adecuado para programadores experimentados. Se trata más del diseño de algoritmos para desarrolladores familiarizados con los algoritmos básicos. Debe comenzar con Introducción de algoritmos o algoritmos de Robert Sedgewick y luego continuar con este libro.
Introducción a los algoritmos: un enfoque creativo
Introducción a los algoritmos: un enfoque creativo Por Udi Manber es un gran libro para el autoaprendizaje, ya que está lleno de cientos de problemas y ejemplos. Está diseñado para mejorar las habilidades de resolución de problemas del lector y la comprensión de los principios detrás del diseño de algoritmos, que lo ayudarán a desarrollar sus habilidades de resolución y codificación de programas.
El diseño y análisis de algoritmos
Este es otro gran cocinero en algoritmos informáticos y merece un lugar en el estante del programador. Una vez que haya completado la clase de algoritmos de Coursera y uno de los libros de introducción, puede leer este libro para estudiar temas avanzados en algoritmos.
Estructuras de datos y algoritmos. Aho, Ullman y Hopcroft
Otro buen libro de introducción sobre algoritmos y estructuras de datos. Un libro encantador y claro, y muchos programadores a quienes no les gusta el uso intensivo de las matemáticas en algoritmos apreciarán este libro.
Algoritmos de Python: Dominar Algoritmos Básicos en el Lenguaje Python
Este libro está diseñado para programadores de Python. Magnus Lie Hetland también es autor de uno de los populares libros introductorios de Python, Beginning Python. Este libro se centra mucho en los algoritmos gráficos. Como he dicho que los algoritmos son independientes del lenguaje, el aprendizaje del algoritmo de Python no significa que no pueda implementarlos en Java o C ++, pero si ya conoce Python, este es el gran libro para aprender algoritmos informáticos.
Eso es todo sobre 10 libros de algoritmos que todo programador debería leer . Estoy de acuerdo en que los algoritmos son un tema complejo y no es fácil entenderlos en una sola lectura, en ese caso sugiero leer el mismo libro dos veces. Además, solo leer no es suficiente, intenta implementarlos en un lenguaje de programación que te encante. No está de más escribir su propia ArrayList, HashMap o una implementación de Map basada en árbol. El efecto del algoritmo de aprendizaje no es visible de inmediato, pero notará una mejora sutil en su pensamiento, construcción de soluciones y calidad de código con el tiempo. Por último, hay dos tipos de programadores, uno que entiende el algoritmo y otro que no.
Si le gusta esta lista de libros, también disfrutaría de mi colección de 10 libros que todos los programadores deberían leer, que es una lista de libros sobre programación, codificación, técnicas de desarrollo de software y mejores prácticas, computadoras, programación como profesión y experiencia de algunos de los Grandes programadores / codificadores / desarrolladores de los últimos 50 años.
Por cierto, si está interesado en un curso en línea sobre algoritmos, le sugiero que consulte Algoritmos y estructuras de datos – Parte 1 y 2 en Pluralsight. Es un curso gratuito pero necesita registrarse en Pluralsight. También ofrece una prueba gratuita de 10 días, que es suficiente para tomar este y otros cursos de algoritmos y estructura de datos.