GitHub - eaguilarjz/ThinkDataStructures: Traducción al español del libro de Allen Downey: Think Data Structures: Algorithms and Information Retrieval in Java · GitHub
Skip to content

eaguilarjz/ThinkDataStructures

 
 

Folders and files

Repository files navigation

ThinkDataStructures

Fuente LaTeX y código de soporte para Piensa en Estructuras de Datos: Algoritmos y Recuperación de Información en Java (traducción al español del libro de Allen Downey Think Data Structures: Algorithms and Information Retrieval in Java, por Ernesto A. Aguilar).

Las estructuras de datos y los algoritmos están entre las invenciones más importantes de los últimos 50 años, y son herramientas fundamentales que los ingenieros de software necesitan conocer. Pero en mi opinión, la mayoría de los libros sobre el tema son muy teóricos, muy grandes y muy detallados:

  • Muy teóricos: El análisis matemático de los algoritmos se base en simplificar supuestos, lo que limita su utilidad en la práctica. La mayoría de exposiciones sobre el tema apenas cubren las simplificaciones y se enfocan en la matemática. En este libro presento el subconjunto más práctico de este material y omito o enfatizo menos el resto.

  • Muy grandes: La mayoría de libros sobre el tema tienen al menos 500 páginas, y algunos más de 1000. Al enfocarme en los temas que considero más útiles para los ingenieros de software, mantuve este libro por debajo de las 250 páginas.

  • Muy detallados: Muchos libros de estructuras de datos se enfocan más en cómo funcionan las estructuras de datos (las implementaciones) y menos en cómo usarlas (las interfaces). En este libro, proveo una ``visión general'', al iniciar con las interfaces. Los lectores aprenderán a usar las estructuras del Java Collections Framework antes de adentrarse en los detalles de cómo funcionan.

Finalmente, algunos libros presentan este material fuera de contexto y sin motivación alguna: ¡es sólo una estructura de datos tras otra!

Trato de volverlo más ameno al organizar los temas alrededor de una aplicación -- la búsqueda web -- que usa estructuras de datos ampliamente, y es una tema interesante e importante por sus propios méritos.

Esta aplicación motiva algunos temas que generalmente no se cubren en una curso introductorio de estructuras de datos, incluyendo estructuras de datos persistentes con Redis y algoritmos de streaming.

He tomado algunas decisiones difíciles con relación a qué dejar fuera, pero he hecho algunas concesiones. Incluyo algunos temas que la mayoría de los lectores nunca usarán, pero que podría esperarse que conozcan, posiblemente en una entrevista técnica. Para estos temas, presento tanto la sabiduría convencional como mis razones para ser escéptico al respecto.

Este libro también presenta aspectos básicos de la ingeniería de software en la práctica, incluyendo control de versiones y pruebas unitarias. La mayoría de los capítulos incluyen un ejercicio que permite a los lectores aplicar lo que han aprendido. Cada ejercicio provee pruebas automáticas para comprobar la solución. Y para la mayoría de ejercicios, presento mi solución al principio del siguiente capítulo.

Este libro está dirigido a estudiantes de ciencias de la computación y ramas afines, así como a ingenieros de software profesionales, personas capacitándose en ingeniería de software y personas personas preparándose para entrevistas técnicas.

Asumo que el lector conoce Java a nivel intermedio, pero explico algunas características de Java a lo largo del camino, y proveo enlaces a material suplementario.

Las personas que han leído Think Java o Head First Java están preparadas para este libro.

About

Traducción al español del libro de Allen Downey: Think Data Structures: Algorithms and Information Retrieval in Java

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

Languages

  • TeX 71.0%
  • Java 28.0%
  • Other 1.0%