Frage

Dies kann eine hoffnungslos vage Rede sein. Aber ich bin interessiert zu hören, was logische Denkprozesse durch die Menschen gehen, wenn ein neues Konzept zu lernen oder zu versuchen, ihr Gehirn um Code zu erhalten, die sie vielleicht noch nie zuvor gesehen haben.

Im Grunde, was die allgemeine Schritt nimmt man Probleme zu brechen und was braucht es, um „get it“? Wenn Sie waren ein Flussdiagramm, um Diagramm, wie Sie Ihren mentaler Prozess funktioniert, wenn Sie auf Code suchen oder versuchen, ein Problem zu lösen, was könnte es aussehen?

Welche gemeinsamen Referenzen, Tipps und mentale Annahmen sind Sie nützlich Problem finden zu lösen?

Wie unterscheidet sich zwischen verschiedenen Domänen? Zum Beispiel auf welche Weise ist ein Denkprozess ähnlich oder verschieden Web-Programmierer von einem herkömmlichen Desktop-App Entwickler-Prozess?

War es hilfreich?

Lösung

Ich bin ein großer Anhänger, dass, egal welche Art von Anwendung auf Sie suchen zum ersten Mal, kann es eine Web-App, eine Desktop-Anwendung, ein Gerätetreiber, oder was auch immer sein, gibt es drei Schritte ein Entwickler folgt in der Regel, um zu verstehen, wie es funktioniert:

Holen Sie sich das große Bild:

  • Welche Art von App ist dies (Web, Desktop, ...)?
  • Wie ist es überlagert (Standalone, Client-Server, n-tier, ...)?
  • Was ist der Zweck der App? Was soll es tun?
  • Wer hat die App für?
  • gemacht ist

Sehen Sie, wie es funktioniert:

  • Welche Sprache (n) ist (sind) verwendet?
  • Wie wird der Code strukturiert?
  • Wie werden die Daten strukturiert?

verstehen (oder zumindest versuchen) die Art und Weise der Anwendung gedacht ist durch:

  • Ist es überhaupt durch gedacht?
  • Ist die App deutlich optimiert? (Für Leistungen? Zur besseren Lesbarkeit?)
  • Ist die App fertig? Oder gibt es Raum für Entwicklungen?
  • Gibt es Anzeichen für mehrere Releases?
  • etc ...

Die 1. und 2. Schritte sind rein technisch, während die 3. wie muss untechnischen wie möglich ... es ist mehr über Psychologie und das Verständnis, wie die App gebaut wurde. Es erfordert natürlich Erfahrung, aber solange man hart genug denken und nicht Ihr Gehirn Zeit mit technischen Details verschwenden, Sie werden es schließlich erhalten.

Dieser gesamte Prozess sollte die Verwendung einer Tastatur erfordern. Sie sind nur lesen, denken und machen Sie sich Notizen auf einem Papier soll (ich bin kein Scherz: Stift und Papier).

Andere Tipps

Ho ho, viel Glück mit diesem. Es ist eine große Frage, und ich bin sicher, dass Sie eine Menge Antworten bekommen. Obwohl ich, dass ich keine befriedigende Antwort geben zu sagen haben kann - das letzte, was würde ich meine Denkprozesse beschreiben, wie ein Flussdiagramm ist. - Ich glaube nicht, dass irgendeine goldene Formel hierfür ist

Die einzige Spitze bei der Problemlösung kann ich empfehlen bespricht es mit jemand anderem. In diesen Zeiten, in denen man eine Mauer treffen, mit einem Kollegen durchläuft es ist von unschätzbarem Wert. Oft auch, werden sie tatsächlich nicht einmal viel hinzufügen, auf die Diskussion -. In den Prozess der immer alle Ihre Gedanken im Freien kann die Lösung klar geworden,

