• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Moja wizja "gotowców"

+13 głosów
873 wizyt
pytanie zadane 9 kwietnia 2016 w Sprawy forum przez event15 Szeryf (93,790 p.)

Widzę, że są pewne osoby, które nie rozumieją mojego punktu widzenia odnośnie podawania na tacy rozwiązań. Postanawiam wyjaśnić to w jednym poście. 

http://forum.pasja-informatyki.pl/127125/wspolrzedne-podzial-bloki-obliczyc-bloku-majac-dyspozycji-tylko-wspolrzedne-miasta#c127208 

W tym temacie Patrycjerz miał rację - pomyliłem się, ponieważ punkt był o "proszeniu o gotowca" a nie dawaniu gotowca. W regulaminie jest mowa wyłącznie o pierwszym i tam zrobiłem błąd. Chciałem na wstępie sprostować. 

Teraz chciałbym przejść do sedna. Wiecie że jestem jednym z największych przeciwników gotowców wszelkiej maści na forum. Nie bierze się to znikąd i ma swoje uzasadnienie - w mojej reprezentacji rzeczywistości. 

Zamiast dać rybę, lepiej dać wędkę

Powtarzam te słowa za każdym razem niczym mantrę i robię to czasem humorystycznie, czasem poważnie, a czasami ze zbyt dużymi nerwami. Słowa te są na pewno od czasów tworzenia Biblii znane każdemu wierzącemu (niewierzącym również). Nie głoszę czegoś, co jest nieznane i wymyślone w moim umyśle. Skoro jest to tak znana prawda od wieluset lat to musi być w niej chociażby cząstka czagoś dotykającego sedna problemu.

Niektórzy chyba w dzisiejszych czasach utracili pewną zdolność analizowania chociażby krótkiego zdania (o czym świadczą coroczne wyniki matur i systematyczne obniżanie jakości oraz wedle zasady promowanej przez MEN "równanie w dół" aby każdy mógł mieć maturę).

Skoro o szkole jest mowa to już mam pierwszy przykład, który wskazuje skalę tego, o czym mówię. W klasie jest jedna osoba, która jest sumienna, odrabia swoje prace domowe, systematycznie uzupełnia notatki i dobrze się uczy. Zachowaniem uczniów, którzy czują się "bardziej zajęci" innymi sprawami - pasją, grami, egzystowaniem - najczęsciej jest proste "daj spisać". Osobiście nie spotkałem się jeszcze z "wytłumacz mi to i sprawdź, czy dobrze robię". Możecie mi wmawiać, ale nie uwierzę, że taka osoba która żyła ze spisywania od sumienniejszych od siebie osiągnęła w życiu sukces miary Billa Gates'a, Steva Jobsa, Henrego Forda, Bella, Tesli, Newtona, Einsteina czy chociażby ludzi, którzy dziś są dyrektorami firemek firm i korporacji, Wszystkie te osoby mają pewne cechy, które doprowadzają je do takiego stanu rzeczy. Wyobrażasz sobie szefa firmy, który prosi innego szefa o zrobienie czegoś za niego? Wyobrażasz sobie, żeby Newton prosił kogoś o rozwiązanie równań różniczkowych (których ówcześnie nie było, więc nazwał je fluksjami). 

Takie zachowanie widać również w Internecie - ludzie przychodzą tu, chcą jak najszybciej otrzymać odpowiedź (dlatego wybierają fora wg idoli, ilości użytkowników i bez udziwnień z regulaminem). Nikomu tego nie bronię. Ale jestem przeciwnikiem zachowania na wzór: "Hej nie działa mi cout w programie, napiszcie mi kod obliczania równań kwadratowych". Takie zachowanie dotyka sedna - człowiek piszący takie pytanie przekazuje kilka informacji. 

  • Wie, czym jest programowanie
  • wie, że można za jego pomocą rozwiązywać problemy
  • napisał niedziałającą instrukcję echo
  • jego celem jest napisanie programu do rozwiązywania układów równań
  • nie zrobił tego
  • nie ma informacji o próbach, ile trwały, jak wyglądały, w czym się program zawiesza i tak dalej
  • wymaga od użytkowników wklejenia działającego kodu

