Wie maximieren Sie das Wissen, das Sie aus einem Programmierbuch gewinnen? [geschlossen]

26

Nicht, weil es mich interessiert, wie lange jemand braucht, um ein Buch zu lesen, sondern weil es mich interessiert, wie die Leute das Wissen aus einem Buch (oder anderen Quellen) auf die beste und effizienteste Weise in ihr Gehirn bringen.

Persönlich verfolge ich einen Multi-Pass-Ansatz (von meiner Antwort auf die ursprüngliche Frage):

  1. Blättern Sie durch den Inhalt, tauchen Sie ein und lesen Sie alles mit einer interessanten Überschrift und staunen Sie schließlich über schöne Diagramme und Abbildungen. Ich werde in diesem Stadium nicht viel aufnehmen, aber es gibt mir eine mentale Sicht auf das Buch (höchstens eine Stunde oder so)
  2. Zuerst gehe ich das Buch durch, im Allgemeinen lese ich die Eröffnungskapitel für ein Buch, das entweder sehr schwer ist oder etwas völlig Neues vorstellt, gründlich durch. Für Bücher, die ein Thema behandeln, über das ich bereits Bescheid weiß, überspringe ich Teile, die trivial erscheinen. Den Rest des Buches werde ich einigermaßen schnell durchgehen, aber nicht so schnell, dass ich nur eine Seite umblättere. (ungefähr eine Woche)
  3. Nicht alle Bücher, die ich lese, schaffen es so weit, aber wenn ich ein Buch interessant oder nützlich genug finde, werde ich es richtig studieren. Ich gehe das Buch langsamer durch und mache einige oder alle Beispiele, probiere Code aus usw. Ich überspringe hier oft ganze Kapitel, es sei denn, das Buch ist wirklich gut (1-3 Wochen, je nach Buch).
  4. Wenn ich mit dem Lesen fertig bin und andere Bücher lese, tauche ich oft wieder ein, um Querverweise zu erstellen, zu vergleichen, nachzuschlagen, zu stöbern usw. - so dass viele meiner Lieblingsbücher nicht einfach nur zusammenkommen Staub auf dem Bücherregal.

Ich mache mir selten Notizen beim Lesen (obwohl ich vielleicht etwas auf Papier plane, wenn ich so etwas wie ein Codebeispiel durcharbeite). Ich habe auch darüber nachgedacht, ein persönliches Kanban zu verwenden, um meinen Fortschritt zu organisieren, bin aber nie ganz dazu gekommen, diese Technik anzuwenden. Mindmaps sind eine andere Sache, an der ich Gefallen finde, die ich aber selten mache.

Welche anderen Methoden haben die Menschen? Wie erfolgreich finden Sie sie? Gibt es allgemein empfohlene Techniken, die Sie für Zeitverschwendung halten?

FinnNk
quelle
Ich persönlich versuche, dem Autor das Gegenteil zu beweisen oder festzustellen, ob Eckfälle vorliegen, die brechen, oder ich verstehe sie nicht. IMO, jedes Wissen, das du lernst, aber nicht auf Unrichtigkeit prüfst, kann ein zweischneidiges Schwert sein.
Hoffentlich

Antworten:

30

Erledige die Übungen.

Wenn es keine gibt, erfinde welche.


quelle
3
Und nachdem Sie die Übungen durchgeführt haben, implementieren Sie sie auf Ihre eigene Weise in Ihren eigenen Code. Beispiele sind in Ordnung und gut, aber nichts geht über eine reale Implementierung, um ein Konzept vollständig zu verstehen.
Hugo
+1: Sie können dies an den Anfang dieser Antwort setzen: "Üben".
Klaim
Alle Programmbücher dieser Tage gegen Ende kommen mit einem kurzen Projekt auf. Dies zu tun, ist der größte Maßstab, den jeder von sich aus haben kann, um den Fortschritt zu verfolgen.
Venki
6

Stellen Sie sicher, dass Sie einige der Techniken in Ihrer täglichen Programmierung so bald wie möglich anwenden.

Ich stelle fest, dass ich Dinge, die ich gelernt habe, erneut besuchen muss, wenn ich sie tatsächlich brauche, wenn ich sie nicht sofort anwende.

ChrisF
quelle
1
Absolut. Außerdem denke ich, dass Sie nur dann wirklich vom Erinnern zum Verstehen wechseln, wenn Sie etwas in einem Kontext anwenden, der sich von dem im Buch dargestellten unterscheidet. Leider ist das nicht immer möglich ... obwohl ich der Entwicklungsleiter bin, in dem ich arbeite, wird mich niemand wirklich fragen, ob ich einen plausiblen Grund finden kann, warum wir in Prolog so und so vorgehen sollten, oder was auch immer manchmal einfach nicht angebracht, um Dinge in die tägliche Arbeit zu bringen. Ich denke, dafür sind persönliche Projekte gedacht, aber dann verlieren Sie viele der Vorteile des kumulativen Lernens.
FinnNk
@FinnNk - Ich sagte nicht, dass es einfach sein würde;) Das ist das Problem, das ich im Moment mit WPF habe. Ich mache ein Projekt zu Hause, habe aber nicht viel Zeit dafür, deshalb muss ich ständig überarbeiten, was ich weiß.
ChrisF
6

Markieren Sie alles, was Sie überrascht hat. Es wird es in Zukunft einfacher machen, es zu finden.

Schreiben Sie die Ränder ausführlich ein.

Wenn Sie Ihr Buch an jemanden ausleihen, bitten Sie ihn, die gleichen Regeln zu befolgen, idealerweise in verschiedenen Farben. Dies verleiht Ihrem Buch einen Mehrwert.

Andy Lester
quelle
2

Gehen Sie es mit einem Freund durch. Lesen Sie das Buch besser als eine Übung wie Pair Programming, bei der Sie beide versuchen, es sich gegenseitig zu erklären. (Und natürlich mache die Übungen wie oben gesagt)

Zachary K
quelle
1

Implementieren

Implementieren Sie jeden neuen Algorithmus oder jede neue Technik, über die Sie gelesen haben, auf eigene Faust, wobei Sie nur die Beschreibung des Algorithmus oder der Technik als Referenz verwenden.

Jay Beavers
quelle
1

Aufgrund eines meiner Aufmerksamkeitsmängel fällt es mir schwer, mich zu konzentrieren, wenn ich in einem traditionellen Ansatz von Anfang bis Ende lerne. Ich gehe zum Ende des Kapitels über, gehe direkt zu den Übungen und benutze dann eine Kombination aus Buch und Internet als Referenz, um die Probleme zu lösen.

Sobald ich mich in die Lage versetzt habe, das Buchmaterial als Mittel zum Zweck zu nutzen, anstatt es zu studieren, "weil ich es wissen sollte", werden die Konzepte viel einfacher zu erlernen und zu üben.

Aufgrund meiner Schwerpunktthemen schreibe ich die Codebeispiele nicht direkt aus, sondern denke an meine eigenen Beispiele und verwende den Code im Buch, um sie zu realisieren. Wenn ich mit dem Lernprozess kreativ bin, wird sichergestellt, dass ich Spaß daran habe, und die Einzigartigkeit meines Schaffens erleichtert es mir, mich daran zu erinnern, was ich tue.

gr33kbo1
quelle