Aprender a programar
Mencionaba el otro día un curso del MIT para aprender a programar usando Python. El curso está muy bien —algunos de los ingenieros de mi equipo lo están disfrutando— pero para realmente aprender a programar hace falta algo más.
Programar tiene algo de arte, y como arte tiene un componente estético. Un buen programa, una buena implementación, un algoritmo bonito, puede emocionar.
Aún cuando pocos llegan a dominar el arte, y la creatividad es elusiva, apreciarlo y disfrutarlo está al alcance de muchos. Un libro clásico para aprender a programar es Structure and Interpretation of Computer Programs, de Abelson y Sussman, conocido normalmente por las iniciales SICP. Este libro extraordinario, lleno de auténticas perlas y accesible <em>on-line</em>, es el texto de un curso que Abelson y Sussman ofrecen en el MIT, y que puedes bajarte en vídeo. Pero no a todo el mundo le gusta: el análisis que hace Peter Norvig de los posibles motivos resulta revelador, y puede ayudarte a decidir cómo invertir tu tiempo.
Peter Norvig: programador mítico, autor, entre otros, de Artificial Intelligence: A Modern Approach (otro gran libro sobre programación, y un clásico en su campo), director de investigación y desarrollo en Google, y el autor de Teach Yourself Programming in 10 Years, un ensayo que hay que leer si tienes interés en aprender a programar (o en aprender cualquier otra cosa).
Más libros que vale la pena leer:
- Programming Pearls, de Jon Bentley, es un compendio de ejemplos de código bonito e ideas brillantes. Por lo visto ha sido "reinventado" en la segunda edición. No sé cómo será la reinvención: el original era brillante.
- On Lisp es un tour de force por algunos de los conceptos más bonitos —y más poderosos— con que se puede encontrar un programador, por Paul Graham (otro gran programador y ensayista extraordinario). Son ideas muy poco conocidas, porque muchas de ellas sólo se pueden expresar el Lisp y relativamente poca gente sabe Lisp (lamentablemente). Por cierto, y sobre el Lisp:
Lisp has jokingly been called ‘the most intelligent way to misuse a computer’. I think that description is a great compliment because it transmits the full flavor of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts.
- Edsger Dijkstra, CACM, 15:10
- Por último, si te interesa la gestión de programadores (y de equipos en general) un clásico que hay que leer es The Mythical Man-Month, de Fred Brooks.
Hay mucho más: ANSI Common Lisp, de Paul Graham, y sus muchos ensayos; Practical Common Lisp, de Peter Seibel; casi todo lo que publica O'Reilly; y The Art of Computer Programming, de Donald Knuth, para entender los fundamentos matemáticos de la programación.
Los libros te darán pistas y te mostrarán el camino, pero si realmente quieres aprender tienes que practicar. Cuando lleves diez años haciéndolo te saldrá bien a menudo.
Suscríbete
blog comments powered by Disqus