Może znajdzie się coś jeszcze, jednak i tak już wystarczająco dużo wiadomo. Tak sformułowane pytanie jest przykładem tego, w jaki sposób świat dziś funkcjonuje. Jest problem, znajdę kogoś kto umie go rozwiązać. Gdyby patrzeć nieco w bok - w Norwegii rowery leżą przy ulicach w rowach bo dynamo się zepsuło, bo linka hamulcowa pusciła. Znam przypadek, w którym kobiecie telewizor spadł z półki i obudowa pękła (pilotem nie można przełączać kanałów) i oddała 50 cali chłopakowi, który podłączył pilot z anteną przez usb. Można też sterować przez sieć - jak kto woli. W końcu to też są rozwiązania problemów chociaż to jest zupełnie inny poziom, na oddzielną dyskusję. Ot taka dygresja. 

Pytanie wyglądałoby zupełnie inaczej, gdyby użytkownik opisał swój problem dokładnie, czyli:

  • napisałby jakiego języka dotyczy
  • w której linii debugger/konsola pokazuje błąd
  • podałby tę linię z najbliższymi do niej. 
  • opisał, w jaki sposób chciał to rozwiązać
  • opisał, w jaki sposób chciał naprawić błąd
  • opisał, że szukał w tym tym i tamtym miejscu zanim napisał
  • poinformował o użyciu wyszukiwarki

Nie są to trudne czynności do wykonania a znacząco wpływają na jakość reakcji i odpowiedzi jaką otrzyma. Takiej osobie z miejsca chce się pomóc, tym bardziej jeśli problem jest ciekawy. Innym wątkiem sa notorycznie powtarzane pytania i nieumiejętność wyszukiwania informacji.

Ja piętnuję takie pytania - jeśli ktoś ma problem, to właśnie on powinien się postarać żeby ludzie chcieli mu pomóc. Powinien tak postawić pytanie, aby z miejsca było wiadomo, że nie wygladało to tak, że zobaczył problem w konsoli i w sekunde powstało pytanie na forum w takiej formie. Nie tędy droga i teraz czas na drugą stronę medalu. 

 

Osoba, która odpowie "gotowcem" na takie pytanie, z mojego punktu widzenia bardzo źle życzy autorowi pytania. Odpowiedzenie gotowym kodem bez wyjaśnienia rzeczy w nim zawartych i uznanie, że  "w kodzie wszystko jest, resztę się sam domyśli" jest błędnie postawioną tezą. Chociażby dlatego, że osoba taka po prostu wklei ten kod, zobaczy, że działa i zacznie pisać inny program zbyt wiele nie zastanawiając się nad otrzymanym rozwiązaniem ponieważ w jego głowie jest kolejny pomysł, może kolejny problem. Jeszcze inną sprawą jest to, że nie jesteście jedyni na forum, a użytkowników przybywa. Wklepanie działającego kodu bez wyjaśnienia każdego znaku w nim występującego powoduje, że kolejne osoby szukając rozwiązania danego problemu (to się chyba nigdy nie dzieje) dostaną taką odpowiedź i również wklepią bez głębszego rozumowania. 

Mówiąc językiem Mirosława - w takiej pomocy jest tylko zastosowanie i ewentualnie wiedza. Brak jest analizy, syntezy i zrozumienia. I to w tym polega problem. Stąd przecież pojawiło się "pokolenie stackoverflow". A juniorów w pracy nazywa się koparkami, bo dokopią się do najgłębszych zasobów SO zamiast pomyśleć i samemu coś stworzyć. Ja rozumiem, że dla takich gagatków jest również miejsce na świecie. Jednak wizja tego świata, z rosnącym i to prężnie światkiem tego pokroju jest przerażająca. 

