de Jon Bentley
Por qué lo he leído
Cuando leí Apprenticeship patterns, me gustó mucho su filosofía, sus consejos para ser un mejor profesional en cuanto a desarrollar software se refiere. Unos de los consejos es: estudia a los clásicos. Así que cuando supe de la existencia de este libro, me propuse leerlo, porque me dió la impresión de que era uno de los clásicos.
Qué esperaba
Me esperaba una recopilación de errores de programación de esos que nunca pasan de moda. De los errores que los desarrolladores menos experimentados, por no escuchar los consejos de profesionales más expertos, cometen. Nos ha pasado a todos, como si fuéramos niños que, por no hacer caso a sus padres, cometen los mismos errores que ellos.
Qué encontré
Qué equivocado estaba, pero no importa.
En lugar de eso, encontré una colección, pero no de errores típicos, si no de problemas típicos. Y también encontré soluciones a ellos, y optimizaciones.
Por lo “antiguo” del texto, estos problemas pueden parecer pasados de moda. Pero nada de eso. Son problemas algorítmicos, que se estudian en la universidad. Y están repletos de matemáticas.
Conclusiones
Al principio del libro no estaba muy convencido de haber acertado, pero poco a poco comprendí la esencia del mismo.
Los problemas descritos son básicos en el desarrollo de software. No son problemas de una herramienta o un lenguaje de programación. Por eso mismo, por mucho tiempo que pase, este libro seguirá estando vigente de una u otra forma, y por eso mismo, después de leerlo sigo pensando que acerté, que quería leer un clásico y lo he leido.
Pasajes que quiero recordar de este libro
Los buenos programadores son algo vagos: ante un problema, se sientan y esperan a tener una buena idea antes de correr a implementar lo primero que se les viene a la cabeza
Cuando un programador intenta convencer a otro de que el código es correcto, la mejor herramienta es un test
Mantener el código simple, es generalmente un aspecto clave en la corrección del código
Algunas técnicas de diseño de algoritmos: guardar el estado para evitar recomputación, preprocesar información en estructuras de datos, divide y vencerás, escaneado, acumular resultados, conocer el límite inferior
El principio más importante sobre optimización es que no debería hacerse muy a menudo