Die Menschen sind notorisch schlecht an ihren eigenen Denkprozesse untersuchen, aber ich werde es mal geben. Ich teste sehr hoch für visuell-räumliche Fähigkeiten in IQ-Tests, mittlere bis hohe für verbale Fähigkeiten und moderat für mathematische Fähigkeiten (erklärt meine A-Niveau Mathematik Klasse, nehme ich an). amd, wenn ich starten Software zu entwerfen, ich glaube, in Bezug auf die Formen und die Verbindungen zwischen ihnen. Wenn es um die Beschreibung diese Gedanken an andere kommt (oder sie für mich zu klären), verwende ich einfache Blockdiagramme oder die Objektdiagramme von Jacobson Objectory Methode genommen - nicht die über komplexe Dinge, die UML vermuten lässt. Ich schreibe manchmal textuelle Beschreibungen von komplexen Dingen, meist als Erinnerung an mich, aber nie verwenden, um Zahlen oder Mathematik.

Das ist natürlich nur ich. - Ich habe mit der Mathematik whizzes gearbeitet, die genauso gut waren oder noch besser Programmierer als ich

Ich glaube nicht, ... ich verarbeiten.

Dies ist eigentlich weniger Flip als es klingt. Ich breche immer Aufgaben in ihre Komponenten nach unten und dann diese brechen weiter, und das geht nicht nur für das Schreiben von Software! Ähnlich wie @ Mark Pim U der Reihe nach durch die Dinge gehen.

Meine Frau wird wirklich verärgert, wenn ich das Abendessen zu machen, weil ich so lange dauern, um loszulegen.

aufteilen & Conquer

Ich fange an, indem das gesamte Problem versuchen, begreifen, wie es ist, und dann beginnen Muster finde ich erkennen kann, und das Gleiche zu tun für sie in einer Art rekursiven Prozess, bis ich eine aufgeschlüsselt Lösung haben kann ich implementieren und folgen leichter.

Dies ist eines der wenigen Male, die ich mit antworten würde „es funktioniert einfach.“ Ich lerne Dinge durch sie walzen. Ich habe kein Gimmicks, oder Geräte, mir zu helfen. Habe einige Zeit gebraucht PHP zu lernen, aber nach, dass Javascript war viel einfacher. Sobald Sie eine Sache angehen, werden die nächsten Punkte kumulativ-einfacher.

Ich persönlich führe einen inneren Dialog mit mir selbst ‚OK so müssen wir eine Schleife über diese Liste von ganzen Zahlen.‘ ‚Aber wir können brechen, wenn wir den Wert, den wir wollen, finden.‘ ‚OK, wird die Liste auf jeden Fall initialisiert werden, wenn wir anfangen?‘

würde ich daran interessiert zu sehen, ob eine psychologische Forschung über Techniken zur Problemlösung getan worden war.

Ähnlich wie Jonathan Sampson -. Es nur irgendwie funktioniert

Wenn ich ein echtes Problem anzugreifen, versuche ich und denke an dem logischste Weg, um durch sie ist. Dann, wenn alles schief geht (wie es in der Regel der Fall ist), muss ich Hunderte von Sidesteps machen Dinge zu erledigen. Halten Sie einfach die Konzentration auf dieses Endziel, dass die logische Art und Weise, und Sie werden dort ankommen.

Schließlich aber entscheidet, dass es für mich zu arbeiten und ich mit einem fertigen Produkt am Ende, die in der Regel nichts ist, wie ich es geplant sein. Solange die Kunden zufrieden sind, bin ich!

Ich persönlich sehe Code in meinem Kopf pictorally anstatt textlich (wie Neil Butterworth) - es ist ein bisschen schwer zu beschreiben, da (STIV zitiert) „es gibt keinen gemeinsamen Referenzrahmen.“

Meine Hauptfähigkeit ist Ähnlichkeiten zwischen den Modellen oder Systemen zu identifizieren etwa ich bereits kennen und der Aufgabe in der Hand. Die Verbindungen zwischen einigen von ihnen können ziemlich abstrakt erscheinen; der Schlüssel ist, um die Verbindungen zu erkennen. Dies führt zur Abstraktion von gemeinsamen Mustern und Ansätzen, die allgemein anwendbar sind. Im Zusammenhang damit, das Wichtigste, was ich gelernt habe, war Algorithmen, dass das Problem ist nie ‚mit einem intelligenten Algorithmus X zu lösen, kommen‘. Es ist ‚Modellproblem X, so dass es durch die bestehenden intelligenten Algorithmus Y gelöst werden kann.‘

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top