Dorion300 napisał, że uczył się właśnie na gotowcach i zrozumiał jak piszą inni. Ja się zastanawiam (w sumie to też nie wiem na jakim poziomie jesteś), czy wzorce projektowe, wzorce architektoniczne są gotowcem? Ale zaraz, wcale nie muszę jakoś głęboko się zastanawiać, Alexander w publikacji o wzorcach w architekturze zdefiniował o co mu chodziło z tymi wzorcami. Tak samo banda czworga jak jeden mąż definiują w świecie programowania to, czym są wzorce. Są to szablony możliwe do wykorzystania w momencie zetknięcia się z pewnym problemem. Nie można ich uznawać za gotowe rozwiązanie problemu, ponieważ każdy problem posiada swoją naturę, specyfikę i złożoność. Jednak wzorce pomagają w pewien sposób opanować tą złożoność a zasady programowania ograniczają się do podpowiadania w jaki sposób najlepiej zmodyfikować swój kod, aby stał się czytelniejszy dla innych (i siebie, bo 60% czasu pracy to czytanie własnego kodu). Jeżeli takie coś zdefiniowałeś jako "gotowiec" na którym się uczyłeś - to moim zdaniem nie zrozumiałeś mojej wizji gotowców. Stąd również powstanie tego postu. 

Stąd też utworzyłem temat o zasadach pomocy z zadaniami ze spoja. Programowanie to świetna zabawa, i powinno się każdy kod traktować tak, jak ten który będzie "dla spoja". Samodzielne rozwiązanie problemu daje najwięcej satysfakcji i zabiera najwięcej czasu. Otrzymanie gotowca zabiera najmniej czasu i nie daje żadnej satysfakcji. To jest jak granie na kodach, cheatowanie w programowaniu. Nikt nie lubi cheaterów - no może generalizuję, ale włącz mody gdy grasz zespołowo w csa ;).

Odpowiadajacy powinien się dwa razy zastanowić, zanim wyśle gotowy kod bez wyjaśnień - w przyszłości będzie widziany. Ktoś będzie czytać ten kod. Jeśli będzie on posiadać dziwne zachowania a nie będą one wyjaśnione w poście to nie powinien być to post, z którego jest się dumnym. Niektórzy młodzi tu wstawiali kod całego tictactoe w odpowiedzi na proste pytanie odnośnie logiki działania checkera. Taka osoba myśli, że jest pro, bo rozwiązała cały problem samodzielnie i wkleiła taki kod pod jakimkolwiek pytaniem odnośnie tej gry. Dostanie prawdopodobnie "naj". 

Nie o to w tym wszystkim chodzi. Jest postawiona teza, że forum ma pomagać wszystkim, którzy maja problemy związane z programowaniem. Jednak widzę, że niektórzy jako pomoc widzą również jej patologiczne skrzywienie. 

Każdy tu chętnie pomaga, jednak dobrze by było gdyby ta pomoc była jednoznacznie określona. Nikt nikogo nie wygoni za to, że czegoś nie rozumie czy nie potrafi zrobić. Najlepiej gdy ta osoba po prostu pokaże, że coś zrobiła żeby samodzielnie spróbować rozwiązać ten problem. A rozwiązanie tego problemu przez odpowiadającego niepowinno być gotowym rozwiązaniem do przeklepania, tylko w taki sposób, jak chociażby Comandeer to robi. Namęczy się, nawypisuje, w razie wątpliwości przejrzy dokumentację, prześle linki rozszerzające wiedzę. To jest rozwiązanie problemu. Zadający pytanie powinien wtedy przejrzeć te wszystkie linki, oczytać się na dany temat i byłoby po problemie. Takie rozwiązanie problemu powoduje że wszyscy zyskują. Comandeer utrwala swoją wiedzę, przypomina sobie rzeczy o których nie pamiętał, może czegoś nowego się uczy lub odkrywa że dokumentacja została znowu zmieniona. Zadający pytanie dostaje gotowy pakiet rzeczy do przejrzenia, uczy się nowych rzeczy, utrwala je i próbuje zastosować do rozwiązania problemu. Osoby zaglądające później do wątku robią to samo i również są zadowoleni z rozwiązania problemu. 

Ktoś inny odpowiada gotowym kodem, który działa - ale opisuje każdą linię, opisuje algorytm rozwiązania problemu, opisuje na czym polegał problem. Takie rozwiązanie też powoduje, że każdy jest w pozycji wygranego. 

Moim zdaniem każda inna odpowiedź jest podaniem rybki - nie daje się możliwości przejrzenia wartościowych źródeł, przeanalizowania kodu innych osób i ich problemów. Nie wiadomo na przyszłość gdzie szukać rozwiązania (poza forum). Taki obrazek nie jest przyjemny.

