¿Cómo maximizas el conocimiento que obtienes de un libro de programación? [cerrado]

26

No porque me importe cuánto tiempo le toma a alguien leer un libro, sino más bien porque estoy interesado en cómo las personas obtienen el conocimiento de un libro (o supongo que otras fuentes) en sus cerebros de la mejor y más eficiente manera.

Personalmente, adopto un enfoque de múltiples pasos (de mi respuesta a la pregunta original):

  1. Hojee los contenidos, sumérjase y lea cualquier cosa con un encabezado de aspecto interesante y finalmente mire cualquier diagrama o ilustración agradable. No voy a tomar mucho en esta etapa, pero me da una visión mental del libro (una hora más o menos)
  2. Primero pase por el libro, generalmente leeré los capítulos iniciales a fondo para un libro que es muy pesado o presenta algo completamente nuevo. Para los libros que cubren un tema que ya conozco, leeré o saltaré fragmentos que parecen triviales. El resto del libro lo repasaré razonablemente rápido pero no tan rápido como para pasar la página. (Alrededor de una semana)
  3. No todos los libros que leo llegan tan lejos, pero si encuentro un libro lo suficientemente interesante o útil, lo estudiaré correctamente. Revisaré el libro a un ritmo más lento y haré algunos o todos los ejemplos, probaré el código, etc. A menudo omitiré capítulos completos aquí a menos que el libro sea realmente bueno (1-3 semanas dependiendo del libro).
  4. Finalmente, cuando termine de leerlo y estoy leyendo otros libros, a menudo me sumergiré en él una y otra vez para hacer referencias cruzadas, comparar, buscar cosas, navegar, etc., así que muchos de mis libros favoritos no terminan reuniéndose polvo en la estantería.

Raramente tomo notas cuando leo (aunque puedo hacer algo de planificación en papel si estoy trabajando en algo como una muestra de código). También he considerado comenzar a usar un kanban personal para organizar mi progreso, pero nunca he llegado a usar esa técnica. Los mapas mentales son otra cosa que me gusta la idea, pero rara vez lo hago.

¿Qué otros métodos tienen las personas? ¿Qué tan exitosos los encuentras? ¿Hay alguna técnica comúnmente recomendada que consideres una pérdida de tiempo?

FinnNk
fuente
Personalmente trato de demostrar que el autor está equivocado o ver si hay casos de esquina que se rompen o no entiendo. En mi opinión, cualquier conocimiento que aprenda pero no pruebe la incorrección puede ser un arma de doble filo.
HopefulHelpful

Respuestas:

30

Haz los ejercicios.

Si no hay ninguno, inventa algunos.


fuente
3
Y después de hacer los ejercicios, vuelva a implementarlos en su propio código a su manera. Los ejemplos están bien y bien, pero nada como una implementación del mundo real para comprender completamente un concepto.
Hugo
+1: puede agregar esto al principio de esta respuesta: "Practicar".
Klaim
Todos los libros de programación en estos días hacia el final tienen un proyecto corto. Hacer eso es el mayor punto de referencia que cualquiera puede tener de sí mismo para seguir el progreso.
Venki
6

Asegúrese de aplicar algunas de las técnicas en su programación diaria tan pronto como sea posible.

Me parece que si no aplico inmediatamente las cosas que he aprendido, tengo que volver a visitarlas cuando realmente las necesito.

ChrisF
fuente
1
Absolutamente. También creo que solo cuando aplicas algo en un contexto diferente al presentado en el libro, realmente cambias de memorización a comprensión. Desafortunadamente, no siempre es posible ... a pesar de ser el gerente de desarrollo donde trabajo, por lo que nadie realmente me va a preguntar si puedo encontrar una razón plausible por la que deberíamos hacer tal y tal cosa en Prolog o lo que sea, es a veces simplemente no es apropiado llevar las cosas al trabajo diario. Supongo que para eso son los proyectos personales, pero luego pierdes muchos de los beneficios del aprendizaje acumulativo.
FinnNk
@FinnNk - No dije que sería fácil;) Ese es el problema que tengo en este momento con WPF. Estoy haciendo un proyecto en casa, pero no tengo mucho tiempo para dedicarlo, así que constantemente tengo que revisar lo que sé.
ChrisF
6

Destaca todo lo que te haya sorprendido. Hará que sea más fácil encontrarlo en el futuro.

Escriba en los márgenes ampliamente.

Si presta su libro a alguien, pídale que siga estas mismas reglas, idealmente en diferentes colores. Esto agrega valor a su libro.

Andy Lester
fuente
2

Repasarlo con un amigo. Mejor aún, considere leer el libro como un ejercicio como Programación en pareja, donde ambos intentan explicarse el uno al otro. (Y, por supuesto, hacer los ejercicios como se dijo anteriormente)

Zachary K
fuente
1

Implementar

Implemente cada nuevo algoritmo o técnica que lea por su cuenta, utilizando solo su memoria de la descripción del algoritmo o técnica como referencia.

Jay Beavers
fuente
1

Debido a una deficiencia mía en la atención, me resulta difícil concentrarme cuando estoy aprendiendo en un enfoque tradicional de principio a fin. Salto al final del capítulo y voy directamente a los ejercicios, y luego uso una combinación del libro e Internet como referencia para resolver los problemas.

Una vez que me pongo en una posición en la que tengo que usar el material del libro como un medio para un fin en lugar de estudiarlo "porque debería saberlo", los conceptos se vuelven mucho más fáciles de aprender y practicar.

Mis problemas de enfoque también significan que no escribo los ejemplos de código directamente, sino que pienso en mis propios ejemplos y uso el código en el libro para ayudarme a darme cuenta. Ser creativo con el proceso de aprendizaje asegura que me estoy divirtiendo con él, y la singularidad de lo que creo hace que sea más fácil recordar lo que estoy haciendo.

gr33kbo1
fuente