Jak dobrze zadawać pytania na forach?

Biały znak zapytania na ciemnym tle przypominającym tablicę

Fora o tematyce informatycznej mogą być bardzo pomocnym miejscem. Spotkasz na nich wielu ludzi, którzy doradzą, pomogą i porozmawiają. Nie muszę chyba wspominać tutaj o Stack Overflow. Co prawda nie jest to typowe forum, gdzie mamy wątki, w których dodaje się posty, a serwis z formułą Q&A (pytania i odpowiedzi). Generalnie jednak podstawowe założenie jest podobne: strona, gdzie można o coś zapytać, a inni ludzie się wypowiedzą. Często wystarczy po prostu wpisać w wyszukiwarkę treść błędu, który zwróci nam kompilator/interpreter i już, pierwszy wynik to właśnie SO z konkretną propozycją poprawy, problem rozwiązany. Ba… przecież jest pełno śmiechów z tego, że programowanie opiera się na kopiowaniu ze Stacka :)

Okładka książki: Copying and Pasting from Stack Overflow

Zadanie pytania w takim serwisie nie wydaje się problematyczne. No bo co w tym trudnego? Klikasz, piszesz, o co chodzi i publikujesz. Niestety, okazuje się jednak, że wiele pytań zadanych jest po prostu źle. To nie wiadomo jak na nie odpowiedzieć, to brakuje informacji, a to po prostu nie zachęca do tego, aby pochylić się nad problemem… Postaram się dziś nieco przybliżyć ten problem.

Jestem administratorem Forum Pasja Informatyki - polskiego forum skupiającego się głównie na tematyce programowania, ale także innych dziedzinach informatyki. Od kilku lat codziennie mam styczność z wieloma osobami, które przychodzą, aby po prostu zapytać. Stało się to inspiracją do napisania tego posta.

Jeśli chcesz dobrze napisać prośbę o pomoc, wystarczy spróbować zmienić perspektywę: przeczytaj swoją wypowiedź i pomyśl, że to Ty masz na nią odpowiedzieć. Zdaję sobie sprawę, że to siłą rzeczy nie będzie zbyt obiektywna ocena, ale spróbuj to zrobić. Czy jeśli Ty dostałbyś dokładnie takie informacje, jakie zawarłeś w poście, to byłbyś w stanie udzielić odpowiedzi bez dodatkowego dopytywania o podstawowe kwestie?

Tak, to prawda, że nie znasz odpowiedzi, dlatego zgłaszasz się do innych. Jednak inni nie są wróżbitami ze szklanymi kulami. Być może mają więcej doświadczenia na dany temat, możliwe, że dzięki temu skojarzą od razu jakiś problem, ale nadal - nie będą się domyślać, o co Ci chodzi! Nie zapomnij także, że przed zadaniem pytania należy spróbować poradzić sobie samemu. Najpierw poszukaj w internecie (najlepiej po angielsku, czasem wystarczy tylko wklejenie treści błędu), przeszukaj wątki w danym serwisie i zapytaj, dopiero gdy nie znajdziesz rozwiązania.

Nie działa

Cześć. Mam taki kod: […]. Niestety nie działa, pomóżcie proszę.

To chyba jedna z częściej spotykanych fraz, która zupełnie nic nie mówi. Powinieneś napisać, co dokładnie nie działa. Jak odtworzyć ten problem? Może występuje jakiś komunikat o błędzie? Może podejrzewasz, co go powoduje albo którego miejsca kodu się tyczy? Na przykład: w linii 24 pokazanego kodu mam zapis do bazy, który wykonuje się po kliknięciu zielonego przycisku. Klikam przycisk, nie otrzymuję żadnego błędu, a dane w bazie nie zmieniają się. Gdy występują błędy, wstaw ich treść, zrzut ekranu lub opis - zależnie od sytuacji.

Pomocy, pomóżcie, help, szybko!!!

Dodawanie wielu takich pustych słów, pisanie ich wielkimi literami, wstawianie wielu wykrzykników czy innych znaków nie jest w żaden sposób potrzebne. Podobnie poganianie ludzi, że to ma być szybko i na już. Wręcz przeciwnie, im więcej będzie takich wstawek, tym większe jest wrażenie, że ktoś jest natarczywy, a to tylko bardziej zniechęca do pomocy. Zwykłe: proszę o pomoc jest w zupełności wystarczające, kulturalne i zrozumiałe.

