Wpis z mikrobloga

Właśnie czytam "Learn Python The Hard Way" i rakłem

1. Do not use a "debugger." A debugger is like doing a full-body scan on a sick person. You do not get any specific useful information, and you find a whole lot of information that doesn't help and is just confusing.

2. The best way to debug a program is to use print to print out the values of variables at points in the program to see where they go wrong.


#programowanie #python #rakcontent
  • 41
@Existanza: też ostatnio rzuciłem okiem na LPTHW i też mnie to odrzuciło trochę. Ale to chyba jeden z lepszych kursów Pythona. Ja jeszcze nie zacząłem na dobre, do końca września chcę ogarnąć podstawy, ale wydaje mi się, że niektóre rzeczy trzeba, opierając się na mirkodoświadczeniu, olać i robić swoje, a różnice między wersją 2 i 3 można ogarnąć w dokumentacji i pisac od razu w 3. Jednak jestem noobem, trochę tylko
Wołam @katarzynkaN oraz osoby, które zaplusowały jej wpis... bo nie zdzierżę...

przecież ta książka jest dla ludzi, którzy ogarniają podstawy podstaw. Ta rada ma w tym momencie sens, bo dzięki temu widać, co i w jakim momencie się wysypuje. Pomaga zrozumieć kod i jego działanie...


Nie emocjonując się za bardzo, postaram Ci się wytłumaczyć, dlaczego takie myślenie jest błedne.

"debugowanie printfami" jest jak mycie rąk piaskiem. Niby się da, ale żyjemy przecież
@noisy: Na pewno masz rację, w idealnych warunkach najlepiej uczyć się od razu prawidłowych nawyków. Ale na początek, jeśli chcę trafić do sklepu trzy ulice dalej, pytanie o drogę nie jest chyba takie tragiczne...?
Wołam @katarzynkaN oraz osoby, które zaplusowały jej wpis... bo nie zdzierżę...


@noisy: oj nie przesadzaj. W pewnych przypadkach szybciej jest wpisać printa niż odpalić debugger jeśli znasz swój kod i wiesz co spierdzieliłeś. A czasem poznanie wartości zmiennej wystarczy do poprawy kodu. No i masz też czasem sytuacje typu: aplikacja się zakończyła — więc i tak musisz ją odpalić od nowa. Czy zrobisz jednego printa, czy odpalisz debugger — żadna to
@noisy:

1. Zacznę od tego, że nie kwestionowałam użycia debugera. Wcale a wcale. Podkreślam jedynie, że printowanie krok po kroku pozwala wyłapać błędy w prostym kodzie oraz pomaga zrozumieć ten kod osobom, które się uczą. I zdania tutaj nie zmienię. Nauka w pierwszych dniach/tygodniach to bardziej nauka odpowiedniego sposobu myślenia, zwłaszcza jeśli to twój pierwszy język programowania.
Czemu na tapetę nie weźmiemy książki do matematyki dla pierwszej klasy podstawówki i nie
@noisy: nie uwierzę że tak od razu zacząłeś używać debuggera, też jestem programistą i wiem że bez tego w późniejszym etapie ani rusz. Ale jak ktoś zaczyna programować i zobaczy jak działają niektóre debuggery to zniechęci się od razu, bo jak to tak wolno, bo jak to tyle informacji na raz, a gdzie wiadomość: "tu jest błąd". Więc nie bądź już taki pro i nie mów początkującym, że tylko debbugger, tylko
@noisy: LPTHW nie jest dla tych, co już mają pojęcie o programowaniu. Ono jest dla takich początkujących, którzy może wczoraj uświadomili, że człowiek śmiertelny też potrafi zaprogramować komputer. To raz.

Drugie. Póki sam nie rozumiesz zasad działania kodu, flow control, te inne rzeczy, póki nie masz minimalnie działającego debuggera w swojej głowie, który ci umożliwia zrozumienie, co i jak robi prosty kawałek kodu bez odpalania go, realny debugger na guzik ci
@g4rin: @Jafd

@noisy: nie uwierzę że tak od razu zacząłeś używać debuggera, też jestem programistą i wiem że bez tego w późniejszym etapie ani rusz.


Jak Boga kocham było dokładnie tak! Pierwsze zajęcia z kółka informatycznego, Pan Mruzek (swoją drogą nauczyciel Chemii, nie informatyki) oznajmia wszystkim, że będziemy programować. P-R-O-G-R-A-M-O-W-A-Ć.... my w szoku. Dostaliśmy wtedy polecenie, by włączyć monitory i okazło się, że każdy z nas miał już włączony Borland
Pobierz noisy - @g4rin: @Jafd
 @noisy: nie uwierzę że tak od razu zacząłeś używać debuggera, ...
źródło: comment_KN4EV4NqOSjeO8lfT52mV61O7cx2piPQ.jpg
To właśnie debuffer uczy Cię tego jak działa "flow control". Widziałem ludzi, którzy skupiali się na zapamiętaniu różnicy pomiędzy pętlą while, oraz do-while w C++, oraz te, które jak zapominały czy aby na pewno używają właściwej, po prostu debugowały i sprawdzały dokładnie, czy jest tak jak powinno.


@noisy: Coś ty. Każdego razy sprawdzali w debuggerze? Czyżby cierpiali na demencję młodzieńczą? To jak grać z nut i każdego razu sprawdzać w podręczniku,
@noisy: do tego dodam, że nauczyłem się różnicy pomiędzy while a do...while bez użycia debuggera. Świetnie sobie poradziłem, a jestem człowiekiem przeciętnym, więc twój FAIL.