Duck's Blog

Wie stellt man Fragen?

Autor: Duck

28.03.2021

Wie stellt man Fragen?

Wir alle begegnen Fehlern in unserem Code. Es gibt immer etwas, das nicht wie vorgesehen funktioniert. Viele Leute benötigen daher Hilfe und suchen diese in Foren oder anderen Plattformen, wo Entwickler zusammenkommen. Die Kommunikation mit anderen Entwicklern und der Austausch von Wissen ist sehr wertvoll, um sein Wissen zu erweitern und gegebenenfalls Probleme zu lösen.

Es ist jedoch sehr wichtig zu berücksichtigen, wie man seine Fragen stellt, sodass andere Personen erfolgreich und effizient oder auch überhaupt helfen können.

Wie beginnt man?

Eine eigene Lösung finden

Versuche zuerst selbst an das Problem heranzugehen, bevor du sofort fragst. Oftmals kommt einem selbst etwas in den Sinn, wobei der Lerneffekt sogar grösser ist. Zusätzlich gewinnt man an Selbstvertrauen, besonders als Beginner, da man ein Problem selbst gelöst hat. Du solltest dir natürlich nicht stundenlang den Kopf darüber zerbrechen und daran verzweifeln, jedoch wäre es in deinem eigenen Interesse, wenn du dir zumindest Gedanken darüber machst und dich bemühst, dieses Problem selbst zu lösen.

Google ist dein Freund

Der nächste Schritt wäre, das Problem/die Frage zu googeln (du darfst natürlich jede beliebige Suchmaschine verwenden), wenn du selbst nicht weiterkommst. Die meisten Fragen wurden wahrscheinlich bereits im Internet beantwortet und diskutiert, da du definitiv nicht die erste Person mit dieser bestimmten Frage bist. Du kannst sogar verschiedene Artikel, Beiträge und Dokumentationen miteinander kombinieren, denn das ist oftmals, wie man eigentlich handeln muss, um bestimmte Probleme zu lösen. Man kann nicht alles auf dem Silbertablett serviert bekommen. Eine Frage erfolgreich googeln zu können, ist eine essentielle Fähigkeit jedes Entwicklers.

Für weitere Informationen und eine umfassende Erklärung empfehle ich meinen Blog zu der Fragestellung "Wie googelt man?" .

Die Dokumentation benutzen

Um auf die erwähnte Dokumentation zu sprechen zu kommen: Die Dokumentation einer API, Programmiersprache oder eines Programmes ist eine wertvolle Quelle für bestimmte Informationen und wertvolle Tipps. Dokumentationen sind sozusagen Handbücher, in denen immer die Funktionsweise verbal erklärt und mit Beispielen sowie zusammenhängenden Referenzen untermauert ist. Da dies eine direkte Schnittstelle zwischen den Entwicklern des Produktes und uns Benutzern ist, erhält man meistens 100% zuverlässige Informationen aus erster Hand.

Richtig fragen

Falls du nach ausgiebiger Recherche im Internet und Ausprobieren immer noch nicht weiterkommst, bleibt dir wahrscheinlich nur die Option, jemanden zu fragen. Da ist auch überhaupt nichts falsch daran. Um jedoch deine und die wertvolle Zeit der Menschen, die dir helfen möchten, zu sparen, solltest du deine Frage unbedingt richtig stellen. Nun, was bedeutet das? Es bedeutet, dass du so viele Informationen wie nötig angibst, sodass dir jemand überhaupt helfen kann.

Frage nicht, ob du fragen darfst!

Es gibt ein paar simple, eigentlich selbstverständliche Regeln, die du befolgen solltest: Frage nicht, ob du fragen darfst! Du musst und solltest nicht fragen, ob du fragen darfst und dann warten bis dir jemand erlaubt zu fragen. “Kann mir jemand helfen?” oder etwas Ähnliches in dieser Art ist somit auf jeden Fall ein falscher Anfang. Stelle deine Frage direkt. Wenn du fragst, wissen wir bereits, dass du Hilfe benötigst. Es gibt keinen Grund, anmerken zu müssen, dass du eine Frage oder ein Problem hast.
Du kannst die überflüssige Einleitung überspringen. Uns wäre es lieber, wenn du deine Frage direkt stellst.

