¿Es el libro "Estructura e interpretación de los programas de computadora" una buena lectura para los programadores de Java? [cerrado]

14

Esto puede ser subjetivo y probablemente esté cerrado, pero aún quería saber si es realmente útil leer la Estructura e Interpretación de los programas de computadora.

Estructura e interpretación de programas informáticos

El libro no usa Java. No es que quisiera aprender Java. Tengo curiosidad por saber si será útil leerlo para ser un mejor programador y ¿cuáles son las cosas que puedo obtener del libro o si sus otras alternativas a este libro son más adecuadas para los programadores de Java?

    
pregunta ashishjmeshram 18.09.2012 - 06:03

5 respuestas

22

Bueno, no sé si este libro te ayudará, pero cuando revisé ese libro hace unos 20 años, definitivamente mejoré mis habilidades de programación (independientemente de cualquier lenguaje de programación). Y supongo que, especialmente, un programador de Java obtendrá nuevas ideas que no obtendrá al quedarse solo con Java.

Joel Spolsky 2005 escribió un buen artículo sobre Java y SICP que puede ser de su interés:

enlace

    
respondido por el Doc Brown 18.09.2012 - 10:28
12

Creo que Estructura e interpretación de los programas de computadora es un excelente libro para leer. Sin embargo, hay un par de problemas con esto.

El mayor problema en mi experiencia es que, aunque el libro no requiere absolutamente ningún conocimiento de programación, y está orientado a los novatos completos, está preparado para los novatos completos que estudian en el MIT . Y así, aunque no asume ningún conocimiento de programación, asume un poco de conocimiento de dominio , por ejemplo. En los campos de la ingeniería eléctrica, física y matemática. Nota: estos no tienen nada que ver con los conceptos que se enseñan, solo se necesitan para entender los ejercicios y ejemplos .

Más personas que yo lo han explicado mucho mejor, en un artículo titulado inteligentemente El Estructura e interpretación del plan de estudios de informática . Afortunadamente, no son solo llorones, sino que también escribieron su propio : Cómo diseñar programas . Si piensas en leer el SICP, es posible que desees leer el HtDP primero: cubre casi el mismo terreno que el SICP, pero solo asume el conocimiento promedio de dominio de nivel de secundaria. (De hecho, está escrito para ser enseñado a niños de secundaria).

Una vez que haya terminado el HtDP, todavía puede volver atrás y leer el SICP, ya que ahora un poco de conocimiento faltante en el dominio ya no será tan dañino porque ya ha visto el concepto anteriormente.

Nota: hay un borrador para una segunda edición de HtDP , que podría Quiero leer en lugar de la primera edición. El material sobre la programación imperativa se ha eliminado y se cubrirá en el segundo volumen hasta ahora no escrito Cómo diseñar componentes , pero puede obtenerlos de la primera edición o del SICP. o ambos.

    
respondido por el Jörg W Mittag 18.09.2012 - 17:43
4

Voy a arriesgarme y diré, probablemente no sea una buena lectura para la mayoría de las personas, sea cual sea el idioma.

Al igual que Knuth, es un buen libro para leer. Sin embargo, incluso suponiendo que usted sea un ugrad hot-shot MIT, todavía le tomará la mejor parte del año leerlo correctamente, y eso es con la ayuda de los profesores y los profesores.

¿Hay otros libros sobre ingeniería de software que pueda leer en ese tiempo que sean más valiosos? ¿Hay otros idiomas que puedas aprender en el tiempo?

editar Solo para expandir un poco:
La ingeniería de software es ingeniería, se trata de optimización. Su tarea es maximizar su conocimiento para un presupuesto de tiempo + costo dado.
SICP es una introducción de alto nivel a la programación a través de un lenguaje funcional. La razón por la que utiliza un lenguaje funcional es que es más fácil describir muchos conceptos matemáticos de programación en lenguajes funcionales que en procedimientos y mucho más fáciles de leer que la lógica formal.

También hay una cierta cantidad de postura, es decir. "No eres realmente un programador a menos que leas SICP", o Knuth, o puedas programar en Lisp, o C, o el ensamblador x86. Normalmente es fácil de refutar; es decir. no puede ser un verdadero programador a menos que conozca el trabajo de Cantor sobre la teoría de conjuntos y las ecuaciones de Maxwell y esté familiarizado con la movilidad de los orificios en los semiconductores.

    
respondido por el Martin Beckett 18.09.2012 - 06:21
4

A mi entender, SICP , está más centrado en las áreas de programación funcional, incluida la programación recursiva, y una fuerte introducción a CS , que es un poco difícil de entender. A nuevos programadores. Otro punto es que está preparado e instruido para el MIT, y también se necesitan algunos buenos fundamentos en el campo de la ingeniería, matemáticas y física para que este libro sea útil.

Recomendaría un buen conjunto de libros donde cada uno se centre en diferentes aspectos de la ingeniería de software:

  • Code Complete 2 : se centra en los procesos de ingeniería de software.
  • Código limpio : se enfoca en la codificación en lo pequeño. Cómo escribir clases y funciones.
  • Programador pragmático : se enfoca en trabajar dentro de un equipo que produce software.

Se puede encontrar una descripción más detallada de los libros mencionados anteriormente y otros una vez en las siguientes referencias:

  1. Cómo ser un programador con 10 sencillos Libros
  2. Los mejores libros para programadores principiantes

Por favor, siéntase libre de agregar a la lista ya que no es la ideal :)

Editar: Al elegir los libros mencionados anteriormente, y al determinar la prioridad de cómo leerlos, realmente se reduce al propósito de lo que tratas de hacer principalmente o aprender.

    
respondido por el EL Yusubov 18.09.2012 - 06:36
1

¿Estás planeando ser un "programador JAVA" por el resto de tu vida? Entonces probablemente hay mejores libros para leer. Si quieres ser un buen programador en general, entonces es una excelente lectura. Aquí es por qué. Hay ciertas herramientas que todo buen programador necesita en su caja de herramientas. Uno es un conocimiento profundo de las estructuras de datos y los algoritmos (si no me cree, vaya a una entrevista en Microsoft, Google, Amazon, etc.), los algoritmos que lo acompañan son análisis de complejidad, recursión y una comprensión sólida de los punteros herir. Cuando se trata de análisis de algoritmos, procesos recursivos y el paradigma funcional en general, no puedo pensar en un libro mejor o más desafiante que el SICP.

    
respondido por el Jonathan Henson 18.09.2012 - 15:23

Lea otras preguntas en las etiquetas