El arte de la programación de computadoras: ¿Leer o no leer? [cerrado]

61

Hay muchos libros sobre programación por ahí, y parece que Code Complete se encuentra en la parte superior de la lista de "libros de programación que hay que leer", pero ¿qué pasa con El arte de la programación de computadoras por Donald Knuth? Soy una persona ocupada, entre el trabajo y una familia joven. No tengo un montón de tiempo libre, por lo que debo ser exigente con la forma en que lo uso.

Me pregunto: ¿alguien aquí ha leído 'TAOCP'? Si es así, ¿vale la pena dedicar tiempo a leer o algún otro libro o más programación en el lado como proyectos favoritos o contribuir al código abierto sería un mejor uso de mi tiempo en términos de desarrollo profesional?

DESCARGO DE RESPONSABILIDAD: para aquellos de ustedes que practican camisetas "Knuth is my homeboy", no me malinterpreten. Quiero leerlo, pero me pregunto si debería estar en lo más alto de mi lista de prioridades o si algo más debe venir primero.

    
pregunta Zannjaminderson 05.11.2010 - 21:27

15 respuestas

68

TAOCP es una referencia absolutamente invaluable para comprender cómo funcionan las estructuras de datos y los algoritmos que usamos todos los días y por qué funciona, pero comprometerse a leerlo de principio a fin sería una inversión extraordinaria de su tiempo. >

Como un hombre de familia a otro, pase el tiempo con sus hijos.

    
respondido por el Adam Crossland 05.11.2010 - 21:31
22

Sustituya "la enciclopedia" en su pregunta por cada referencia a TAOCP, y creo que la respuesta debería ser obvia. Porque en muchos aspectos, eso es lo que es TAOCP.

Hay una historia (posiblemente apócrifa) sobre la reunión de Knuth con Steve Jobs. Lo primero que dijo Jobs fue: "Es un placer conocerlo, Dr. Knuth. ¡He leído todos sus trabajos!". La respuesta de Knuth fue "Estás lleno de mierda": link

    
respondido por el Jason Baker 05.11.2010 - 21:41
19

No, no debería estar en la parte superior de su lista de prioridades. Tengo un juego completo y NO he leído todo. Lo he usado (hasta ahora) como una buena referencia para ciertos problemas (fue invaluable en mi comprensión de la aleatoriedad y la prueba de generadores aleatorios, por ejemplo). Cada vez que surge un tema de CS sobre el que no tengo un buen manejo, tiendo a tomar la parte relevante de TAOCP como un buen paso en mi comprensión.

Si decides leerlo, tendrás más poder para ti, y definitivamente te recomiendo que lo tomes en porciones pequeñas. No tenga miedo de saltar y mirar lo que sea más interesante primero.

    
respondido por el Michael Kohne 05.11.2010 - 22:17
8

TOACP es una lectura esencial, en algún momento. Dependiendo de lo que haga a diario, puede que no sea el más urgente.

Es uno de esos libros (bueno, colecciones de libros) que es bueno leer al principio de tu carrera porque realmente te da buenos conocimientos que normalmente no obtendrías hasta más tarde, pero no es esencial para sobrevivir hasta que te gradúes. a esa parte de tu carrera en la que no solo codificas, eliges la caja de herramientas. Este es el punto en el que realmente desea estudiar algoritmos, es de esperar que ya comprenda un poco el diseño de idiomas y tenga una comprensión muy amplia de qué herramientas, lenguajes y sistemas existen, y cómo encaja cada uno en el ecosistema de cosas que puede hacer. recurrir a un proyecto en particular.

En otras palabras: es un aprendizaje de imagen general, así que si estás obsesivo como yo, léelo ahora, si no lo estás, está bien postergarlo hasta que comiences a desear subir de nivel y convertirte en un gran cuadro chico.

    
respondido por el HedgeMage 05.11.2010 - 22:37
6
El trabajo seminal de

Knuth es la referencia más popular que los programadores pretenden leer o terminar de leer. Algún día.

    
respondido por el Steven A. Lowe 24.11.2010 - 10:14
5

Habiendo emprendido recientemente esta misma tarea, puedo decir que la forma en que escribe es muy agradable y que los problemas están etiquetados (de acuerdo con la dificultad) muy acertadamente. Obtenga el primer volumen y lea los capítulos 1 y 2 y vea cómo le gusta.

    
respondido por el sova 05.11.2010 - 21:37
5

TAOCP es un gran trabajo, pero leerlo sería una inversión terrible para un desarrollador de software en ejercicio. Si lo haces, estarás sacrificando un par de años (es decir, cuánto tiempo tomará) de tu presupuesto de superación profesional para aprender demasiado sobre muy poco.

Recomendaría trabajar con uno o varios libros menos "últimos" sobre algoritmos, mi favorito en esta área es El algoritmo Manual de diseño por Steven S. Skiena