Zapraszam do dyskusji - chociaż w sumie wszystko co chciałem to powiedziałem.

3 odpowiedzi

0 głosów
odpowiedź 9 kwietnia 2016 przez Dorion300 Szeryf (90,250 p.)

Dorion300 napisał, że uczył się właśnie na gotowcach i zrozumiał jak piszą inni. Ja się zastanawiam (w sumie to też nie wiem na jakim poziomie jesteś), czy wzorce projektowe, wzorce architektoniczne są gotowcem?

Wiem że gotowiec to nie wzorzec, aż taki spaczony nie jestem.

Nauka moja wygląda mniej więcej tak: "Tak wygląda program w (np. C#) bez komentarzy i tak dalej, ale działa, trzymaj o to kod i się naucz", bez żadnych tutoriali, i tak dalej,   tak samo wygląda nauka jeśli chodzi o zastosowywanie wzorców do swoich projektów, może i ta nauka jest bardziej długa i monotonna, ale o wiele bardziej to utrwala w pamięci i daje sporo to myślenia. np. Ostatnio czytam sobie kod C# w https://github.com/dotnet . Ciekawe rzeczy się dowiedziałem których nie znałem.

Pewnie powiedzie że to jest "spaczony" sposób nauki i tak nie powinno się robić po psujesz swoją mózgownicę czy tam spaczysz siebie, ale wolę tak niż uczyć się z tutoriali.

O jak i wolę skoczyć od razu na głęboką wodę, po widzę już dno i całą drogę którą muszę jeszcze raz przebyć niż pływać i powoli zanurzać i myśleć "kiedy dno?" i straszyć się nowościami podczas nauki. (I sama ta nauka jest o wiele ciekawsza niż nauka z tutoriali)

O taką mi chodzi naukę - gotowce, przykłady, dokumentacja. (+ cel)

Jest postawiona teza, że forum ma pomagać wszystkim, którzy maja problemy związane z programowaniem. Jednak widzę, że niektórzy jako pomoc widzą również jej patologiczne skrzywienie.

Bez obrazy ale: pomoc można wyrażać na bardzo wiele sposobów, według ciebie część tych sposobów to "patologia" "chaos" i "skrzywienie".

Racja, są tacy ludzie którzy oczekują gotowców, ale w sumie to oni układają sobie życie, przecież forum nie jest w układaniu komuś życia a pomaganiu w programowaniu, nawet tym ludziom którzy tylko w jednym głowie.