Schlicht zu sagen: “Es funktioniert nicht” oder etwas Ähnliches in dieser Art, was überhaupt nicht genug Informationen über das Problem enthält, ist ebenfalls eine der schwerwiegendsten Sachen, die du beim Stellen einer Frage falsch machen kannst.

Der richtige Inhalt einer Frage

Im Falle, dass etwas mit deinem Code nicht stimmt oder etwas allgemein nicht funktioniert, wie es sollte, sind die Informationen besonders wesentlich.

  • Was funktioniert nicht?

  • Welches Verhalten ist erwartet?

  • Was passiert stattdessen?

  • Was hast du soweit versucht, um das Problem zu beheben?

  • Sende den relevanten Code (wir kommen gleich dazu) .

  • Teile alle damit zusammenhängenden Fehlermeldungen, besonders wenn das Problem direkt mit den Fehlermeldungen zusammenhängt. Bitte nicht nur die Kennziffer der Fehlermeldung, sondern die gesamte Fehlermeldung.

  • Stelle eventuell nützliche Screenshots, Aufnahmen oder relevante Links zur Verfügung.

Natürlich musst du den Leuten nicht einen immensen Text ins Gesicht werfen, wobei dies in manchen Fällen sogar notwendig ist, jedoch sollte die Frage genug Informationen enthalten. Das spart dir und den Leuten, die dir helfen möchten, Zeit und Nerven. Eine ausführlichere Frage erweckt ausserdem den Eindruck, dass man sich Mühe gegeben hat, das Problem zu formulieren, es eventuell bereits versucht hat, im Internet zu recherchieren und trotzdem nicht ganz vorangekommen ist. Im Gegensatz dazu steht etwas wie: “Hallo, ich kriege eine Fehlermeldung, hilfe!”, was überhaupt nicht den Eindruck erweckt, als ob sich die Person auch nur im Geringsten die Mühe gemacht hätte, dieses Problem überhaupt zu verstehen, geschweige denn eine richtige Frage zu formulieren. Es strahlt eher eine gewisse Faulheit aus und das ist definitiv nicht die richtige Einstellung.

Formatiere deinen Code

Falls dein Problem in irgendeiner Weise mit deinem Code zusammenhängt und dieser relevant ist, ist es sehr wichtig, dass du den relevanten Code angibst und ihn richtig formatierst. Es fällt einem sehr viel leichter, dir zu helfen, wenn der Code schön formatiert ist, sodass man sich nicht durch unformatierten rohen Text oder ein Bild vom Code quälen muss.

Ein Bild deines Codes? Keinesfalls!

Bitte sende nie Bilder deines Codes. Das ist ein weiterer Aspekt, der zum Misslingen einer Frage beiträgt. Es gibt einige Probleme damit, besonders wenn du ein Bild mit einem Mobilgerät machst (oh, nein, bloss nicht). Bitte tue das nie! Es ist extrem schwer unter diesen Umständen da irgendetwas erkennen zu können.
Ich habe schon vieles gesehen: von verstaubten Bildschirmen, über Bildern aus einer gefühlten Entfernung von ein paar Metern zum Monitor, bis hin zu Bildern mit einer gesamten Belichtungsanlage hinter der Person und alles gemeinsam ebenfalls. Bei solchen Bildern überlegt man sich schon zweimal, ob man der Person wirklich helfen möchte. Leicht karikiert entspricht das leider der Wahrheit. Ein weiteres Problem ist die erschwerte Reproduktion des Fehlers für den Helfer. Falls jemand das Problem selbst reproduzieren oder den Code testen möchte, müsste diejenige Person den gesamten Code abtippen. Ineffizient? Und wie! Wie schön und effizient da ein schön formatierter Codeblock zur Hand läge.

Bild deines Codes? NEIN!

Codeblocks sind viel besser

