@Foxx
Cytat
1. uczą tego, co w programowaniu najbardziej potrzebne czyli samodzielności w szukaniu informacji
Popieram w 100%
Cytat
2. pisanie gotowych rozwiązań zabiera dużo czasu, nie lepiej w tym czasie zrobić jakiś własny projekt?
3. gotowce przyzwyczajają nowych userów do proszenia o kolejne co marnuje potem czas innych osób na forum
Rozwiązanie jest proste. Nie pisać gotowców. Nie ma przymusu odpowiadania na wszystkie wątki.
Cytat
4. dawanie wskazówek zapewnia nam, że nie jesteśmy frajerami odrabiającymi za kogoś pracę domową
I tu się na chwilkę zatrzymam.
Nie wiem, czy zwróciliście uwagę, ale w dyskusji ciągle przewijają się dwa słowa: "wskazówka" i "gotowiec". I teraz pytanie: jaka jest definicja wskazówki, a jaka gotowca?
I już widzę oczami wyobraźni Wasze odpowiedzi, tak rózne, jak opinie o "Pomógł" wcześniej.
Na przykład:
Mamy usera, pytającego:
"W jaki sposob wyswietlic zawartosc tablicy asocjacyjnej, w której kluczem jest imię dziewczyny, a wartością numer telefonu do niej. Chce, zeby imie i telefon byly jakos wyroznione, np. pogrubione. Potzrebuje bardzo, pliiizzz... Dzieki

"
I teraz:
1. Czy odpowiedź:
"poczytaj php.net/foreach"
jest wskazówką?
2. Czy odpowiedź:
"użyj foreach($tablica as $nazwa_zmiennej => $wartosc_zmiennej) "
jest jeszcze wskazówką, czy już gotowcem?
3. Czy odpowiedź:
"<?php
foreach ($tablica as $zmienna => $wartosc ) echo $zmienna .'=' .$wartosc;
?>"
jest już gotowcem, czy wciąż jeszcze wskazówką?
4. Czy odpowiedź:
"<?php
foreach ($numery_telefonow as $imie_dziewczyny => $numer_telefonu_do_niej) {
echo '<p><b>'.$imie_dziewczyny.'</b><p> ma numer telefonu: <b>'.$numer_telefonu_do_niej.'</b></p>';
}
?>"
to ewidentny gotowiec ?
I teraz: część z Was ukamieniuje kogoś, kto da odpowiedź 3, uznając, że dał gotowca. Ale on nie dał. Gotowiec to coś zbliżonego do odp. 4 (według mnie), bo przy odp. 3 koleś będzie musiał jeszcze pogłówkować nad boldem. Ten ktoś nie uzna tego za gotowca, bo dla niego ewidentny gotowiec to odp. 4. A jeszcze dla innych odp. 2 to już gotowiec. Dla niego, fakt. Ale dla pytającego i kilku mniej doświadczonych programistów, którzy jednak nie lecą na forum z byle pierdołą, jednak nie, bo podaje jedynie ogólny zarys foreach i idei jego zastosowania dla tablic asocjacyjnych. Więc do gotowca mu daleko.
Wielu z nas wystarczy odpowiedź 1. Wiadomo, php to język z tysiącem i jedną funkcją i żaden z Was nie zetknął się z nimi wszystkimi w praktyce. Powiedzmy, że mam problem z jakimś algorytmem. Rzeźbię 3 godziny, po czym decyduję się zadać pytanie na forum, czy ktoś już coś takiego robił i czy może mnie jakoś naprowadzić. I dostaję odp. 1, z linkiem do dokumentacji odpowiedniej f-cji na php.net. Okazuje się, że to jest to - 10 linijek kodu można zastąpić jedną funkcją. Szczęśliwy klikam temu komuś "Pomógł".
I teraz clou programu: dla mnie to jest gotowiec: php.net/funkcja_ktora_robi_to_co_ja_probowalem_napisac_sam - bo MNIE to wystarczy jako rozwiązanie problemu. I teraz widze taką samą sytuację w czyimś poście. I walę do moderatora, że taki Kefirek właśnie "dał gotowca" i zabrać mu "Pomógł", bo jestem święcie oburzony, jak on śmiał.
A połowa forumowiczów nawet wchodząc pod podany link i widząc dokumentację tej funkcji nawet by nie wiedziała, jak się zabrać do jej zastosowania. Więc ponawiam pytanie: zdefiniujcie proszę pojęcia "gotowiec" i "wskazówka".
Proszę też, byście zwrócili uwagę na odp. 4: czy naprawdę podanie takiego kodu można potraktować jako gotowiec? Przecież ta pętla to tylko FRAGMENT innego, bardziej złożonego kodu, punkt, w którym koleś się zaciął i potrzebował pomocy. Więć napisał posta na php.pl. Uznał za naturalne, że na takim forum dostanie odpowiedź.
Jeszcze jeden aspekt sprawy: koleś mógł znać składnię foreach(), wiedział, co to tablica, ale mógł nie wiedzieć, że jest różnica między tablicą indeksowaną a asocjacyjną i próbował wyświetlić te numery telefonów np. tak:
foreach($tablica as $numer) { ... }
co oczywiście nie miało prawa zadziałać.
Gotowiec wg. mnie, to byłby wtedy, gdy koleś prosi o napisanie CAŁEJ aplikacji do wyswietlania tych numerów. I ktoś mu wkleja całą, gotową aplikację, łącznie z mozliwością edycji numerów, dodawania/usuwania, dodawania komentarzy "zaliczona", "do zaliczenia", "nie zaliczam, bo brzydka"

