Ich lerne im Laufe der Zeit neue Sprachen, schreibe Code für sehr einfache Programme in mehreren Sprachen und gehe in den Unterricht. Ich habe Bücher, Artikel, Lektionen, Videos gelesen, wie Sie es nennen, aber ich kann bestimmte Dinge nicht verstehen.
Zum Beispiel habe ich Zeiger nie verstanden - was sie gut können. (NICHT TEIL DER FRAGE - ein erneutes Markieren mit "Zeigern" ist nicht erforderlich ...)
Meine Frage ist jedoch nicht, was Zeiger tun, sondern wie kann ich solche Dinge verstehen? Wenn ich nach dem Lesen eines Buches oder eines Artikels über einen bestimmten Teil der Programmierung nicht verstehe, was mache ich dann? Das Schreiben von Code in einer bestimmten Funktion der Programmierung hilft sicherlich, aber es hilft nicht wirklich, so viel zu verstehen. Der theoretische Teil ist wichtig für das Verständnis.
quelle
Computer Architecture 101
Kurse würden beim Verständnis von Hinweisen sehr hilfreich sein. ...und alles andere.Antworten:
Wenn Sie Probleme haben, ein abstraktes Konzept zu verstehen, gehen Sie einfach eine Ebene tiefer. Wenn Sie die Zeiger in C nicht erhalten können, gehen Sie zur Baugruppenebene. Haben Sie immer noch Probleme? Erfahren Sie mehr über die Hardware bis hin zu den Logikgattern.
quelle
MIX
ähnliche Spielzeugarchitekturen. Für ein Hardware-Teil ist es dasselbe - es gibt viele einfache Spielzeug-CPU-Kerne, die untersucht werden müssen.Kurzer inkrementeller Lernlebenszyklus
Zusätzliche Schritte
Mit Vorsicht zu verwenden.
man -k
,apropos
etc ...)Diese sind hinterhältiger, da Sie sich selbst neu bewerten müssen, um sicherzustellen, dass Sie alles richtig gemacht haben. Direktes Mentoring durch eine sachkundige Person ist normalerweise besser, gefolgt von Ihrer eigenen Validierung des erworbenen Wissens, indem Sie das gerade Gelernte erneut implementieren (und dann versuchen, es einen Schritt weiter zu treiben und ein übergeordnetes Konzept zu erlernen, das darauf aufbaut davon zB verknüpfte Listen für Ihre Zeiger).
Credits: Nupul (für Diagramme)
quelle
Nach meiner Erfahrung dreht sich alles um Input und Feedback. Sie möchten in möglichst vielen Formen Eingaben erhalten und so schnell wie möglich Feedback zu Ihren Fehlern erhalten.
Meiner Erfahrung nach war mein CS-Abschluss sehr trocken, sehr formal und absolut wertlos darin, Programmieren zu unterrichten. Ich habe zwei bis drei Vorlesungen pro Woche besucht, und wenn Sie es nicht bekommen, dann ist das so ziemlich alles - der Dozent hat eine andere Klasse zu unterrichten und kann nicht bleiben, um Ihnen zu helfen. Und wahrscheinlich versteht man es auf eine bestimmte Art und Weise, und er wird es auf eine bestimmte Art und Weise lehren, und das ist es. Wenn Sie also nicht wie er denken, werden Sie es niemals bekommen. Was noch schlimmer ist, ist, dass er, da er wahrscheinlich eine Milliarde anderer verwandter Konzepte versteht, diese wahrscheinlich in Bezug auf diese anderen Konzepte formulieren wird, die möglicherweise weit über Ihrem Kopf liegen oder einfach nicht einmal im Kursmaterial enthalten sind.
Ich ging zu Stack Overflow und fragte im C ++ - Chat-Kanal und bekam in fünf Minuten fünf verschiedene Erklärungen. Sie waren alle speziell auf mich und das genaue Problem zugeschnitten, das ich hatte. Es ist also keine Überraschung, dass einer von ihnen für mich nach Hause kam und ich es bekam. Die Rate, mit der Sie aus dem Live-Feedback mehrerer Experten lernen können, liegt weit über der Rate, die Sie aus einer Trockenpapierquelle erhalten können.
Machen Sie also im Idealfall eine Pause, und dann finden Sie eine kleine bis mittelgroße Gruppe von Gleichgesinnten, die nichts Besseres zu tun haben, und unterhalten sich live mit ihnen. Stack Overflow ist übrigens ein ausgezeichneter Ort, um diese Art von qualitativ hochwertigem persönlichem Highspeed-Feedback zu erhalten.
quelle
In keiner Reihenfolge sind Bücher, Freunde und das Lesen von gut dokumentiertem Code gute Quellen. Übung ist der einzige Weg zu lernen: Versuchen Sie, kleine Unit-Tests zu schreiben. Schreiben Sie beispielsweise für Zeiger Code, der sich mit Zeichenfolgen befasst: Umkehren einer Zeichenfolge, Umkehren jedes Wortes in einer Zeichenfolge, Testen auf Palindrom, Ersetzen eines Buchstabens durch eine Zahl ...
Stellen Sie Fragen zum Stapelaustausch ...;>
quelle
Übung macht den Meister! (Na besser sowieso). Versuchen Sie einfach weiter und versuchen Sie, so viele verschiedene Quellen und Sinne wie möglich zu nutzen:
Quellen: Bücher, Internet, Benutzergruppen, Freunde, Video-Lernen, Verwenden von Websites, auf denen Sie ein wenig Code testen können, wie jsfiddle (meistens HTML),
Rubular (Ruby-Ausdrücke),
SQlzoo zum Ausprobieren von SQL,
jslint für Javascript,
Code-Pad für viele Sprachen.
Um sich an abstrakte Dinge zu erinnern, sollten Sie Mneomik in Betracht ziehen - Ärzte verwenden sie!
Betrachten Sie sich als lebenslangen Lernenden und bleiben Sie demütig, und Sie können weit gehen.
quelle
Sie müssen Ihren Fokus für eine Weile ändern, nicht für 5 Minuten. oder 5 Stunden ... ich meine so etwas wie 1 Tag ohne auf diesen Code zu schauen ... entspann dich einfach ... lies etwas anderes ...
Wenn Sie haben es jetzt zu verstehen ... bitte um Hilfe von Freunden oder hier =)
quelle
Was alle anderen in der IT tun.
Ich benutze eine Suchmaschine, um die verwandten Konzepte nachzuschlagen, die ich nicht verstehe, bis ich das Thema, das ich ursprünglich verstehen wollte, erneut aufgreifen kann.
Möglicherweise verstehen Sie den Stapel, den Heap, die automatischen Variablen, den C ++ - Kompilierungsprozess, die Assembly, den verwalteten Speicher und den nicht verwalteten Speicher nicht vollständig.
Mehr Klarheit über diese und andere zeigerbezogene Konzepte würde wahrscheinlich alles klären.
quelle
Es gibt keinen sicheren Weg, um ein Thema zu verstehen. Ihr Erfolg hängt davon ab, wie viel Kontext Sie in Ihrem Studium mitbringen. Sie werden sehr glücklich sein, jemanden zu finden, der die Dinge mit Ihrem Standpunkt erklärt. Wie bei Turing-Maschinen kann jeder lernen, was andere wissen, und es ist nur eine Frage der Beharrlichkeit und Akzeptanz, dass Frustration natürlich ist.
Ich erinnere mich an die immense Schwierigkeit, die ich mit Zeigern hatte. Erst als ein sehr geduldiger Typ es mir erklärte, als wäre ich ein Vollidiot, verstand ich es. Das ist manchmal das, was es braucht.
quelle
Dies ist ein häufiges Problem beim Lernen und Lehren. Und wie andere gesagt haben, gibt es keine sichere Möglichkeit, dies zu umgehen. Es ist eine grundlegende Wahrheit, dass wir alle unterschiedlich lernen, da unser Gehirn auf subtile, aber entscheidende Weise unterschiedlich verdrahtet ist.
Lernen erzeugt neue neuronale Verbindungen. Ohne zu viel in die Neurowissenschaften zu gehen (von denen ich so gut wie nichts weiß), erfordert das Generieren neuer Verbindungen verschiedene Arten der Auseinandersetzung mit einem Konzept für verschiedene Menschen. Probieren Sie viele verschiedene Blickwinkel aus, lesen / hören / sehen Sie verschiedene Erklärungen. Trainieren!
Wenn dies nicht funktioniert, legen Sie das Problem beiseite: Möglicherweise fehlt Ihnen einfach ein anderer Teil des Puzzles, der nach dem Erwerb das ursprüngliche Problem offensichtlich erscheinen lässt.
Kennst du diese Aha! Momente? Zu diesem Zeitpunkt hat Ihr Gehirn gerade eine neue Verbindung hergestellt. So geschieht Lernen.
Das weiß übrigens jeder gute Lehrer. Richtlinien für technisches Schreiben besagen häufig, dass jedes Konzept mindestens zweimal mit unterschiedlichen Wörtern (und möglicherweise mit einem Text dazwischen) erklärt werden sollte. Wenn Sie darauf achten, werden Sie feststellen, dass alle guten Wissenschaftsautoren dieser Regel folgen.
Leider ignorieren es allzu viele Lehrer und erklären die Dinge nur einmal. Und selbst wenn es ihnen gelingt, eine elegante Erklärung mit einer großartigen Metapher zu finden, reicht dies einfach nicht aus.
quelle
Lesen Sie alle relevanten Dokumentationen und Google Ihre Zweifel.
Versuchen Sie, Codebeispiele zu schreiben, und sehen Sie, was sie tun.
Versuchen Sie, Code im Debug auszuführen, und beobachten Sie ihn Schritt für Schritt.
Wenn Sie ein bestimmtes Verhalten immer noch nicht verstehen, fragen Sie jemanden, entweder persönlich oder auf einer Website wie dieser. Wenn Sie alle oben genannten Punkte ausprobiert haben, sollten Sie über alle Elemente verfügen, um eine gute Frage zu erstellen. Sei nicht schüchtern :)
Ich denke, es ist so ziemlich das, was alle anderen tun.
quelle
Forschen und lernen Sie weiter. Ich hatte das gleiche Problem mit verschiedenen anderen Aspekten der Programmierung. Aber mit anderen zu sprechen und Artikel zu lesen, führt schließlich zu einem "AHA" -Moment. Im Allgemeinen ist es ein anderer Blog-Beitrag oder eine SO-Antwort, die die Informationen enthält, denen ich folgen kann.
Grundsätzlich sollten Sie weiter suchen und geduldig sein, damit das Verständnis kommt.
quelle