Si tuviera $ 500 para gastar en libros y tuviera como objetivo convertirse en un mejor programador, ¿qué libros compraría y por qué?

¿Personalmente? Me suscribiría a Pluralsight o un servicio similar.

Mucho depende de cómo aprendes y qué tiene más sentido para ti. A lo largo de los años gasté mucho dinero comprando libros, solo para leer un poco y luego ponerlos en el estante.

En cambio, si necesito aprender nuevas tecnologías, me inscribo en Pluralsight por un mes o dos y tomo los cursos en línea que necesito. Encuentro que ver el código escrito con explicaciones de por qué hace que haga clic para mí. Sigo junto con el ejercicio y escribo el código al mismo tiempo que lo escriben.

Si insiste en comprar libros, me inclinaría más por los cursos que hablan de las teorías detrás de lo que está tratando de hacer. La sintaxis de la tecnología es fácil de encontrar. La teoría detrás de por qué debería hacerse de cierta manera es la parte difícil.

Pero para mí no hay nada mejor que hacer cuando intento aprender.

Definitivamente no apuntaría a los libros cuyo tema es una tecnología actual (por ejemplo, PHP5) o un libro sobre cómo usar múltiples tecnologías (LAMP, PHP, etc.). En general, la información en los libros de instrucciones está generalmente disponible, y el libro se vuelve algo inútil a largo plazo, a menos que desee algún tipo de referencia. Por el contrario, invierta en clásicos algorítmicos, como CLRS, “Pensando recursivamente”, así como en los libros de N. Wirth, R. Sedgewick y (debería decir sin decir / escribir), D. Knuth. Estas son las técnicas y el conocimiento que aplicaría ampliamente en todos los idiomas, antiguos y nuevos. Los patrones de diseño también son muy importantes, por lo que es posible que desee obtener TI.