Trochę odbiegłem od tematu "Pomógł". Przychylałbym się do opinii niektórych z Was, że faktycznie punkty "Pomógł" wprowadzają niezdrową atmosferę i prowokują takie dyskusje, jak ta. Ale generalnie - żadnych konsekwencji, zarówno pozytywnych, jak i negatywnych, też z ich powodu nie ma.
Cytat
5. argument z userem, który 'jest szewcem ale akurat raz w życiu musiał zrobić formularz logowania' jest słaby. Jak ktoś nie jest programistą to niech zleca albo pisze w dziale oferty/wolontariat.
Tu się całkowicie nie zgadzam. Nie dzielmy ludzi na programistów i nie-programistów. Weź pod uwagę, że programowanie w PHP może być hobby tego szewca i postawił sobie za punkt honoru stworzyć własny serwis internetowy moje-buty.pl. To jak z samochodami - jesteś programistą, ale lubisz od czasu do czasu podłubać przy samochodzie (piszę na swoim przykładzie teraz). No i teraz mam problem z przednimi hamulcami: chcę wymienić klocki i tarcze, ale prawa tarcza zapiekła się na piaście i nie mogę za cholerę jej ściągnąć. Powiedzmy, że robię to pierwszy raz (w rzeczywistości robiłem to wiele razy, bo kiedyś pracowałem w warsztacie samochodowym i takie rzeczy to raczej taki foreach()

). No to zakłądam koło z powrotem, wracam do domu, wchodzę na jakieś forum motoryzacyjne i zadaję uprzejme pytanie - jak ściągnąć tarczę, która zapiekła się na piaście?
I odpowiada taki jeden z drugim "wróg gotowców": "Nie znasz się, jedź do warsztatu" albo: "Weż młota i przyp...l" albo daje linka do portalu, na którym podane jest, jak przy pomocy profesjonalnego ściągacza taką tarczę zdjąć. Super.
Po czym trafia się rodzynek i pisze: "Opukaj tarczę dookoła w miejscu, w którym wchodzi na piastę, żeby ją nieco 'rozruszać', następnie spróbuj pukając w nią od wewnętrznej strony, naprzemiennie góra-dół, lewo-prawo zmusić ją do zsunięcia się z piasty. Powtarzaj te czynności aż do momentu, w którym tarcza 'odpuści' i da się zdjąć. Następnie dokładnie oczyść piastę z rdzy i posmaruj smarem miedzianym przed założeniem nowej tarczy, co uchroni cię przed podobnymi problemami w przyszłości."
Gotowiec? No gotowiec. I co? Dam mu "Pomógł". A on na swoim forum będzie robił za "zbieracza punktów pomógł", dostanie warna od moderatora, że tak się nie robi, że raczej powinien mnie naprowadzić, dać wskazówkę (jaką ? użyj młotka i puknij, a gdzie, domyśl się sam ? )i żeby tak więcej nie robił, bo to nieładnie i ja się niczego nie nauczę.
Cytat
Jak jest to niech się uczy. A jak jest uczniem/studentem, który ma pracę domową to niech się tym bardziej uczy
No tu akurat racja.
Cytat
7. jeżeli będziemy dawali gotowce to co prawda zniszczymy tych, którzy mogli by kiedyś być dla nas konkurencją ale z drugiej strony brak konkurencji nie jest dobry.
Tej prawdziwej konkurencji nie zniszczysz, nie bój żaby. A ktoś, kto nie ma pojęcia o programowaniu, to czy mu dasz gotowca, wskazówkę, czy inne uwagi, przypisy, linki, tutoriale czy co tam jeszcze i tak nigdy się dla Ciebie konkurencją nie stanie. Chirurgiem też nie zostaniesz, nawet jak ktoś Cię za rączkę poprowadzi przez cały proces operacji usunięcia wyrostka robaczkowego.
Bo do tego, żeby być dobrym (programistą / chirurgiem / mechanikiem ) nie wystarczy umiejętność przeprowadzenia operacji ( napisania foreach() dla jednej tablicy /usuniecia wyrostka / wymiany tarcz i klocków ) . Trzeba mieć "to coś", wiedzę o budowie i zasadach funkcjonowania ( programista - komputera i programów komputerowych / lekarz - ludzkiego ciała i jego fizjologii / mechanik - samochodu, jego podzespołów ) oraz szeroko rozumianą wiedze ogólną w danej dziedzinie (programista - systemy liczbowe, algorytmy, struktury danych itp. / lekarz - farmacja, biologia, chemia itp. / mechanik - mechanika ogólna, rysunek techniczny, fizyka, materiałoznawstwo) - a tego nie nauczysz dając jednego gotowca czy coś do niego zbliżonego.
Ja to widzę tak: pomagajmy, tak, jak każdy uzna za słuszne według siebie. I niech każdy decyduje o rodzaju tej pomocy samodzielnie. Nie narzucajmy sobie nawzajem, jak ta pomoc ma wyglądać, bo nigdy tak naprawdę nie wiecie, co i w jakim stopniu dla kogoś jest pomocą, bo żaden z Was nie jest Wyrocznią.
A punkty "Pomógł" zlikwidować, a w zamian wprowadzić inny system: oznaczanie postów, w których pojawiło się PRAWIDŁOWE rozwiązanie, oznaczać np. na zielono + tag [SOLVED], ale tak jednoznacznie, żeby było wiadomo, że faktycznie tak oznaczony post rozwiązuje dany problem w 100%. Tylko takie. Bez wskazywania konkretnej osoby. Z reguły i tak wygląda to w ten sposób, że jest pytanie, potem jedna-dwie odpowiedzi "naprowadzające" (typu: "pokaż błędy ", "daj więcej kodu"), po czym kolejna to już właściwe rozwiązanie.
I na przykład dodać do wyszukiwarki opcję "Szukaj tylko w rozwiązanych/zakończonych" czy jakoś tak (checkbox czy tam inny ptaszek).
No, to tyle.