Lek? ignorować to, no, może nie do końca po pytania typu "a wkleje sobie zdjęcie z zadaniem i zapytaniem: czy ktoś to za mnie zrobi" raczej warto przenosić do jakiegoś "DarkSiteForum" gdzie nikt nie widzi tego pytania, że aż trzeba specjalnie wejść do tego "kategorii" aby to zobaczyć, i w sumie to wcale nie jest głupi pomysł, osoba która chce gotowca, uzyska od osoby która naprawdę chce mu dać gotowca, ale po ukrytej stronie forum gdzie mało kto tam zwraca uwagi. (forum ukryje się przed widocznym spamem typu "dajcie mi gotowca".

Lepsze to niż kasować te "okrutne dla oczu" pytania i (moim zdaniem) psuć reputację forum.

Ale to tylko moja opinia.

Pozdrawiam.

0 głosów
odpowiedź 9 kwietnia 2016 przez Tom_Ja Dyskutant (7,970 p.)

Niektórzy chyba w dzisiejszych czasach utracili pewną zdolność analizowania chociażby krótkiego zdania (o czym świadczą coroczne wyniki matur i systematyczne obniżanie jakości oraz wedle zasady promowanej przez MEN "równanie w dół" aby każdy mógł mieć maturę).

Rozwiniesz swoją wypowiedź? Chodzi mi o to, że podobno corocznie matury z matmy są coraz trudniejsze, ich poziom był niedawno podnoszony.

1
komentarz 9 kwietnia 2016 przez event15 Szeryf (93,790 p.)
Oczywiście, że rozumiem. Opinię o tym, że poziom idzie w górę są zwykle typowane przez osoby bezpośrednio związane z maturami.

To, że wprowadzili jakieś proste pochodne w matematyce rozszerzonej, to nie jest wielkie utrudnienie. Rok lub dwa lata temu, gdy zmieniały się przepisy odnośnie matur czytałem cały dokument odnośnie nowego programu. Już na wstępie minister edukacji chwalił się tym, iż pragnie osiągnąć jak najwyższą zdawalność a to, co pomoże mu w tym to równanie poziomu dla uczniów słabszych - czyli by 30% nie było trudnym zadaniem.
0 głosów
odpowiedź 9 kwietnia 2016 przez Boshi VIP (100,240 p.)

Skoro o szkole jest mowa to już mam pierwszy przykład, który wskazuje skalę tego, o czym mówię. W klasie jest jedna osoba, która jest sumienna, odrabia swoje prace domowe, systematycznie uzupełnia notatki i dobrze się uczy. Zachowaniem uczniów, którzy czują się "bardziej zajęci" innymi sprawami - pasją, grami, egzystowaniem - najczęsciej jest proste "daj spisać". Osobiście nie spotkałem się jeszcze z "wytłumacz mi to i sprawdź, czy dobrze robię". Możecie mi wmawiać, ale nie uwierzę, że taka osoba która żyła ze spisywania od sumienniejszych od siebie osiągnęła w życiu sukces miary Billa Gates'a, Steva Jobsa, Henrego Forda, Bella, Tesli, Newtona, Einsteina czy chociażby ludzi, którzy dziś są dyrektorami firemek firm i korporacji, Wszystkie te osoby mają pewne cechy, które doprowadzają je do takiego stanu rzeczy. Wyobrażasz sobie szefa firmy, który prosi innego szefa o zrobienie czegoś za niego? Wyobrażasz sobie, żeby Newton prosił kogoś o rozwiązanie równań różniczkowych (których ówcześnie nie było, więc nazwał je fluksjami).

 Przejdź się kiedyś na studia i zobacz jak wygląda plan studenta informatyki... 70%  zapychaczy, 30 % czegoś co cię interesuje. Serio uważasz, że każdy ma cheć rozumieć na przykład jakieś pojebane skrypty w bashu konfigurujące na nowo apacha?  jeżeli ktoś to ma to biorę i tyle, reszta mnie mało obchodzi.. jak bym miał uczyć się wszystkiego co  mam na studiach to bym dawno zrezygnował...

 

1
komentarz 9 kwietnia 2016 przez event15 Szeryf (93,790 p.)
Boshi, studiowałem - przestałem i pracuję ;)

I w pracy muszę mieć wiedzę z basha, apache (i chociażby apache kafki), redisa, rabbitamq w zależności od projektu. Do tego LUA teraz mi doszło. Na studia się idzie moim zdaniem po to by uzupełnić swoje umiejętności o papier, ale na pewno nie po to, żeby nauczyć się czegoś na wykładach. Trzeba umieć selekcjonować przydatną wiedzę, której jest tak ogromna masa, że ciężko jest to ogarnąć.

Poza tym studia się nakierunkowane - mają jedynie część ogólnych przedmiotów. Gizmazjum i licea zwykle są ogólne i nie mają specjalizacji więc człowiek musi się uczyć w teorii wszystkiego, co jest dla niego nieciekawe.  Inna kwestia, że z tego można zrobić dobry biznes, co jest moim zdaniem dobrym powodem. Już nie dla samej kasy czy wiedzy - człowiek w ten sposób uczy się organizować swój czas pracy i rozrywki, w końcu takie zasoby trzeba jakoś systematyzować a to wymaga pracy. Skoro mowa o pracy to warto tez na tym zarobić ;)

Podobne pytania

+1 głos
3 odpowiedzi 480 wizyt
pytanie zadane 2 maja 2015 w JavaScript przez tomaszp1997 Nowicjusz (200 p.)
+6 głosów
9 odpowiedzi 835 wizyt
pytanie zadane 9 kwietnia 2015 w Offtop przez krecik1334 Maniak (58,390 p.)
0 głosów
2 odpowiedzi 1,013 wizyt
pytanie zadane 7 stycznia 2017 w C i C++ przez pokrywa1 Użytkownik (990 p.)

93,740 zapytań

142,675 odpowiedzi

323,294 komentarzy

63,319 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...