Komentarz: szybkie odp to na dzisiaj

Brak kodu

W momencie, gdy sytuacja dotyczy ściśle problemu z kodem, to niezbędne jest pokazanie go, aby można było pomóc. Tutaj nawet szczegółowy opis tego, co zostało napisane, nie wystarczy, ponieważ nie wiadomo jak dokładnie zostało to zaprogramowane. Trzeba po prostu pokazać, co się napisało. Rzecz jasna, nie chodzi tutaj o pokazanie kodu całego projektu, a jedynie fragmentu, którego dotyczy problem - w większości przypadków to wystarcza. Jeśli nie, to najwyżej ktoś dopyta o potrzebne szczegóły. Należy też pamiętać, aby kod wstawić zgodnie z regułami obowiązującymi w danym miejscu.

Na forach IT przeważnie nie jest preferowane wklejenie go po prostu w treść bez formatowania. Najczęściej korzysta się z jakiegoś rodzaju wstawki/bloczku, która formatuje i koloruje kod dla danego języka. Nie powinno być także problemu ze wstawieniem linka do serwisu umożliwiającego przechowywanie kodu/wstawek jak repozytorium GitHuba, Pastebin, CodePen i podobne. Nie warto za to publikować kodu w formie zrzutów ekranu - wtedy nie można go nawet zaznaczyć i wkleić do odpowiedzi czy spróbować uruchomić u siebie.

Złe formatowanie

Zwróć uwagę na to, aby Twoja wypowiedź była czytelna. Nikt raczej nie oczekuje na forach pisania wypracowań (zbyt długie posty także nie są dobre, bo ludzie nie mają ochoty ich czytać!), ale chodzi o minimum komfortu. Staraj się nie popełniać zbyt wielu błędów ortograficznych. Każdemu się może zdarzyć, ale jeśli w krótkim zdaniu jest ich kilka, to coś jest jednak nie tak. Dysleksja nie jest na to wytłumaczeniem - włącz po prostu funkcję sprawdzania pisowni w przeglądarce/edytorze. Zastosuj podział na akapity i zdania. Tekst pisany ciągiem, bez interpunkcji, jest trudny do odczytania. Nie nadużywaj przesadnie kolorów, wielu rodzajów czcionek i tym podobnych. Zadbaj o to, aby zawartość zdjęć/screenów była czytelna.

Niespójny tytuł, kategoria, tagi lub inne elementy

Poruszona tu kwestia zależy od danego serwisu, jednak przeważnie trzeba podać tytuł tematu/pytania, wybrać jakieś tagi, może wskazać kategorię. W takiej sytuacji zastanów się nad tym przez moment. Tytuł ma być krótkim podsumowaniem Twojego pytania, aby ktoś bez czytania całości wiedział, o co ogólnie chodzi. Przeważnie jest on prezentowany na różnego rodzaju listach wątków, a więc powinien być dość precyzyjny i nie za długi jednocześnie.

Dla przykładu, tytuł Mój kod nie działa jest fatalny. Prawdopodobnie na forum większość pytań dotyczy właśnie tego, że kod nie działa. Zamiast tego mogłoby być Błąd „undefined index” przy wywołaniu własnej funkcji. Jeśli istnieje konieczność wybrania jednej kategorii, to wskaż tę, do której jest najbliżej. Często kategorią są po prostu nazwy języków programowania. W sytuacji, gdy trzeba podać także tagi, wpisz je, zawierając jedynie słowa kluczowe z pytania. Tag problem jest bezużyteczny - ponownie, przypuszczalnie spora część pytań to jakiegoś rodzaju „problem”.

Brak ważnych szczegółów

