Wie schnell sollte man auf Stack Overflow zurückgreifen, wenn man nicht weiterkommt? [geschlossen]

51

Ich lerne die iOS-Entwicklung mithilfe des iTunes U CS193p-Kurses selbst und stecke oft fest. Ich habe versucht, mich zu lösen, aber es könnte Stunden und Stunden dauern, bis ich herausgefunden habe, was ich falsch mache, ob ich eine Methode vermisse oder nicht wirklich ein ganzes Konzept wie Delegation bekomme.

Ich mache mir Sorgen, dass ich zu viel Zeit verschwenden könnte, und es ist besser, kurz nachdem ich stecken geblieben bin, zum Stapelüberlauf überzugehen, damit ich weitermachen kann.

Beeinträchtigt Ihrer Erfahrung nach eine schnelle Abfrage des Stapelüberlaufs den Lernprozess oder verbessert sie ihn?

MaxGabriel
quelle
45
Es ist erwähnenswert, dass die Suche nach einer Antwort auf SO eines der ersten Dinge ist, die Sie versuchen sollten. Auch wenn es keine Antwort gibt, die genau zu Ihrer Frage passt, gibt es wahrscheinlich etwas, das Ihnen einen Einblick gibt. Aber Sie sollten Ihre eigene Frage erst dann stellen, wenn Sie sich wirklich bemüht haben, die Frage selbst zu beantworten, und sich wirklich bemüht haben, Ihre Frage so zu formulieren, dass deutlich wird, was Sie haben und was nicht schon versucht.
Dawood ibn Kareem
1
@ DavidWallace Konnte nicht mehr zustimmen. Zu viele Leute fragen einfach ohne nachzudenken (Fragen von geringer Qualität), manche Leute denken und fragen (bessere Fragen, aber ich wünschte, mehr Leute würden tatsächlich suchen, bevor sie (weniger (nahe) Duplikate) fragen.
Marjan Venema
3
Wie bei jeder Frage erfahren Sie mehr, wenn Sie zuerst selbst nach einer möglichen Antwort gesucht haben: Sie sehen, wo Sie die Suche vergessen haben, und können beim nächsten Mal auch dort suchen. Sie lernen nicht nur die Antwort, sondern auch, nach Antworten zu suchen. Wenn Sie zuvor selbst nicht an eine Antwort gedacht haben, erhalten Sie nur die Antwort und fahren fort, lernen aber im Allgemeinen weniger. Sie verbessern sich nicht.
Konerak
3
Der pragmatische Ansatz: SO eignet sich am besten für einfache Fragen, daher würde ich fast sofort fragen (Sie müssen jedoch in der Lage sein, die Frage zu formulieren). Nachdem Sie den Titel eingegeben haben, wird die Liste der am nächsten kommenden Fragen angezeigt. Stellen Sie sicher, dass Ihre Frage nicht in der Liste enthalten ist. Es ist jedoch nicht erforderlich, eine zusätzliche Suche nach SO durchzuführen.
Grzenio
6
Ich denke, das hätte wahrscheinlich auf SOs Meta gefragt werden sollen.
Hugomg

Antworten:

35

Wenn ich mit neuen Entwicklern zusammenarbeite, ermutige ich sie, nach fünf oder zehn Minuten Fragen zu stellen, wenn sie keine Fortschritte machen.

Das hat zwei Vorteile: Der erste ist, dass sie Hilfe bekommen können, ohne zu viel Zeit damit zu verbringen, ein Problem anzustarren, aber sie fragen nur, wenn sie nicht weiterkommen. Wenn sie etwas lernen - auch wenn dies letztendlich nicht die Antwort ist -, ist es viel wahrscheinlicher, dass sie diese Informationen auf sinnvolle Weise behalten.

Das zweite ist, dass sie nach so viel Zeit das Problem jemand anderem erklären müssen. Das löst einen großen Teil der Probleme, denn wenn Sie es der Reihe nach durchgehen, können Sie feststellen, was Sie in Ihrer früheren Arbeit verpasst haben.

Wenden Sie sich an ein Stofftier, die Uhr oder die Wand und fragen Sie nach dem Problem, da es sich so anhört, als würden Sie dies alleine tun. Erklären Sie es einer Person so, wie Sie es tun würden, und prüfen Sie, ob dies Abhilfe schafft.

Wenn dies nicht der Fall ist und Sie keine Fortschritte erzielen, fragen Sie jemanden. Mehr als fünf oder zehn Minuten festzuhalten, ist Zeitverschwendung - es sei denn, Sie tun etwas anderes und kehren dann mit neuem Verstand zum Problem zurück.

Daniel Pittman
quelle
17
Es gibt nichts Schöneres, als mit Ihrem Hund zu sprechen, um sich zu lösen. :-)
Marjan Venema
2
Und wenn du merkst, was du falsch machst, wird dein Hund wie " WOW! Daran hätte ich nie gedacht!" Beats ein paar Upvotes für einen Ego-Boost. ;-)
ein CVn
4
+1 Dies wird als "Enten-Debugging" bezeichnet, wenn Sie mit Ihrem Spielzeug-Entchen sprechen. Ich habe eine Voodoopuppe. Ich nenne es Voodoo-Debugging.
Sardathrion
4
Tolle Antwort +1. Ich steckte im Laufe der Jahre viele Male fest und stellte fest, dass mir die Antwort klar wird, wenn ich sie jemand anderem erkläre. Ich finde auch, dass weggehen / etwas tun, um einen klaren Kopf zu bekommen, oft funktioniert. Ich würde nicht zu schnell auf Stack Overflow zurückgreifen, wenn Sie die Lösung selbst herausfinden, werden Sie sie NIE vergessen! Heutzutage gibt es eine Menge hirntoter Programmierer, die sich zu sehr auf das Web verlassen.
AnthonyBlake
2
und so viele meiner Fragen beantworteten sich selbst, als ich die Frage zu SO formulierte.
Alleine schon die
22

