Para algoritmos, un libro útil es Algorithm Design: Kleinberg / Tardos. Por alguna razón, este libro no es tan popular como los otros libros de algoritmos, pero está muy bien organizado. El conjunto completo de algoritmos se divide claramente en unos pocos capítulos: teoría de gráficos, algoritmos codiciosos, dividir y conquistar, programación dinámica , flujo de red y algunos otros temas diversos en algoritmos. Debería dedicar algunas semanas a cada uno de los temas anteriores en negrita: estudie el capítulo en unos días y haga los 50 problemas al final. Debido a que solo hay un número manejable de problemas en cada capítulo, puede resolver la mayoría de los problemas en un tiempo razonable. Es posible que desee omitir entre el 20 y el 30% de los problemas que son relativamente difíciles, pero debería poder resolver el 70–80% de los problemas, solo o con poca ayuda.
Para las estructuras de datos, puede consultar Cómo descifrar la entrevista de codificación. Una vez más, hay capítulos sobre cada tema importante (aunque más detallado que el libro anterior). Para cada capítulo, hay un conjunto de aproximadamente 10 problemas. Por lo general, omito los más fáciles y solo elijo los 1 o 2 problemas más desafiantes del conjunto. Dependiendo de su nivel y el tiempo que tenga, es posible que desee hacer lo mismo o probar todos los problemas.
La teoría y los conceptos son esencialmente los mismos independientemente del lenguaje, si implementa cosas desde cero, pero la semántica del lenguaje puede hacer que trabajar con un idioma sea más fácil que el otro. Personalmente prefiero usar Java, porque no tiene que ocuparse de asignar / liberar memoria como en C / C ++, y hay una verificación de tipo, a diferencia de Python.
- ¿Cuál es el mejor libro para aprender sobre los verbos compuestos?
- ¿Cuáles son los mejores libros sobre algoritmos y estructuras de datos?
- ¿Cuáles son algunos grandes libros para románticos sin esperanza?
- ¿Cómo son algunos libros como Trece razones por qué?
- ¿Cuál es el mejor libro de topología para principiantes?