Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Heurystyka rozwiązywania problemów przez programistów., Ile czasu jest tracone bez sensu?
Foxx
post
Post #1





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


Dokonując pewnej refleksji nad treścią postów na forum można łatwo zauważyć,
że da się wyodrębnić pewnien typ problemów, które mają ludzie (szczególnie w
przedszkolu).

Mówię o postach typu "nie otrzymuję żadnych wyników z bazy danych". Każdemu,
kto ma trochę doświadczenia przychodzi do głowy kilka prostych działań, które
pozwoliłyby zlokalizować w którym momencie następuje błąd - w zapytaniu sql,
w działaniu bazy, w strukturze danych w bazie czy na poziomie przetwarzania
wyników w php.

Jak to się dzieje, że jeden z każdym problemem leci na forum a drugi potrafi
rozwiązać każdy z tych problemów? Oczywiście nie dlatego, że drugi nauczył się na
pamięć 5 milionów możliwych skryptów. Chodzi o dobrą heurystykę w szukaniu
błędów.

Mam wrażenie, że ta heurystyka jest w miarę prosta i uniwersalna. Gdybym miał
ją zwerbalizować, to może tak: prześledź program w taki sposób, w
jaki jest wykonywany i znajdź pierwsze miejsce, w którym wyniki nie są zgodne
z tym czego oczekujesz - prawdopodobnie tam jest błąd. Do tego dochodzą rzeczy
takie jak czytanie komunikatów ze zrozumieniem, skorzystanie z wyszukiwarek aby
znaleźć ten sam problem u kogoś innego i przeczytanie jak został rozwiązany.
Oczywiście zakłada to, że programista wie jakie jest oczekiwane działanie jego
skryptu a to dla wielu jest zbyt wiele. Ale jeżeli ktoś tego nie wie, to znaczy, że
nie szuka pomocy tylko frajera, który wykona za niego jego pracę (którą z jakiegoś
powodu [szkoła, zlecenie] ma wykonać on).

Zmierzam do tego, że nauczanie tej prostej heurystyki jest nieskończenie lepsze
niż ciągłe wykorzystywanie jej aby pomóc innym. W tym drugim przypadku,
Ci którzy potrafili się przestawić na efektywniejszy tryb myślenia
ponoszą za to karę - jednoczesnie trochę na własne życzenie jeżeli ciągle dają rybę
zamiast wędki.