Meine einzige Ergänzung zu den großartigen Antworten aller anderen:

Wenn Sie Ihre Frage in die StackOverflow-Fragenoberfläche eintippen, können Sie sicher sein, dass Sie sie vollständig durchdenken. Ich kann Ihnen nicht sagen, wie viele Fragen ich selbst beantwortet habe, während ich sie klar genug dargelegt habe, um sie richtig zu stellen. Die Fragen, die ich angefangen habe und die ich nicht eingereicht habe, übertreffen die Fragen, die ich tatsächlich gestellt habe.

Also, ich würde sagen, gehen Sie voran und fragen Sie (natürlich nach der Suche), hängen Sie einfach nicht daran, tatsächlich "Submit" zu drücken.

Dan Ray
quelle
+1 - Dies kann nicht überbewertet werden. Dies ist ein weiterer Grund, warum es so wichtig ist, Fragen sorgfältig zu formulieren. (Und der automatische Antwortvorschlag-Algorithmus in der Seitenleiste zeigt andere relevante Fragen noch genauer an.)
kmote
@ kmote - LIEBE das Ding. Es hat so viele Probleme für mich gelöst.
Dan Ray
1
Die Geschichte meines Lebens ... hat so viele Probleme gelöst, bevor ich auf "Submit" geklickt habe.
Ayush Goyal
20

Stack Overflow und jede andere Stack Exchange-Site enthalten Richtlinien zum Stellen von Fragen :

  • Mach deine Hausaufgaben
  • Sei genau
  • Machen Sie es für andere relevant
  • Seien Sie am Thema
  • Sei aufgeschlossen

"Machen Sie Ihre Hausaufgaben" bedeutet, dass Sie nicht zu schnell fragen sollten. "Seien Sie konkret" bedeutet, dass Sie den Bereich Ihres Problems gut genug verstehen, um es kurz zu fassen. Wenn nicht, gilt "mach deine Hausaufgaben". "Offen bleiben" bedeutet, dass Sie bereit sein sollten, nach Lösungen zu suchen, von denen Sie nie dachten, dass sie für Ihr Problem relevant sind.

