Ist es in Ordnung, wenn ich ein Problem nicht lösen kann, wenn ich vor einem Computer sitze? [geschlossen]

12

Ich bin ein Hobby-Programmierer und ein Anfänger. Meistens kann ich das Problem nicht lösen, wenn ich vor dem Computer sitze. Ich habe zum Beispiel versucht herauszufinden, ob eine Zahl eine Potenz einer anderen ist. Ich konnte die Lösung erst herausfinden, als ich mir einen Stift und ein Blatt Papier schnappte und das Problem analysierte. In ca. 3 Minuten habe ich es gelöst und das Skript in Python geschrieben.

Manchmal kann ich das Problem lösen, wenn ich vor einem Computer sitze, aber mit etwas Mühe. Ist das in Ordnung?

Mahmood Muhammad Nageeb
quelle
6
Für mich ist das kein schlechtes Thema, und tatsächlich starren viele Leute zu sehr auf den Computer und bemerken schließlich nicht, dass sie dieses Problem in geringerem Maße haben. Viele professionelle Programmieraufgaben erfordern sehr gründliche Änderungen anstelle der kniffligen logischen Formeln, die normalerweise als Hausaufgaben verwendet werden, und es ist kein großes Problem, wenn Sie diese zumindest ausführen können.
Katana314
2
Ich denke, Sie möchten Ihre Frage vielleicht nur umformulieren, damit die Programmierung sinnvoller wird.
Snoop
8
Das ist völlig subjektiv. Jeder lernt und arbeitet anders. Mach was für dich funktioniert.
7
Vor dem Computer kann der schlechteste Ort sein, um ein Problem zu lösen, da Sie zu versucht sind, zu tippen, wenn Sie überlegen sollten. Oft ist es besser, aus der Maschine herauszukommen, weil man dann denken und nicht handeln muss . Die meisten meiner schwierigsten Probleme wurden gelöst, als ich morgens ins Büro ging.
Gort the Robot
2
Es stellt sich auch die Frage, wie schwierig das Problem ist. Wenn Sie mehr Erfahrung sammeln, werden einige Probleme, die jetzt schwierig sind, leicht. Das bedeutet aber nur, dass Sie noch schwierigere lösen können. Für mich lösen sich viele meiner wirklich schwierigen Aufgaben beim Wandern oder Langlaufen.
Jamesqf

Antworten:

34

Ich neige dazu, meine schwierigsten Probleme zu lösen:

  • Vor einem Whiteboard (manchmal ohne etwas zu zeichnen - wenn man nur darüber nachdenkt, wie man ein Problem visualisiert, kann das manchmal zu einer Lösung führen)
  • Während sie Kollegen erklären
  • Aus dem Fenster schauen
  • Während eines Spaziergangs
  • Unter der Dusche
  • Auf der Toilette

Sich vom Monitor zu entfernen ist oft sehr hilfreich, um sich auf das Problem selbst zu konzentrieren und nicht nur eine Implementierung zu tippen.

Die Problemlösung geschieht in Ihrem Kopf. Durch Eingabe des Programmcodes erklären Sie dem Computer lediglich Ihre Lösung.

Philipp
quelle
1
Vielen Dank! Sie haben Recht, je weiter ich von einem Computer entfernt bin, desto mehr kann ich mich auf das Problem konzentrieren.
Mahmood Muhammad Nageeb
2
Ich erinnere mich, dass ich ein Buch gelesen habe (an das ich mich leider nicht erinnern kann), das vorschlug, eine Gummiente an Ihrem Schreibtisch zu haben, und wenn Sie ratlos sind, beschreiben Sie das Problem der Gummiente laut.
Gort the Robot
7
@StevenBurnap Dies nennt man Rubber Duck Debugging und Sie haben wahrscheinlich in The Pragmatic Programmer von Addison Wesley darüber gelesen .
Philipp
2
"Durch Eingabe des Programmcodes erklären Sie dem Computer lediglich Ihre Lösung." - Alan Perlis sagte: "Programme sollten so geschrieben werden, dass sie von Menschen gelesen und nur gelegentlich von Maschinen ausgeführt werden können." Ich würde es eher so sehen: Wenn Sie den Code eingeben, erklären Sie Ihren Kollegen die Lösung . Die Tatsache, dass eine einmal eindeutige Beschreibung der Lösung, die jeder Mensch (einschließlich Sie selbst, in 6 Monaten) verstehen kann, auch von einer Maschine ausgeführt werden kann, ist nur ein Nebeneffekt der rigorosen Beschreibung genug, dass es keine Mehrdeutigkeiten gibt. …
Jörg W Mittag
4
Re: Gummiente. Es gibt auch eine ähnliche Geschichte mit einem Teddybär. Die Tutoren am MIT saßen früher Teddybären vor ihren Büros. Sie durften erst klopfen, nachdem Sie dem Bären Ihr Problem erklärt hatten. Die Hälfte der Schüler klopfte nie an die Tür, nachdem sie ihr Problem herausgefunden hatten, als sie es dem Bären erklärten. Das Formulieren einer gut geschriebenen, gut recherchierten, gut formatierten, detaillierten und qualitativ hochwertigen Frage in StackExchange kann denselben Effekt haben , weshalb wir genau das so anal finden!
Jörg W Mittag
7

Ich denke, das ist eine gute Frage. Nach meiner Interpretation lautet Ihre Frage: "Ist es in Ordnung, dass ich mich regelmäßig vom Computer entfernen muss?"

Ich glaube nicht, dass es einen Tag gibt, an dem ich nicht aufstehen und jemanden fragen muss, was er denkt, oder ein Stück Papier herausziehen und eine Gleichung aufschreiben, um das Problem zu lösen. Wenn Sie mehr in die Programmierung einsteigen, werden Sie möglicherweise erst dann mit dem Schreiben des Codes beginnen, wenn Sie zuvor ein Diagramm / eine Architektur erstellt haben.

Während meines Studiums belegte ich einen Kurs über Datenstrukturen und hatte Probleme beim Entwerfen eines Sortieralgorithmus. Als ich meinen Professor um Hilfe bat, wusste er, dass ich vorher nicht über das Problem nachgedacht hatte. Das erste, was er mir sagte, war, dass ich noch nicht bereit war, mit dem Schreiben des Codes zu beginnen. Also zog er ein Stück Papier heraus und zeichnete ein paar Quadrate. Dann gab er die Zahlen aus dem Array ein. Als nächstes malte er noch ein paar Bilder, in denen er die Quadrate bewegte und zeigte mir visuell, wie der Sortieralgorithmus funktionieren würde.

Einige Dinge, die Sie tun können, um Ihren Geist zu klären und das Problem zu lösen:

  • Machen Sie eine Pause
  • Sprechen Sie mit einem Kollegen
  • Whiteboard das Problem / Konzept
  • Schlaf drauf!

Seien Sie nicht überrascht, wenn Sie mitten in der Nacht mit der Lösung aufwachen.

Schnüffeln
quelle
1

Ich denke, es wird sicherlich helfen, ein effizienter professioneller Programmierer / Entwickler zu werden, wenn Sie können. Wenn Sie jedoch über ein Problem nachdenken, während Sie die Lösung in Programmlogik umsetzen, muss IMHO geschult werden. Wenn Sie diese Aufgaben serialisieren, sehe ich kein Problem. Sie müssen lediglich in der Lage sein, beide Aufgaben erfolgreich abzuschließen. Das Überlegen einer Lösung von Anfang bis Ende, bevor mit dem Codieren begonnen wird, hat sicherlich seine Vorzüge, aber Sie müssen dafür etwas geduldig sein.

Murphy
quelle