Blog IT, Blog Marketing

Jak pisać dobre przykłady

Jak pisać dobre przykłady

Marcin Sarna , 07.08.2021 r.

Ucząc innych warto posługiwać się rzeczywistym kodem z prawdziwego życia - a niewymyślonymi problemami.

Korzystajmy z naszych doświadczeń zamiast wymyślać koło na nowo

Niektórzy z naszych czytelników piszą o programowaniu, czy to na swoich blogach czy w pracy i z pewnością spędzają dużo czasu próbując znaleźć dobre przykłady. Podstawową wskazówką po jaką można tutaj sięgnąć jest rozpoczęcie od prawdziwego kodu, który kiedyś napisałeś czy napotkałeś. Usuwamy z niego wszystkie nieistotne szczegóły, aby uniknąć zbędnego zaciemniania tego co chcemy przekazać. Et voilà: mamy praktyczny przykład zamiast wymyślonego znikąd.

Przykład rzeczywisty

Aby zobaczyć dlaczego przykłady powinny być realistyczne, porozmawiajmy najpierw o nierealistycznym przykładzie. Powiedzmy, że próbujemy wyjaśnić lambdy Pythona. Możemy podać przykład użycia map i lambda do podwojenia zbioru liczb.

liczby = [1, 2, 3, 4]
wynik = map(lambda x: x * x, liczby)

Ten przykład jest nierealny z kilku powodów:

  • zwykłe podnoszenie do kwadratu zestawu liczb nie jest czymś co tak naprawdę będziemy kiedykolwiek robili w prawdziwym programie;
  • To użycie map nie jest czymś co w Pythonie byś zrobił, prędzej przecież napisalibyśmy [x*x dla x in liczby].

Bardziej realistycznym przykładem na użycie lambd w Pythonie byłoby użycie ich z sortowaniem, tak jak to:

dziecko = [{"imie": "marek", "wiek": 10}, {"imie": "justysia", "wiek": 4}]
posortowane_dzieci = sorted(dziecko, key=lambda x: x['wiek'])

Ale ten przykład jest nadal dość nierealny bo nie wiemy po co niby musimy sortować te dzieci według wieku? Jak więc tworzyć realistyczne przykłady?

Rzeczywisty kod

Tak jak pisaliśmy, najłatwiejszym sposobem na zrobienie realistycznych przykładów jest spojrzenie na prawdziwy kod. Na przykład, zgrepujmy sobie jakiś kawałek kodu Pythona, który napisaliśmy ostatnio, szukając sort.+key. Znajdziemy od razu wiele najprawdziwych przykładów sortowania listy według jakiegoś kryterium, na przykład maile = reversed(sorted(maile, key=lambda x:x['otrzymany'])).

Tutaj dość łatwo zobaczyć, że chodzi o sortowanie według czasu. Teraz możemy stworzyć prosty realistyczny przykład sortowania niektórych obiektów (e-maili, wydarzeń itp.) według czasu, na przykład sortowanie niektórych wydarzeń kalendarza według ich uniksowego znacznika czasu:

zdarzenia = [
{ 'data': 1615837012, 'nazwa': 'przyjecie'},
{ 'data': 1300581106, 'nazwa': 'spotkanie z klientem'},
{ 'data': 1489145126, 'nazwa': 'niedzielny obiad u tesciowej'},
]
posortowane_zdarzenia = sorted(zdarzenia, key=lambda x: x['data'])

Jest to bardziej realistyczne niż przykład sortowania dzieci według wieku a tak samo proste.

kod

Prawdzie przykłady z życia pomagają „sprzedać” koncepcję, którą próbujesz wyjaśnić

Kiedy próbujemy wyjaśnić jakąś ideę (jak nasze przykładowe lambdy Pythona), warto też się postarać przekonać czytelnika, że warto się tego nauczyć! Lambdy Pythona są bardzo przydatne a najlepiej to udowodnimy pokazując w jaki sposób lambdy mogą pomóc wykonać konkretne zadanie (a najlepiej zadanie, które czytelnik wykonał wcześniej innym, mniej optymalnym sposobem).

Niestety czasami takie wydestylowanie przykładów z prawdziwego kodu może zająć dużo czasu. Ostatecznie zademonstrowanie problemu może zająć „tylko” kilka linijek kodu i wcale nie wskazywać na to, że napisanie przykładu zajęło np. godzinę. Ale pierwotnie były to setki linii kodu a rozplątanie tego wszystkiego i wymyślenie czegoś małego, co stanowi sedno problemu, wymaga czasu! Pamiętaj: warto poświęcić czas, aby przykłady były naprawdę jasne i minimalne – jeśli setki ludzi czytają twój przykład, oszczędzasz im sumarycznie niesamowite ilości czasu.

Najnowsze oferty pracy:

Polecane wpisy na blogu IT:

Szukasz pracownika IT?

Dostarczymy Ci najlepszych specjalistów z branży IT. Wyślij zapytanie

Wyrażam zgodę TeamQuest Sp. z o.o. na przetwarzanie moich danych osobowych w celu marketingu produktów i usług własnych TeamQuest, w tym na kontaktowanie się ze mną w formie połączenia telefonicznego lub środkami elektronicznymi.
Administratorem podanych przez Ciebie danych osobowych jest TeamQuest Sp. z o.o., z siedzibą w Warszawie (00-814), ul. Miedziana 3a/21, zwana dalej „Administratorem".
Jeśli masz jakiekolwiek pytania odnośnie przetwarzania przez nas Twoich danych, skontaktuj się z naszym Inspektorem Ochrony Danych (IOD). Do Twojej dyspozycji jest pod adresem e-mail: office@teamquest.pl.
W jakim celu i na jakiej podstawie będziemy wykorzystywać Twoje dane? Dowiedz się więcej