Es geht also nicht darum, bei Stack Overflow zu fragen, sondern ob Ihre Fragen gut sind. Im Wesentlichen ist der erforderliche Aufwand eine Lernerfahrung für sich. Wenn Sie es richtig machen, werden Sie wahrscheinlich ein paar neue Dinge lernen, indem Sie nur nach Duplikaten suchen. Wenn nicht, ping mich an, ich habe ein paar Stimmen übrig. : P

yannis
quelle
1
Ich habe erst in den letzten Monaten angefangen, diese Familie von Websites (StackOverflow usw.) zu verwenden, und ich muss sagen, dass mich eines außerordentlich beeindruckt: Rechtschreibung und kohärentes Schreiben. Obwohl nur ein kleiner Prozentsatz der registrierten Mitglieder Englisch als Muttersprache hat, ist praktisch jeder äußerst vorsichtig beim Schreiben. Ich denke, es gibt keinen anderen Ort im Internet, an dem eine riesige Nutzerbasis eine solche Qualität aufrechterhält. Es ist komisch, aber beeindruckend. PS: Ich wollte dies für einige Zeit sagen, brauchte nur einen Ort, um es irgendwie ontopisch zu machen :).
Radu Murzea
1
@SoboLAN Das ist die Wiki-Philosophie. Wir bearbeiten ständig die Beiträge des anderen, auch bei geringfügigen Rechtschreibfehlern. Als nicht-englischer Muttersprachler habe ich mir angewöhnt, als ich zum ersten Mal bei Stack Exchange anfing, zu beobachten, welche Art von Änderungen die Leute vorgenommen haben, und aus den Fehlern anderer zu lernen. Ein weiteres positives Nebenprodukt der Stack Exchange-Erfahrung, denke ich. Wer weiß, irgendwann kann ich mit meinem Englisch sogar genug Selbstvertrauen entwickeln, um eine Antwort bei English Language & Usage Stack Exchange zu versuchen . : P
yannis
3

Als ich mit dem Programmieren anfing, verbrachte ich viel Zeit damit, Dinge herauszufinden. Ich könnte Stunden damit verbringen, etwas zu reparieren. Ich sehe diese Stunde nicht als unproduktiv an, in diesen Stunden habe ich gelernt, wie man online nach Dingen sucht, und ich habe wirklich Einsicht in die Funktionsweise meiner Programmiersprache gewonnen. Daher denke ich, dass es Ihnen die Lernerfahrung nimmt, wenn Sie zu schnell nach SO fragen. Der Einstieg in die Programmierung dauert nur sehr lange.

Dann stellt sich die Frage, wie schnell zu fragen ist. Ich würde sagen, dass es nicht lange dauert, ein paar Stunden für ein bestimmtes Problem aufzuwenden (beachten Sie, dass ich einen akademischen Hintergrund habe, vielleicht wird dies in einem kommerziellen Umfeld weniger akzeptiert).

Und wenn Sie eine Frage zu SO stellen, investieren Sie Zeit in die Frage:

  • Wenn Sie einen Fehler haben, geben Sie den genauen Text des Fehlers an. Veröffentlichen Sie auch den Code, der zum Fehler geführt hat, vorzugsweise ein eigenständiges Beispiel, das auf einem beliebigen Computer ausgeführt wird.
  • Zeigen Sie, was Sie bereits ausprobiert haben.
  • Erwähnen Sie die Versionen der von Ihnen verwendeten Software: Compilerversionen, Version von Python.

Dies sind nur einige Punkte. Indem Sie Zeit in eine Frage investieren, respektieren Sie die Menschen auf SO und nutzen ihre Zeit kostenlos. Noch wichtiger ist, strukturieren Sie Ihr Problem. Dies könnte Ihr Problem bereits lösen :).

Nur meine 2 ct ...

Paul Hiemstra
quelle
1

Ich glaube, hier ist es wichtig, wirklich zu verstehen, woran man festhält, und zu versuchen, das Hauptproblem zu lösen. Nachdem Sie sich wirklich mit dem eigentlichen Problem befasst haben, ist die Verwendung von Stack Overflow eines der ersten Dinge, die ich tue.

Aber es stellt keine Frage.

