Programming pearls

de Jon Bentley

Por qué lo he leído

Programming pearls

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