Etiquetas
Hace unas semanas un lector de mi blog me pidió que le recomendara unos pocos libros, aquellos que yo consideraba que eran «imprescindible» o que más me influyeron. Aunque el tema es complicado, esta mañana me puse a pensar cuáles recomendaría hoy mismo –quizás en unos pocos meses la lista sería muy distinta–.
He seleccionado doce libros, agrupados en diez temas, que considero son los que creo que más me afectaron a mi actividad profesional actual, o quizás debería decir a «cómo pienso hoy sobre mi profesión». Podría haber puestos unos cuantos más (de Carl Sagan, o de Schneier por ejemplo), pero no podía hacer la lista tan larga ni salirme demasiado del tema: «libros importantes para informáticos».
- The C Programming Language (o la madre de los libros de lenguajes de programación) de Brian W. Kernighan y Dennis Ritchie. Considero que todo aquel que pretenda llamarse programador o informático debería dominar el lenguaje C. No sólo es un lenguaje sencillo, padre de muchos otros lenguajes (¿o de dónde vienen todas esas «llaves»?) y base de muchos sistemas operativos, sino que tiene un balance muy adecuado entre «abstracción» y proximidad con la arquitectura. Pero en realidad creo que lo más importante es que este libro quizás sea el mejor libro/manual jamás escrito sobre un lenguaje de programación. Debería estar en la mochila de un programador, al menos hasta que te lo sepas de memoria, en ese momento lo podrás dejar en tu biblioteca y volver a leerlo de vez en cuando.
- The Mythical Man Month and Other Essays on Software Engineering de Frederick P. Brooks. ¿Crees que la nueva supe-mega-chachi metodología de software o lenguaje de programación solucionará todos los problemas? ¿te aburren mucho cuando te dan clases de ingeniería del software? Este libro se ha convertido en un clásico de la ingeniería del software, unos de los pocos que aguantan el paso del tiempo y que a pesar de la edad de la mayoría de los artículos (25 años) cada día demuestra su actualidad. Para mí este libro es a la ingeniería del software como el anterior a los lenguajes: las buenas ideas pueden explicarse de forma breve y mejoran con el paso del tiempo, como los buenos bourbons.
- Hackers and Painters de Paul Graham. ¿Crees que la informática es aburrida? ¿que sólo se trata de programar sistemas de facturación? ¿que necesitamos colegios y regulaciones?. El libro aporta una visión distinta de los programadores, quizás a muchos les parezca demasiado romántica, utópica o exagerada. A mí me sirvió de inspiración, o quizás para reafirmar y luchar por mis ideas «románticas» de lo que debería ser nuestra profesión. Estoy convencido que los «genios» de nuestro campo comparten el mismo romanticismo y «utopías». No todos somos genios –por definición estadística–, pero ayudará a comprender mejor a esas personas que solemos admirar, y de paso te dará una inyección necesaria de idealismo y pasión por la informática. Efecto colateral: aprenderás a apreciar mejor a los «clásicos».
- Cryptonomicon de Neal Stephenson. Una novela muy ciberpunk, divertida e imprescindible si te interesa un poco de esa «cultura» –debería 🙂 –. En su versión original en inglés tiene casi 1000 páginas –pero la devoré en un fin de semana–. Lo tradujo al castellano PJorge y salió en tres tomos. Creo que hace poco tiempo lanzaron una nueva edición de un sólo tomo. Es difícil explicar este libro, sólo puedo decir que me abrió los ojos para entender la criptografía desde otro punto de vista y aumentar aún más mi admiración por Alan Turing y los matemáticos que han fundado la informática moderna (y de paso han ayudado a ganar la guerra contra los nazis).
- Programming the Universe: A Quantum Computer Scientist Takes on the Cosmos de Seth Lloyd. Comenté algo de este libro hace poco. Si crees que está todo hecho en informática, o no entiendes muy bien qué es eso de la «informática cuántica», o te parece que la teoría de la información de Shannon es algo muy oscuro que no te interesa, éste es tu libro.
- Free Culture de Lawrence Lessig. Dudaba entre éste y The Code is the Law. A los informáticos nos enseñan muy poco de historia, leyes y su relación con la informática. Ni siquiera sabemos interpretar una licencia de software. A pesar de ellos nos encanta poner «copyright» a nuestros programas y hablar de la «importancia» y los «beneficios» de la «propiedad intelectual». Estos dos libros te explicarán un poco de esos temas, desde una visión que no es la que lees en El País (ni en la web del Ministerio de Cultura), ni las que suelen explicar los profesores de informática, historia o derecho. Tus viejas ideas sobre la «propiedad intelectual» no volverán a ser las mismas.
- The Laws of the Web: Patterns in the Ecology of Information de Bernardo A. Huberman. Linked: How Everything Is Connected to Everything Else and What It Means for Business, Science, and Everyday Life de Albert-László Barabási. ¿Cansado de oir tanto de «redes sociales», web 2.0, que Facebook es la nueva revolución o de las «largas colas»? ¿Crees que las «redes sociales» la inventó O’Reilly mientras miraba un partido de beisbol? Pues no. Estos dos libros te darán una explicación introductoria y fácil de leer, pero a la vez rigurosa y científica sobre esos temas, su utilidad en diversas áreas y cómo se están usando para aplicaciones «sociales» menos frívolas que el Poke o SuperWall. Además darán bastantes pistas de porqué algunos afirman que la informática está «migrando» de intentar obtener resultados «precisos» con pocos datos a obtener resultados «aproximados» a partir del tratamiento de «datos masivos».
- UNIX Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers de Curt Schimmel. Es un libro muy técnico, muy hardcore, pero no es sólo útil para programadores de núcleos de sistemas operativos o para Unix. Sirve para cualquier programador que desee conocer mejor los problemas de concurrencia y multiprogramación en cualquier sistema informático, cómo se interactúa con el hardware para aumenter la eficiencia y evitar los errores de concurrencia o los nuevos métodos más eficientes de control de concurencia. Si no entiendes nada de lo que cuenta este libro deberías replantearte seriamente si te consideras un «informático». O mejor aún, estudia hasta que logres comprender al menos superficialmente lo que cuente el autor, tu calidad como «informático» habrá ganado muchos puntos.
- The Structure of Scientific Revolutions de Thomas S. Kuhn. Alguien que sepa de filosofía podría discutir sobre muchas de las hipótesis de Kuhn. Otros dirán que Popper aporta una visión más moderna y cercana a la realidad de la comunidad científica. Podría ser, pero lo importante de este macroensayo es que nos introduce de una forma apasionada a la historia y filosofía de la ciencia, un campo en el que no solemos distinguirnos los informáticos. Como no podía ser de otra manera, existen fuertes paralelismos entre la cortísima historía de la «ciencia informática» y la un poco más larga «ciencia moderna». Este libro te pondrá en perspectiva y te dará otra visión más escéptica de lo que dicen los gurús de moda.
- Software libre para una sociedad libre de Richard Stallman. También en catalán: Programari lliure, societat lliure (Benjamí y yo hemos supervisado la traducción a pedido de Stallman). Podrás no estar de acuerdo con todas sus ideas, pero la lógica implacable de este «visionario» no te dejará indiferente, pondrá en crisis muchas de las ideas y preconceptos que tenías. Como bien dice Lessig en el prólogo: Cada generación tiene su filósofo: un escritor o un artista que plasma la imaginación de una época. A veces estos filósofos son reconocidos como tales, pero a menudo pasan generaciones antes de que se caiga en la cuenta. Sin embargo, con reconocimiento o sin él, cada época queda marcada por la gente que expresa sus ideales, sea en el susurro de un poema o en el fragor de un movimiento político… Nuestra generación tiene un filósofo. No es un artista, tampoco un escritor profesional. Es un programador.
Buena elección en el título del post, pues si pones «top 10 libros» o similar se hubiesen lanzado veinte mil personas para poner su/s libro/s favoritos que se han leído xD.
Solo me he leído dos de esos 10, aunque algunos me han parecido interesantes y me los apunto en mi wish list :). Por mencionar alguno, recomendaría, sobretodo a gente con pocos años en el panorama, o que esté estudiando (aunque no necesariamente), el The Pragmatic Programmer.
Pingback: meneame.net
¿Has leído (u ojeado) el Deitel & Deitel «Cómo programar en C/C++»? ¿Qué te parece en comparación con el #1 de los que pones? Yo es con el que aprendí y me gustó, pero como es el único que conozco no sé si recomendarlo o si los hay mejores…
Pablo, no lo he leído, aunque C y C++ son dos bestias completamente diferentes. Y es muy difícil superar al libro de Kernighan y Ritchie, no creo que sea mejor para aprender C 🙂
Ricardo, creo que es bueno apuntar que existen más traducciones de los libros que has seleccionado, aparte de la maravillosa traducción de PJorge del Cryptomicón, en concreto:
1) El Lenguaje de Programación C, 2ª Ed.
http://www.casadellibro.com/fichas/fichabiblio/0,,2900000229245,00.html?codigo=2900000229245&nombre=EL%20LENGUAJE%20DE%20PROGRAMACION%20C%20%282%20%AAED%2E%29
2) Por una cultura libre
http://traficantes.net/index.php/trafis/editorial/catalogo/coleccion_mapas/por_una_cultura_libre_como_los_grandes_grupos_de_comunicacion_utilizan_la_tecnologia_y_la_ley_para_clausurar_la_cultura_y_controlar_la_creatividad
Pues yo recomiendo nuevamente a los romanticones y academicistas el libro «Fuckowsky, memorias de un ingeniero», que además está disponible en abierto y sin dejarse un duro en Amazon o en la Fnac.
Coincido en que «The Mythical Man-Month» está muy bien; los demás aún no los he leído pero tomo nota.
… quise decir Cryptonomicón
#5 Compré el libro de Fuckowski y, bueno, está bien. La verdad que me reí muchísimo y también lo recomiendo. Pero no recomiendo comprarlo, lo siento. El libro es sí es una completa patata (no su contenido): hojas completamente blancas (no amarillentas, que cansa menos la vista), tipografía poco adecuada para leer en papel, demasiado espaciado, letras grandes, … En serio, yo no soy ningún lector compulsivo ni nada parecido, y de verdad me pareció que por el precio (libro y gastos de envío) en fin, no sé, me arrepiento de la compra (y lo compré porque lo leí en digital y me gustó, me apeteció tenerlo bien en papel y eso. Y en fin…)
Otra recomendación sobre lenguajes de programación (mejor dicho, sobre programación) es The Practice of Programming, de Brian W. Kernighan, Rob Pike.
Éste que comento junto con el libro de K&R, de lo mejor que hay sobre programación. Son clásicos que, sí o sí, uno debe tener 🙂
Saludos
El problema que le veo a «Hackers and Painters» es que Graham se obsesiona demasiado con el Lisp, pero quitando esto el libro está bastante bien aunque no creo que sea de los imprescindibles.
Yo añadiría:
The Practice of programing por Brian W. Kernighan y Rob Pike. Probablemente uno de los libros que más me han ayudado a aplicar el sentido común en la programación.
The Art of Unix Programming de Eric Steven Raymond. Imprescindible para todos aquellos que deseen desarrollar software para Unix aunque hay algunas opiniones del autor sobre el desarrollo en Unix más tradicional con las que no estoy muy de acuerdo.
Nosotros hemos formado un club de lectura en Oxford leemos uno cada mes y lo comentamos los libros en nuestro blog. La tematica principal era Agile, pero leemos libros de software en general.
http://www.oxtremists.co.uk
De los que hemos comentado yo recomendaria:
Agile Estimating and Planning de Mike Cohn
Domain-Driven Design de Erick Evans
Working Effectively with Legacy Code (Robert C. Martin Series) Michael Feathers
Peopleware: Productive Projects and Teams de Tom DeMarco
Buena seleccion- Yo tambén recomendaria una joya como es «la Pastilla Roja». http://www.lapastillaroja.net/ Abre los ojos desmitificando muchos FUD’s acerca del software libre i proponiendo modelos de negocio.
Reseña aqui (i las partes diponibles):
http://unaopciolliure.wordpress.com/2006/09/24/la-pastilla-roja-de-alfredo-romeo-i-juantomas-garcia/
Tambien os recomiendo (ahunque solo esta en catalan i gallego) :
«Software libre: tècnicamente viable, econòmicamente sostenible y socialmente juste» de Jordi Mas i Hernàndez
Habla del mismo tema desde una experiencia en Catalunya. Aqui teneis una (mi) reseña (con el libro disponible) :
http://unaopciolliure.wordpress.com/2007/01/24/programari-lliure-tecnicament-viable-economicament-sostenible-i-socialment-just-de-jordi-mas-i-hernandez/
Sin olvidar «prohibido pensar, propiedad privada»
http://unaopciolliure.wordpress.com/2007/08/28/prohibido-pensar-propiedad-privada/
ni «Al principio fue la linea de comandos»
http://unaopciolliure.wordpress.com/2007/03/07/en-el-principio-fue-la-linea-de-comandos-neal-stephenson/
PD: Cultura libre tambien esta disponible en catalàn aqui :
http://www.culturalliure.cat/
Perdon por el comentario anterior, pero he olvidado mencionar que el libro “Software libre: tècnicamente viable, econòmicamente sostenible y socialmente juste” también està en castellano aqui :
http://www.softcatala.org/~jmas/swl/index-es.html
para pablo #3: el libro de Deitel está bien para aprender, quizá algo más «didáctico», pero el libro de Kernighan y Ritchie es EL LIBRO DE C. Es más un libro de referencia que una guía de aprendizaje, sobre todo si es el primer contacto con el C.
Y sobre los libros del punto 7 (redes sociales y small worlds) es casi imprescindible añadir «Seis grados de separación: la ciencia de las redes en la era del acceso», de Duncan J. Watts. Extiende un poco las líneas de Barabási. Y la lista de lecturas recomendadas del final (la mayoría en revistas científicas accesibles en Internet) es sublime si quieres profundizar y no te asustan las fórmulas.
Ricardo tiene la culpa de que me haya leído estos libros y de que esté «obsesionado» con los small worlds… ahora los veo por todas partes 😉
Ricardo: Muy buen listado y buena iniciativa. En la referencia que hice a esta entrada en mi blog, me permití agregar con su justificación tres libros imprescindibles a mi parecer: «The Inmates are Running the Asylum» de Alan Cooper, «Peopleware: Productive Projects and Teams» y «Waltzing With Bears: Managing Risk on Software Projects», ambos de Tom DeMarco y Timothy Lister.
¿Es recomendable la traducción de «The C Programming Language»? Lo pregunto porqué me interesaría aprender C, pero no me atrevo a leermelo en inglés. Y en todos los sitios lo veo en inglés. De hecho no sabía que estaba traducido hasta que he visto los comentarios. Por otra parte me parece un selección interesante, sólo me he leido dos el 6 y el 10 y son obras fundamentales para comprender todos los debates actuales en torno al software libre y a la cultura libre.
#15, yo creo que la traducción está bastante bien.
#16, aclaremos que la edición en inglés no está escrita con una visión tipo Shakespeare o Lord Byron… La edición en castellano es una traducción simple de un texto originalmente en inglés simple.
«Criptonomicón» de Neal Stephenson es una gran novela, y tienes razón al terminar de leerlo crece más la admiración por Alan Turing y otros padres de la informática, esa novela me la acabe en varios meses y 3 tomos por separado, acá fue dificil conseguir los 3 juntos y si encontrabas uno de ellos no encontrabas el que querías jeje.
Yo agregaría el mítico Libro del Dragón
#8 y #9, el libro de The Practice of Programming también está traducido al castellano:
http://www.agapea.com/La-practica-de-la-programacion-n96674i.htm
Otro libro bastante interesante para los informáticos es Neuromante de William Gibson. Toda una revolución en la literatura de ciencia-ficción, y además el libro que introduce el concepto de ciberespacio. Todo el mundo que lo ha leído recuerda la frase de apertura: «El cielo sobre el puerto tenía el color de una pantalla de televisor sintonizado en un canal muerto.»
http://vx.netlux.org/lib/mwg01.html
Pingback: Ricardogalli Algunos-libros-para-informaticos « TIC IES AUGUSTO GONZALEZ LINARES
Pingback: Libros para informáticos « Que che vou contar…
Pingback: Algunos libros para informáticos « Top posts en wordpress
@Pablo Comentario #3: El Teitel&Deitel en Castellano lo saque prestado una vez de la biblioteca y la verdad es que cuando fui a devolverlo me preguntaron: ¿Es para devolver? No es para vomitar. Los ejemplos son muiy buenos pero la traducción es infumable.
En la cuarta edición la traducción ha cambiado radicalmente pero solo lo he mirado por encima.
Mucho antes que ese libro incluiría el «Algorithmos + estruucturas de datos = programas» de Niklaus Wirt.
La 1ª edición del libro del dragón también está traducida al castellano:
http://www.pearsoneducacion.com/resultado.asp?ean=9789684443334
¿Y qué te parece el de Diseño de Programas de Ricardo Peña?
A mi me gustó ya que incluye muchas cosas importantes y bien explicadas bajo mi punto de vista, como son recursividad, estructuras de datos, etc..
El de Peña lo usamos en Tecnología de la Programación y no esta mal, buenos ejemplos y una buena aproximación formal a la programación. Aún estoy con él, pero he aprendido cosas interesantes. Aunque creo que si no lo complementara con las clases, leerlo sólo por «placer» como libro de lectura sería bastante masoquista, por que tal vez es demasiado formal, pesado y poco didactico. Cuestión de gustos ..
Para no ser menos que otros, allá va mi aportación:
«No me hagas pensar», de Steve Krugg.
Una divertida introducción a la usabilidad web; para temas técnicos más avanzados, alguno de los de Nielsen.
A los que no tengan un nivel de inglés «casi nativo» (y no sean masocas), les recomiendo leer Cryptonomicon en castellano. Yo lo compré hace tiempo en inglés y lo dejé desmoralizado con el vocabulario que usa (demasiado «raro» y con exceso de phrasal verbs para mi nivel, que hasta que lo empecé pensaba que era alto…). Ahora lo he vuelto a empezar (porque ya lo tengo y no voy a gastarme la pasta en la versión traducida), pero lo sé antes de comprarlo y no lo dudaría.
#30 Pues yo me pensaría el comprar la versión en castellano. Por un lado está deliciosamente traducida y existen varias ediciones, incluso de bolsillo, que bastante económicas. De hecho, suele estar incluida en la ofertas 2×1, así que por el precio de 2, tienes la trilogía y otro de regalo, como hice no hace mucho tiempo. Además, así después podrías enfrentarte con la versión inglesa tras haber disfrutado la versión traducida.
A mí me faltan en esa lista The Art of Computer Programming de Knuth (que me parece una auténtica blasfemia que no lo hayas puesto :-)), Thinking in C++ de Bruce Eckel y Effective C++ de Scott Meyers (si te va C++) e Introduction to Algorithms.
#32, Debería, sí, pero no puse el primero de tu lista por varias razones. Supuse que todos lo han estudiado alguna vez (aunque sea en la carrera) y porque son 3 volúmenes gordos y densos (además de caros en amazon 😦 ).
Lo que no estoy de acuerdo es en poner libros de C++, es un lenguaje bastante intrincado (y coñazo) para mi gusto (aunque aprendí antes C++ –del Turbo C++– que el «C puro»)
Coincido con #32, el Introduction to Algorithms es genial.
Pingback: A dorfunteca » Quick News Flagged Articles
El PeopleWare debería ser de lectura obligada para todos los estudiante de Informática…
Muchos no los conozco. De Graham no leí el libro pero si algunos ensayos, y me pareció eso, un ensayistas, con demasiadas cosas subjetivas, pero sí, el tipo le da mucho romanticismo a todo esto.
The C Programming Language me encantó por la sencillez y por como te hace pensar sobre la implementación de todas esas herramientas pequeñas de un UNIX como un `ls’ o un `cat’. La verdad que fue el primer libro con el cual sentí que el autor no te trataba ni como un idiota ni como un programador experto.
Agregaría también Patrones de Diseño de GoF, el libro me voló la cabeza por dos motivos: fue el libro con el que comprendí muchísimo mejor que era la programación orientada a objetos, y en segundo lugar me mostró un lado del diseño más formal y a la vez pragmático que no conocía, en mi clases de la facultad los que daban materias de diseño eran todos chantas que hablaban de cualquier cosa, este libro me hizo repensar mucho sobre el problema del diseño, aunque no sea fanático de la POO, me gustó mucho que me haga reflexionar sobre estos temas.
Por razones románticas la referencia de Emacs Lisp fue otra cosa hermosa de leer. Sobre todo porque lo vas leyendo desde adentro de Emacs, evaluando los ejemplos, conociendo los detalles de porque el ínterprete se hizo así o asa y todo contado por RMS, un libro que disfruté mucho y también me mostró un montón de cosas que yo pensaba que las había inventado JAVA pero que ya estaban en Lisp.
Otro que todavía no terminé pero me está gustando bastante es Concepts Of Programming Languages de Robert Sebesta. No es super espectacular pero aborda un montonaso de temas sobre los lenguajes de programación y de nuevo te abre mucho la cabeza.
Ricardo, ¿y con qué libro/lenguaje diste los primeros pasos en programación?
Saludos
> Ricardo, ¿y con qué libro/lenguaje diste los primeros pasos en programación?
En orden temporal:
– Fortran
– Basic
– Cobol
– Ensamblador (del PDP y del viejo 4509 de los radioshack, era muy simple)
– Pascal
– Smalltalk
– Prolog
– C (aunque aprendí a controlar más el C vía C++)
– C++
– Lisp (muy básico, casi ni me acuerdo)
– Shell/Bash/awk
– Perl
– Javascript
– PHP
– Java (muy básico)
– Python (muy básico)
Los más divertidos fueron Smalltalk, C y Perl. Aunque no puedo negar que el Cobol tiene su nosequé.
Los más coñazos, sin duda alguna C++ y Java.
Los dos que estoy mirando ahora, Erlang y Ruby (con el último hice cosillas básicas hace un par de años con la versión 0.8 del RoR, pero nada más).
El libro de Kernighan y Ritchie es ciertamente un libro de referencia muy necesario! Aunque yo soy más de C++–y adoro el libro de Stroustrup ;)–.
La verdad, a mi no me gusto Criptonomicon :S, los motivos pues los tengo en mi blog ;), creo que Stephenson pudo ser menos ambisioso y hubiera conseguido algo miles de veces mejor, y la verdad, pues no la considero nada cyberpunk xD!! es más un techno(geek)-thriller.
Por el lado del ciberpunk para mi la superobra es Neuromante de Gibson!
La estructura de la revoluciones es un libro fantástico :), yo no estoy muy convencido ni de las revoluciones, ni de la inconmensurabilidad entre paradigmas–creo que es más un problema de ‘pesado’ de valores usando los términos de Kuhn ;)–pero lo más valioso, creo, es su descripción de la ciencia normal :), cosa que aunque traumatizo a Popper es una mejor descripción de el quehacer diario de los científicos!
De filosofía uno de mis favoritos máximos es Representar e intervenir de Ian Hacking.
Voy a tomar nota de la selección :D!
Pingback: Deep Linking #5 « Dogmafobia
Pingback: Alguns libros para informáticos :: bandua net :: web CMS e xestión de contidos
mmmmmm pues siento que faltaron algunos como el libro del dragon de compiladores, sistemas operativos entreo otros que he estudiado en la carrera pero bueno esta bien q los lean