To zasadniczo trochę pokrywa się z początkowym nie działa. Jeśli ktoś ma pomóc, potrzebne są szczegóły sytuacji. Przykładowo, jeśli problem dotyczy kodu napisanego we frameworku, który ma wiele różniących się wersji - podaj, o którą chodzi. Wyskakuje błąd podczas instalacji programu? Napisz jakiego systemu operacyjnego używasz. Nie wiesz gdzie przekierować porty w routerze? Podaj model urządzenia. Piszesz ogłoszenie? Wskaż, co trzeba zrobić oraz ile możesz za to zapłacić (jeśli to możliwe). I tak dalej.

Pytanie: Cześć. Nie wiem czemu visual studio mi nie działa. Chcę włączyć i nic się nie dzieje. Proszę o szybką pomoc.

Gotowce

Podejście do dawania gotowych rozwiązań także może zależeć od polityki danego serwisu. Z reguły jednak mało kto lubi odrabiać czyjeś zadania domowe albo rozwiązywać sprawdziany. Nie jest tu ważne czy się nie nauczyłeś, nie miałeś czasu albo czy to nauczyciel źle tłumaczył. Po prostu, jeśli liczysz na pomoc, musisz wykazać także własny wkład, dać coś od siebie. Posty na zasadzie:

Mam zrobić zadanie: […]. Nie mam w ogóle pojęcia jak się za to zabrać, więc najlepiej jakby ktoś dał rozwiązanie. Muszę oddać to w ciągu godziny. Pomocy.

niestety nie będą zbyt miło odebrane. Dlaczego ktoś miałby poświęcić swój czas, aby wykonać to za Ciebie? W takiej sytuacji tym bardziej niczego się nie nauczysz i problem powróci przy kolejnym zadaniu. Dużo lepiej brzmiałoby:

Mam tutaj zadanie: […]. Nie za bardzo znam temat, ale poszukałem i wydaje mi się, że aby je zrobić muszę użyć funkcji xyz. Czy dobrze myślę? Oto kod, jaki próbowałem napisać: […]. Wyświetlił się błąd: […] i nie wiem jak go rozwiązać.

Prawda?


Na koniec warto jeszcze zaznaczyć, że w momencie rejestracji na forum wypada poświęcić te dosłownie kilka minut i chociaż zerknąć na zasady obowiązujące w danym miejscu. Wiem, że w praktyce mało kto lubi czytać regulaminy, dokumenty i tym podobne, ale jeśli zapoznasz się z takimi informacjami raz, to oszczędzisz wielu problemów sobie, jak i obsłudze danego serwisu.

Mogę też krótko wspomnieć o kwestii podejścia innych forumowiczów. Często ludzie dziwią się, że otrzymują niezbyt miłe reakcje na źle zadane pytania. Z jednej strony rozumiem, z drugiej strony jest to oczywiście smutne. Nie chcę tego zbytnio usprawiedliwiać, ale prawdą jest, że taka osoba, która jest stałym bywalcem i odpowiadaczem na forum, widzi dziennie co najmniej kilka pytań, które zostały niezbyt dobrze zadane. W pewnym momencie można się po prostu zirytować. To Ty - jako pytający - powinieneś postarać się napisać temat tak, aby zawierał wszystkie informacje i był zrozumiały dla innych. To w Twojej gestii jest rozwiązanie problemu i uzyskanie odpowiedzi. Tobie najbardziej powinno na tym zależeć.

Żeby nie było, druga strona - odpowiadający - także powinna starać się zrozumieć to, że nowicjusz może nie do końca jeszcze to czuć i rozumieć wszystkie kwestie. Gdy ktoś zajmuje się tematem już długo, to pewne rzeczy stają się oczywiste i ciężej jest zrozumieć (albo łatwiej zapomnieć), że dla osoby początkującej to wcale nie jest jasne. Każdy kiedyś zaczynał i traktowanie innych ze zbędną wyższością po prostu nie jest miłe. To już może dobry temat na inny post :)

Mam nadzieję, że zaprezentowane przykłady pomogą Ci pytać lepiej. Dobrze zadane pytanie to ułatwienie dla wszystkich, również dla Ciebie, bo zwiększa szanse na otrzymanie trafnej odpowiedzi i rozwiązanie problemu. Warto też pamiętać o obustronnym szacunku.


Zdjęcie główne: Pixabay, screeny wpisów: Forum Pasja Informatyki.

Komentarze