Es sucht nach all den tollen Antworten. Wahrscheinlich hat jemand anderes das Problem, das Sie gerade haben, und er hat Ihre Frage bereits gestellt. Wenn Sie sich gezwungen fühlen, Stack Overflow zu verwenden, denken Sie daran, dass es nicht nur eine Website ist, auf der Sie eine Frage stellen können, wenn Sie ratlos sind. Es ist auch ein Aufbewahrungsort für einige wirklich gute Informationen zur Computerprogrammierung; Verwenden Sie die Suchfunktion.

Wenn Sie mit ein paar anderen Begriffen / Stichwörtern gesucht haben und trotzdem keine Ergebnisse erzielt haben, Ihre Hausaufgaben gemacht haben und Codebeispiele haben, die Sie vorführen können, und Sie sicher sind, dass Ihre Frage nicht wirklich ein Duplikat ist , dann fragen Sie auf jeden Fall Ihre Frage zu Stack Overflow. Das ist es, was die Seite zum letzten Mal gibt, was ich überprüft habe.

Charles Sprayberry
quelle
1

Es ist völlig subjektiv, aber hier sind meine Grundregeln für meine Verwendung.

1) Steht mein Haus in Flammen? Offensichtlich nicht wörtlich, aber ist dies ein Problem, das nicht nur eine sofortige Lösung, sondern eine Notlösung benötigt. Wenn ja, probieren Sie es aus, scheitern Sie schnell und holen Sie sich die bestmögliche Hilfe.

2) Kann ich das recherchieren? Wenn es etwas ist, wo ich die Zeit habe und es recherchierbar ist, gehe ich diesen Weg, und dazu gehört auch SO als ergänzende Ressource. SO ist großartig, so ist Wiki, so sind die anderen Dutzende von Ressourcen.
Wenn Sie viel lesen, ist es hilfreich, zu verstehen, wann es unterschiedliche Herangehensweisen an ein Problem gibt. Nehmen Sie sich jedoch zunächst die Zeit, um zu prüfen, ob Ihr vorhandenes Wissen erneut auf das Problem angewendet werden kann, und bauen Sie sich dann ein neues mentales Tool auf.

3) Liegt das außerhalb meiner Fähigkeiten / ist es so dunkel, dass es wahrscheinlich 100 Leute gibt, die es jemals gesehen haben? Das passiert und passiert oft. Im Allgemeinen versuche ich ein oder zwei Stunden lang zu recherchieren und gehe dann hierher oder zu anderen Ressourcen.

Ich weiß, dass es edler ist, zu sitzen, zu recherchieren und die Zeit zu verbringen, aber oft haben wir Zeitbeschränkungen und Sie nutzen jede verfügbare Ressource, auch wenn es sich anfühlt, als würde man das System betrügen.

Nicholas Smith
quelle
0

"Wie schnell" wird von Natur aus subjektiv sein. Jeder wird eine etwas andere Meinung haben.

Wenn Sie die Ursache Ihres Problems in etwa 5 Minuten nach dem Betrachten des tatsächlichen Codes nicht finden können, würde ich es zumindest googeln. Wenn eine gute Suche nicht die Antworten hat, dann würde ich anfangen, Ihre Frage auf SO zu schreiben.

Denken Sie daran, dass es in Ordnung ist, diese Frage nicht zu posten. Es hat Zeiten gegeben, in denen sich die Lösung gezeigt hat, als die Frage in Worte gefasst wurde, und ich musste es euch eigentlich nicht sagen.

KeithS
quelle
0

Sie können Ihre Frage frühzeitig schreiben, sollten sie jedoch erst dann veröffentlichen, wenn Sie die Ursache Ihres Problems ordnungsgemäß untersucht haben. Schreiben Sie die Dinge auf, die Sie beseitigt haben, und wie Sie sie beseitigt haben. Sie sollten auch nach ähnlichen Fragen suchen und erklären, warum dies nicht dieselbe Frage ist, wenn Sie Ihre Frage wirklich posten möchten.

Wenn Sie das richtig machen, werden Sie feststellen, dass Sie oft Ihr eigenes Problem lösen werden.

Marcin
quelle