Luego, si sientes que necesitas / quieres más, pasa al Knuth.

Al mismo tiempo, puede comprar uno o varios volúmenes de TAOCP, revíselo para comprender qué áreas cubre Knuth en él y guárdelo en su biblioteca en caso de que realmente necesite alguna información en su día. trabajo de hoy. Mi conjetura adivinada es que no lo harías y esa es otra razón por la que no aconsejo intentar leer. Pero si se encuentra haciendo referencia a él con la frecuencia suficiente, sabrá que vale la pena leerlo de principio a fin.

    
respondido por el kdubinets 05.11.2010 - 23:02
3

+10 en el comentario de la familia / niños. Intento hacer la mayoría de las lecturas mientras perduro en los ojos rojos a los clientes.

Pero ... sí, vale la pena leerlo. No hay razón para leer de forma lineal, en lugar de leer y elegir algunos temas de interés.

    
respondido por el Jé Queue 05.11.2010 - 21:40
3

Estoy firmemente en el campo de gente que siente que todos los desarrolladores deberían invertir en obtener los libros en algún momento (y es cada vez más fácil ahora que parece que están siendo reimpreso en libro de bolsillo ) pero en el mismo token, también me sería difícil creer que alguien se siente y lo lee de principio a fin. / p>

El mejor enfoque para ellos, si no tiene un viaje al trabajo donde tiene tiempo libre para sentarse y leer, es leer lo suficiente para saber dónde encontrar cosas en ellos y luego leer un capítulo completo. cuando te encuentres usándolos como libros de referencia para un problema dado. Con Google y Stack Overflow no es tan común buscar libros de referencia, pero en algunos casos puede encontrar que los libros proporcionan alguna información de que tendría que enviar algún tiempo adicional para buscar en Internet.

    
respondido por el rjzii 06.11.2010 - 19:39
3

No olvides que al principio, Knuth quería escribir algo sobre cómo escribir un compilador.

Puedes obtener mucha información en la red con wikipedia por ejemplo, pero si no eres un tipo de investigador, solo lee el resumen y obtendrás satisfacción.

Aún puedes obtener el primer tomo para que puedas leerlo cuando estés aburrido ...

    
respondido por el jokoon 26.02.2011 - 13:03
2

Probablemente es más importante que hagas esos problemas en el libro que leerlo. Eso requerirá mucho tiempo.

Tiene capacidad para 4 volúmenes y 5 fascículos (sea lo que sean), por lo que completar los libros probablemente sean mejores que un curso universitario en los fundamentos de la informática y te hagan casi el mejor programador de todos los tiempos. .

Como tienes una familia joven, como yo, me diste una buena idea. Compraría los libros uno a la vez y se los enseñaré a tus hijos.

    
respondido por el Peter Turner 05.11.2010 - 21:33
1

Si tienes curiosidad, hazlo, pero lleva bastante tiempo digerir, así que debes tomarte tu tiempo.

¿Tienes un viaje diario donde puedes leer? Eso sería perfecto.

EDITAR: es posible que encuentre interesante esta vista previa de una pequeña parte del Volumen 4: enlace

(nota: postscript comprimido)

    
respondido por el 2 revsuser1249 05.11.2010 - 21:54
1

No es algo que la mayoría de la gente quiera sentarse y leer de principio a fin, no. Es una referencia increíblemente valiosa, y ciertamente es bueno recogerla, elegir una sección interesante, leerla y hacer algunos ejercicios. Pero las comparaciones de la enciclopedia hechas arriba son bastante adecuadas ... es grande, extensa y detallada. Y algunos de los "ejercicios" son problemas de investigación que pueden tardar años en resolverse.

Si solo desea un mejor conocimiento de los algoritmos de bajo nivel, podría ser mejor comenzar con los libros de Robert Sedgewick (por ejemplo, "Algoritmos en C", "Algoritmos en Java", etc.).

    
respondido por el mindcrime 06.11.2010 - 19:25
1

Si quieres cambiar el mundo, entonces léelo. Si quieres aprender nuevos hacks, entonces no lo leas.

    
respondido por el veryfoolish 05.01.2011 - 23:48
1

El TAOCP de Knuth es una obra maestra. Pero, al igual que cualquier obra maestra (como "Illiad", "War and Peace" o Proust's "In Search of Lost Time"), no es para todos ni para el tiempo extra.

El libro está muy bien escrito y muy bien investigado. Los problemas son grandes y la explicación de los algoritmos está bien hecha.

El gran problema del libro es el hecho de que Knuth muestra el código de un lenguaje ensamblador ficticio para una computadora ficticia. Entiendo por qué lo hizo, pero el hecho es que apesta.

Recomiendo usar este libro como una biblia. Cuando lo necesites, búscalo. Encontrarás la respuesta. ¡Me ha pasado más de una vez!

    
respondido por el Eduardo 26.02.2011 - 02:21

Lea otras preguntas en las etiquetas