Egal welche Plattform du nutzt, um deine Frage zu stellen, es gibt meistens eine Option, einen Codeblock zu erstellen. Und auch wenn nicht, gibt es immer einen Ausweg. Darauf kommen wir gleich zu sprechen . Nehmen wir Discord zum Beispiel. Discord hat ein ausgefeiltes Codeblock-System, wobei man sogar die Sprache auswählen kann, nach der sich das Syntax-Highlighting richtet. Aber wie erstellt man einen solchen Codeblock? Das ist ziemlich einfach. Hier ist ein Beispiel mit C# als Syntax-Highlighting Sprache. Discord unterstützt jedoch eine grosse Vielfalt an Sprachen. Alle bedeutenden und üblichen Programmiersprachen sollten vertreten sein. Hier kannst du eine erweiterte Liste mit allen unterstützten Sprachen finden.

Discord Codeblock

Codeblocks in Stack Overflow funktionieren genau gleich. Es ist sehr wichtig, den Gravis ` statt des Apostrophs ' zu benutzen. Du findest dieses Zeichen meistens direkt links neben der Backspace-Taste. Dabei musst du die Shift-Taste gedrückt halten. Da die Taste, die einen Gravis anzeigt, eine sogenannte Tottaste ist, musst du sie zweimal drücken. Dann sollten zwei von den Zeichen erscheinen. Beim Löschen werden die Zeichen jedoch wieder einzeln bearbeitet und man kann nur eines, statt beide auf einmal, löschen.
Ein weiterer üblicher Fundort dieser Taste ist in der linken oberen Ecke der Tastatur, direkt unterhalb der Escape-Taste und links neben der 1.

Doch was, wenn dein Code zu lang ist oder die Plattform, die du benutzt, um deine Frage zu stellen, keine Codeblock-Funktion besitzt? Auch dafür habe ich eine Lösung!

pastemyst ist grossartig

Wenn dein Code zu lang ist und das Zeichenlimit einer Nachricht überschreitet (2000 Zeichen in Discord zum Beispiel), musst du eine andere Lösung als den Codeblock finden. Zum Glück existieren Webseiten, die sich speziell dem Teilen von Code widmen. "pastemyst" ist eine davon und meiner Meinung nach die beste im Netz. Du kannst ganz einfach so viel Code wie du wünschst mit wenigen Klicks auf einer komplett kostenlosen Website mit verschiedenen Themen, Syntax-Highlighting für jede gängige Sprache und vielen weiteren nützlichen Funktionen, einfügen. Ausserdem ist es in allen Ländern verfügbar, komplett werbefrei und quelloffen (Open-Source) .

Kurzanleitung für die Verwendung von pastemyst:

  • Öffne https://paste.myst.rs/

  • Füge deinen Code in das grosse Textfeld ein (du kannst den Code sogar in verschiedene Skripte aufteilen und jedem dieser Skripte einen Titel geben sowie einen Gesamttitel für die gesamte Beilage festlegen)!

  • Wähle schliesslich die Sprache für das Syntax-Highlighting oder lasse pastemyst die Sprache automatisch ermitteln!

  • Klicke auf “create paste”!

  • Teile den generierten Link (Link in der Suchleiste kopieren)!

This is pastemyst This is pastemyst

Sei geduldig und anständig

Nur noch ein paar Anmerkungen zum Abschluss dieses Blogbeitrags. Bitte versuche, höflich und dankbar gegenüber den Menschen zu bleiben, die versuchen, dir zu helfen. Sie sind nicht verpflichtet und werden nicht dafür bezahlt, dir zu helfen. Sie tun dies freiwillig. Niemand kann sie zwingen, zu helfen. Wenn du deine Frage gestellt hast, warte geduldig auf eine Antwort. Bombardiere die Konversation nicht mit ein und derselben Frage in einer kurzen Zeitspanne und versuche Phrasen, die deine Ungeduld ausdrücken, wie “Leute?” oder “Kann mir denn jemand helfen?” zu vermeiden. Jemand wird antworten, wenn die Person kann, Zeit hat und möchte.

Jetzt solltest du voll und ganz darauf vorbereitet sein, alle Arten von Problemen zu lösen. Frohes Entwickeln!