Podsumowując (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Być może zaoszczędzimy sobie setki godzin jeżeli wyciągniemy wnioski z tych w sumie
oczywistości o których piszę. Jest przyklejony Temat: Najczestsze_bledy
ale po pierwsze założę się, że nie jest czytany, a po drugie nie do końca jest to
to, o co mi teraz chodzi.

Pomysł, który chodzi mi po głowie to coś w rodzaju mini systemu ekspertowego, który
prowadzi za rączkę ludzi mających tego typu problemy.

Inny pomysł, skromniejszy, to efektywne skatalogowanie postów, które były skuteczne
i trochę bardziej nachalne ich prezentowanie przed napisaniem posta w dziale
"przedszkole". Wiecie, "zanim zadasz pytanie sprawdź czy te posty nie rozwiązują Twojego
problemu" i tu posty dobierane na podstawie tytułu i może też treści. I może jakieś
małe przymuszenie do przeczytania ich (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif)

To taka luźna refleksja, ale zastanówcie się ile godzin jest tracone bez sensu. Nie tylko
na tym forum. I że taka umiejętność analizy przydała by się nie tylko na forum php (IMG:http://forum.php.pl/style_emoticons/default/czarodziej.gif)
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Jak to się dzieje, że jeden z każdym problemem leci na forum a drugi potrafi
rozwiązać każdy z tych problemów?

Raczej lenistwo i zaangażowanie... W przypadku tych pierwszych, oczywiście. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Cytat
Wiecie, "zanim zadasz pytanie sprawdź czy te posty nie rozwiązują Twojego
problemu" i tu posty dobierane na podstawie tytułu i może też treści. I może jakieś
małe przymuszenie do przeczytania ich

Pisałem kiedyś o czymś podobnym (też mam podobne refleksje, co Ty): Temat: Odpornosc_na_debilne_pytania_w_Przedszkolu
Go to the top of the page
+Quote Post
Spawnm
post
Post #3





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




i tak nie zmusicie lenia do czytania.
jest szukajka gdzie odpowiedź znajdzie, jest przyklejony temat, jest google ,może nawet jest identyczny temat 4 tematy niżej ...
dodanie kolejnego linka z odpowiedziami wiele nie da jeśli ktoś chce odpowiedź podaną na talerzu .

aby zmusisz leni do szukania/czytania tego co jest , trzeba by zorganizować jakąś akcje typu 'nie pomagamy leniom' (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
i dodatkowo np zamykać bzdetne tematy o utf-8 z informacją znajdź sobie było setki razy (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

to by musiało poskutkować ;]

Ten post edytował Spawnm 18.02.2009, 22:11:14
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
trzeba by zorganizować jakąś akcje typu 'nie pomagamy lenią'

Chyba leniom...

Cytat
to by musiało poskutkować ;]

Nie. Zawsze znajdzie się ktoś łasy na punkty pomógł i się wyłamie...
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Skasowac "pomogl", albo wylaczyc dla tematow od nowych userow (powiedzmy pol roku + iles postow).
Zamkniecie tematu i nie klikniesz pomogl, bo nawet nie bedziesz mial odpowiedzi.
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Skasowac "pomogl"

Albo zmienić zasady, aby przyznawać mogli ci dłużej obecni.
Go to the top of the page
+Quote Post
Foxx
post
Post #7





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


Są dwie drogi - pierwsza zakłada że powodem tego problemu jest lenistwo i
brak zaangażowania. Na pewno tak jest. Zaradzić temu mogą metody
siłowe - ograniczanie możliwości dawania i otrzymywania "pomógł", zmuszanie
do czytania podobnych wątków, etc. To wszystko będzie działać i będzie
więcej spokoju.

Może jestem teraz zbytnim optymistą, ale mi chodziło o drugi aspekt sprawy.
Założenie mam takie, że to co robią ci ludzie to jest tylko pozornie łatwiejsza
droga. Pomyślcie, gdybyście mieli z każdym napotkanym w swojej karierze błędem
w swoim kodzie pisać posta o pomoc - ile czasu by to zajęło, ile stresu by
przysporzyło, oczekiwanie na odpowiedź (najczęściej delikatnie agresywną (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) )
też może potrwać...
Nie robicie tego, bo macie w głowach małe skrypciki, które wam podpowiadają
np. "czytaj ze zrozumieniem komunikat", "znajdź miejsce o którym mówi komunikat",
ostatecznie - "wrzuć komunikat w google".

Drugie założenie jest takie, że forum to nie jest miejsce gdzie zawsze można
znaleźć frajera, który wykona moje zadanie. Najczęściej na zaliczenie przedmiotu.
To raczej miejsce, na którym można znaleźć pomoc gdy standardowe metody zawiodą.
No i tak sobie marzę, że najlepiej by było wtłoczyć wszystkim te standardowe
metody do głów. Jeżeli 5% osób z forum poświęca godzinę tygodniowo na
czytanie i odpowiedzi na takie pytania to miesięcznie tracone jest 6676 godzin
pracy ludzi, którzy mają coś w głowach - jednocześnie ci którzy te godziny
zużywają niczego się nie uczą.

A jeżeli chodzi o konkretne rozwiązania to myślę, że odpowiadanie na te posty
jest tak monotonne i powtarzalne, że można zrobić mechanizm, który tej pracy
zaoszczędzi (hej, jesteśmy programistami).
Mógłby to być jakiś prosty system ekspercki zbudowany na podstawie analizy
archiwum forum.
Inny pomysł: mogły by to być przyklejony temat albo tematy z algorytmami dochodzenia do
rozwiązania na tyle ogólne, że rozwiązywały by podstawowe problemy i można by
tylko odpowiadać linkiem do tych tematów.
Jeszcze inny pomysł: większy poziom ustrukturalizowania pisanego posta, na przykład
okienko 1: opis problemu, okienko 2: podjęte przeze mnie kroki,
okienko 3: komunikaty błędów, etc. - być może samo wypełnianie tego nasunęło by
części osób rozwiązanie.

Wiem, że to problem, na przykład jest kilka takich tematów typu "Najpopularniejsze
problemy" ale nie widzę żeby ludzie byli do nich często odsyłani. Moim zdaniem z
powodu słabej organizacji wiedzy i zbyt dużej konkretności poruszanych w nich problemów.
To na razie takie rozmyślania, ale chodzi mi raczej o pomyślenie o tym pod kątem
automatyzacji działań bo i niektórzy userzy w przedszkolu zachowują się jak boty.
Jestem też ciekaw waszych opinii co do moich pomysłów (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
Go to the top of the page
+Quote Post
Spawnm
post
Post #8





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




W sumie napisanie bota który przeszukuje dodawany właśnie post i jeśli znajdzie w nim podany przez usera warnig ,
automatycznie dopisuje do tematu post z odpowiedzią nie było by trudne ,
zrobić tabelę warning->odp (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #9





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Jest jeszcze jeden problem. Wszystko pięknie, jeśli wiemy o co zapytać. Czasami nie da się łatwo zdefiniować problemu na tyle, aby móc efektywnie znaleźć rozwiązanie.
Przykładem niech będą nieśmiertelne register globals. Ktoś opisuje działanie programu sugerujące osobie bardziej doświadczonej, że właśnie z tym jest problem. Niestety, odpowiedź w stylu "Trzeba było poszukać, bo jest 5 wątków niżej temat zatytułowany 'register globals'" zawiera nieuzasadnioną pretensję. Gdyby ktoś wiedział, że odpowiedzialna jest dyrektywa registe_globals, nie pytałby na forum. Oczywiście przykład jest przejaskrawiony, ale poszukajcie sami - przynajmniej 10-20% "głupich" tematów to po prostu brak umiejętności (lub brak możliwości) sformułowania problemu. Tutaj żadna wyszukiwarka nie pomoże. Lista najczęstszych problemów owszem, ale musi być dobra i w miarę aktualna.

Pozdrawiam
Go to the top of the page
+Quote Post
Zyx
post
Post #10





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

Ostrzeżenie: (0%)
-----


Potwierdzam - gdy widzę wiele tematów, mi osobiście wydają się banalne. Ale gdy uczę się czegoś zupełnie nowego, zdarza mi się siedzieć po parę godzin nad w sumie prostą rzeczą, bo np. nie znałem jakiegoś terminu i nie mogłem przez to znaleźć potrzebnych informacji, choć osobie otrzaskanej wydałoby się to banałem. Oczywiście jeśli na stronie/forum są jasno wypisane najczęściej powtarzane błędy, nic nie zwalnia nowego użytkownika od ich przejrzenia. Czasu nie zmarnuje, może dowiedzieć się czegoś nowego, a może i znaleźć odpowiedź na swój problem. Oczywiście są też pytana z serii "głupich", tj. "czy da się zrobić XXX" albo "czy istnieje funkcja...", gdzie akurat dokumentacja jest na tyle sensownie podzielona tematycznie, że przy odrobinie chęci i znajomości angielskiego każdy może odnaleźć wszystko, co mu jest potrzebne.

Na pewno da się uczyć nowych technologii bez latania z każdą głupotą na forum i znajdować na podstawie archiwów, Google i różnych artykułów rozwiązania nawet dość złożonych problemów związanych mocno z tym, co piszemy. Jednak wcześniej trzeba umieć się tak uczyć i trzeba umieć szukać, a niestety z tym jest różnie. Inaczej podchodzi do nowych zagadnień osoba, która z niejednego peceta krzem jadła, poznała "n" języków, techniki budowy aplikacji, algorytmy itd., a inaczej osoba, która w ogóle swoją przygodę z programowaniem zaczyna od PHP, a wcześniej jej kontakt z komputerem ograniczał się do instalowania wszystkim w okolicy Windowsów i podpinania do nich myszek. Moim zdaniem lepszy skutek od pisania systemu eksperckiego przyniosłoby poprawienie jakości materiałów, kursów i podręczników tak, by uczyły również zaradności, lecz jest to raczej zadanie niewykonalne.

Nawiasem mówiąc takie "systemy eksperckie" działają przy niektórych bugtrackerach, podpowiadając "podobne" raporty o błędach.
Go to the top of the page
+Quote Post
bim2
post
Post #11





Grupa: Zarejestrowani
Postów: 1 873
Pomógł: 152
Dołączył: 9.04.2006
Skąd: Berlin

Ostrzeżenie: (0%)
-----


Narzekacie wszyscy na "pytających". Ja ponarzekam na pomocnych. Często można się spotkać z wątkiem, gdzie jeden user odpowiedział zagadką. Tzn. zobacz to i to, poszukaj o tym i o tym, a znajdziesz odpowiedź, a później ktoś odpisuje z rozwiązaniem problemu (nie ucząc niczego usera) bo chce "pomógł".

Zresztą często odrazu pada odpowiedź (jeśli problem jest banalny) miast podpowiedzi zagadki. To my, ludzie doświadczeni, powinniśmy uczyć innych, a nie ślepo im pomagać.

U kogoś (nie pamiętam u kogo) widziałem w podpisie piękny cytat.
"Daj człowiekowi rybę, a nadal będzie głodny, naucz go łowić, a naje się przez całe życie"

EDIT:
No tak, niezawodny Pan Mike (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował bim2 19.02.2009, 19:58:17
Go to the top of the page
+Quote Post
mike
post
Post #12





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Cytat(bim2 @ 19.02.2009, 19:29:27 ) *
U kogoś (nie pamiętam u kogo) widziałem w podpisie piękny cytat.
Go to the top of the page
+Quote Post
Foxx
post
Post #13





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


Zyx zgadzam się, standardowo rozumiany system ekspercki byłby niewiele lepszy niż dobra dokumentacja, tym bardziej, że w programowaniu i tak trzeba poznać większe połacie wiedzy niż tylko ścieżki rozwiązywania konkretnych problemów.
Ale może system ekspercki na metapoziomie, który nie dotykałby żadnych konkretów, nazw funkcji, itp. ?
Postaram się przeanalizować jakąś ilość postów i sprawdzę czy da się je skategoryzować tak, żeby opłacało się w ogóle myśleć o czymś takim.
Cytat
automatycznie dopisuje do tematu post z odpowiedzią nie było by trudne

Spawnm, tak działa wyszukiwarka ale automatyczne wyświetlanie postów, które były pomocne z innych tematów to ciekawy pomysł.

Ten post edytował Foxx 19.02.2009, 20:57:55
Go to the top of the page
+Quote Post
oscar17
post
Post #14





Grupa: Zarejestrowani
Postów: 102
Pomógł: 22
Dołączył: 3.03.2008

Ostrzeżenie: (0%)
-----


Hmm, a może jakiś wizard rozwiązywania błędów, tzn coś w stylu:

Kod
KROK 1.
   Z czym masz problem
   a) PHP
   b) MySQL
   c) Apache
   d) ...

Kod
KROK2. (zależny od wyboru pierwszego - np. PHP)
1. Problemy z uruchomieniem skryptu
2. Problemy ze zmiennym
3. Problemy z pętlami/operacjami warunkowymi

etc.
Ostatnim krokiem byłyby już konkretne problemy lub linki do konkretnych (dobrze opisanych i rozwiązanych) postów.

Trochę by się trzeba pobawić ze skategoryzowaniem tych problemów, ale po każdym rozwiązanym problemie na forum można by to aktualizować...
Go to the top of the page
+Quote Post
erix
post
Post #15





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie... Uważam, że byłaby to przesada. Użyszkodnik nie lubi, jak musi się zbytnio wysilać albo nie wie, ile kroków na niego czeka.

Poza tym, piszesz:
Kod
2. Problemy ze zmiennym
3. Problemy z pętlami/operacjami warunkowymi

Uważasz, że te nazwy będzie znał kompletny laik, który po prostu nie mógł wcześniej znaleźć odpowiedniego terminu...? Bez przesady - debilne pytania powinny być wyplenione, ale nie można też pójść za bardzo w drugą stronę.
Go to the top of the page
+Quote Post
Foxx
post
Post #16





Grupa: Zarejestrowani
Postów: 896
Pomógł: 76
Dołączył: 15.11.2003
Skąd: Sosnowiec/Kraków

Ostrzeżenie: (0%)
-----


Takie narzędzie musiałoby działać na poziomie objawów raczej niż konkretów. Raczej "dostaję błąd X" niż "problem z połączeniem z bazą danych". Powody wymienił erix ale dodałbym jeszcze to, że mi nie chodziło nigdy o narzędzie, które pozwoli programować ludziom, którzy nie mają podstawowej wiedzy czy robienie jakiegoś kompendium wiedzy, ale raczej o przyspieszenie nabywania pewnych metaumiejętności, które doświadczeni użytkownicy mają, dzięki czemu sami rozwiązują wszystkie syntax errors, etc.
Go to the top of the page
+Quote Post
erix
post
Post #17





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
czy robienie jakiegoś kompendium wiedzy

Ale to już jest - wszak niektórzy zapominają o phpedia.pl

Ja bym obstawiał za funkcją, którą zaproponowałem w zalinkowanym temacie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 20:49