El programador promedio lee UN libro sobre programación por año.
Por eso son promedio.
El desarrollo de software es un tema muy amplio, y hay miles de millones de libros sobre teoría y práctica. Pensando en ello, la mayoría de los libros se dividen en una de cuatro categorías:
Libros sobre teoría de la programación.
Libros sobre alguna tecnología específica.
- ¿Qué libro individual ha aumentado más tus habilidades de programación? ¿Por qué?
- ¿Qué lenguaje y libro de programación de computadoras son los mejores para introducir a los 12 años a la programación de computadoras?
- ¿Qué libros necesito para aprender informática por mi cuenta?
- ¿Qué libro o sitio debo consultar para aprender Estructura de datos?
- ¿Cuál es el mejor libro para el lenguaje de programación de Java para un principiante?
Libros sobre gestión de proyectos de software.
Libros sobre algún aspecto de la práctica de la programación.
Claramente, los libros sobre tecnologías específicas serían los más bajos en esta lista.
Los libros sobre teoría de la programación son probablemente una buena inversión, al igual que los libros sobre gestión de proyectos de software (“Code Complete”, los libros de programación extrema, etc.). Estos son excelentes temas para estudiar, porque informan su visión estratégica y pueden marcar una gran diferencia en su efectividad como desarrollador.
Pero gran parte de este conocimiento de la teoría o la gestión de proyectos carece de sentido o es imposible de internalizar sin la experiencia directa de la programación misma. Eso sugiere que sacarás el máximo provecho de tu dinero de libros sobre la práctica de la programación. (* vea abajo)
Pero hay una trampa: es muy, muy difícil hablar sobre la práctica de la programación en abstracto. Muchos, quizás la mayoría, de estos libros tratarán sobre la práctica de la programación en un lenguaje o tecnología específicos. Eso no significa que la utilidad del libro se limite a ese idioma. Pero su capacidad para acceder a los conceptos en el libro será limitada si no conoce el lenguaje de programación que están utilizando, y tendrá que trabajar más para aplicar los conceptos a otros lenguajes.
Como ejemplo, tome “Refactorización” de Martin Fowler, que está escrito usando Java como lenguaje de enseñanza. La refactorización real (no solo usarla como una palabra elegante para “reescribir código”) es increíblemente poderosa. Aún más poderosas pero más difíciles de internalizar son las secciones posteriores del libro, que describen diferentes pistas sobre problemas en el código (llamados “olores de código”) y diferentes operaciones de refactorización que pueden remediarlos. Te enseña a pensar sobre la estructura de tu código en niveles organizacionales completamente nuevos, entre método y objetos, a veces dentro de métodos.
No solo recomiendo leer “Refactorización”, también recomiendo volver a leerlo cada pocos años, particularmente en las secciones posteriores. Me parece que hacerlo me recuerda cosas que he olvidado, agrega cosas que no se “pegaron” la primera vez y revela nuevas y diferentes comprensiones basadas en mi experiencia desde la última vez.
* Nota: NO estoy diciendo que evite la teoría. La teoría es realmente muy útil, pero necesita ser unida para practicar. Puede leer una tonelada de teoría, pero en algún momento realmente no aumentará su conocimiento porque no tiene la experiencia directa necesaria para internalizarlo. En la categoría de teoría, nunca lo he leído, pero los fanáticos del lenguaje de programación hardcore que conozco elogian sobre SICP (Estructura e Interpretación de Programas de Computadora) por Gerald Jay Sussman y Hal Abelson, de MIT Press:
Bienvenido al sitio web de SICP