Learning Log #1: Tydzień 9 Zajavka – metody, przeciążanie i pierwsze aha! momenty

with Brak komentarzy
nauka programowania Java

Learning Log #1: Tydzień 9 Zajavka – metody, przeciążanie i pierwsze aha! momenty

Siedzę z kubkiem kawy, która już zdążyła wystygnąć (klasyka), i patrzę na ekran z kodem Java. Nauka programowania Java nigdy nie wyglądała tak, jak sobie wyobrażałam przed rozpoczęciem kursu Zajavka. Dzisiaj chcę Wam opowiedzieć o tym, co dzieje się w 9. tygodniu kursu – o metodach, przeciążaniu i tych momentach, gdy wreszcie wszystko klika. Nowy rok najlepiej zacząć od nauki czegoś co się przyda w przyszłości. Najlepsza inwestycja to inwestycja w siebie!

Gdzie jestem w kursie Zajavka?

Tydzień 9 kursu Java w 12 tygodni Zajavka to moment, gdy podstawy są już za mną, ale przed sobą widzę góry prawdziwych wyzwań. Teoretycznie powinnam być teraz w 9. tygodniu. Praktycznie? Życie miało inne plany – między złamaną ręką syna, zwolnieniem męża i codziennością z niepełnosprawnymi dziećmi, te „12 tygodni” rozciągnęło się znacznie bardziej.

I wiecie co? To jest w porządku.

Nauka programowania dla rodziców nie wygląda jak w filmach. Tu nie ma montażowych sekwencji z kubkami kawy i notatek na tablicy. Jest za to realna godzina dziennie wyciśnięta między obowiązkami, popołudniowe okienko gdy dzieci w końcu się bawią same, i słuchawki na uszach jako bariera dźwiękowa.

Metody w Java – wreszcie mój kod ma sens

Przez ostatnie dwa tygodnie zagłębiałam się w metody. I to był game changer.

Czym są metody?

Najprostsza definicja? Metody to wielokrotnie używalne bloki kodu. Zamiast pisać to samo dziesięć razy, piszesz raz i wywołujesz w wielu miejscach.

Przykład z mojego kodu:

public class Calculator {

    public int add(int a, int b) {
        return a + b;
    }

    public int subtract(int a, int b) {
        return a - b;
    }
}

Brzmi prosto? Teoretycznie tak. Praktycznie przez pierwszy tydzień myliłam parametry z argumentami, zapominałam o return, i nie rozumiałam dlaczego void czasem działa, a czasem nie.

Pierwsze błędy w nauce Java

Mój ulubiony błąd z tego tygodnia:

public void calculateSum(int x, int y) {
    int sum = x + y;
    // Gdzie return?!
}

Spędziłam 20 minut szukając błędu, zanim dotarło do mnie, że void oznacza „nic nie zwracam”. Jeśli chcę wynik, potrzebuję return i odpowiedniego typu zwracanego.

Nauka Java dla początkujących to seria takich małych „aha!” momentów. Frustrujących, ale niezwykle satysfakcjonujących.

Method overloading – przeciążanie metod

To był dla mnie trudniejszy koncept. Przeciążanie metod w Java pozwala mieć kilka metod o tej samej nazwie, ale różnych parametrach.

public class TextFormatter {

    // Jedna wersja dla Stringa
    public String format(String text) {
        return text.toUpperCase();
    }

    // Druga wersja dla Stringa i boolean
    public String format(String text, boolean addPrefix) {
        if (addPrefix) {
            return ">>> " + text.toUpperCase();
        }
        return text.toUpperCase();
    }

    // Trzecia wersja - całkiem inne parametry
    public String format(int number) {
        return String.valueOf(number);
    }
}

Pierwszy raz gdy zobaczyłam to w kursie Java Zajavka, pomyślałam: „Po co?”. Potem zaczęłam pisać własny kod i nagle wszystko miało sens.

Kiedy budujesz aplikację, często potrzebujesz podobnej funkcjonalności, ale z drobnymi różnicami. Zamiast tworzyć formatText(), formatTextWithPrefix(), formatNumber() – masz po prostu format() w trzech wersjach.

Co mnie zaskoczyło w przeciążaniu?

Java rozróżnia metody po:

  • Liczbie parametrów
  • Typie parametrów
  • Kolejności parametrów

Ale NIE po:

  • Typie zwracanym
  • Nazwach parametrów

Ten kod nie zadziała:

public int calculate(int x) { ... }
public double calculate(int x) { ... }  // BŁĄD!

Kompilator się zgubi – nie wie którą metodę wywołać gdy dostanie calculate(5).

Varargs – variable arguments

Varargs to coś, co wydawało mi się zaawansowane, a okazało się genialnie proste.

public int sum(int... numbers) {
    int total = 0;
    for (int num : numbers) {
        total += num;
    }
    return total;
}

// Możesz wywołać to na wiele sposobów:
sum(1, 2);
sum(1, 2, 3, 4, 5);
sum(10);

Ta kropka-kropka-kropka (...) oznacza „przyjmij dowolną liczbę argumentów tego typu”. W środku metody varargs jest traktowany jak tablica.

Praktyczna nauka programowania Java to właśnie takie rzeczy – patrzysz na kod i myślisz „przecież to magia”, a potem rozumiesz że to tylko cukier składniowy nad tablicą.

Jak wygląda moja godzina nauki dziennie?

Pytacie często na Instagramie jak to robię, więc opowiem szczerze.

Mój typowy dzień nauki:

14:30-15:30 – moje święte okienko

  1. 5 minut: Przegląd notatek z poprzedniego dnia
  2. 20 minut: Oglądanie lekcji z Zajavka
  3. 30 minut: Pisanie kodu, rozwiązywanie zadań
  4. 5 minut: Zapisanie notatek i pytań na później

To nie zawsze działa idealnie. Czasem syn potrzebuje pomocy w środku zadania. A czasem dzwoni klient. Czasem po prostu jestem zbyt zmęczona po całym dniu.

I to jest OK.

Nauka programowania godzina dziennie to nie jest mit. To jest możliwe. Ale wymaga:

  • Konsekwencji (nie perfekcji!)
  • Realistycznych oczekiwań
  • Słuchawek (serio, game changer)
  • Kawy (zawsze kawy)

Co pomaga mi w nauce Java?

1. Notatki ręczne

Wiem, wiem, brzmi oldschool. Ale pisanie kodu ręcznie, nawet jak potem i tak go przepisuję do IDE, pomaga mi to zapamiętać.

2. Mini projekty

Po każdym tygodniu staram się stworzyć coś małego z nowych konceptów. Ten tydzień? Prosty kalkulator używający przeciążanych metod.

3. Debugging jako nauka

Każdy błąd to lekcja. Mam nawet notes „Błędy i co się z nich nauczyłam”. Brzmi żałośnie? Może. Ale działa.

4. Społeczność

Grupa na Discord z kursu Zajavka jest nieoceniona. Pytać można o wszystko, odpowiedzi są szybkie, nikt nie ocenia.

Największe wyzwania tego tygodnia

1. Typy zwracane

Ciągle muszę się zastanawiać co metoda powinna zwracać. void, int, String?
To wymaga myślenia „do przodu” – co będę chciała zrobić z wynikiem tej metody?

2. Zakres zmiennych

Zmienna zdefiniowana w metodzie nie istnieje poza nią. Brzmi prosto, ale ile razy próbowałam użyć zmiennej „która przecież tam była”…

3. Konwencja nazewnictwa

Jak nazywać metody? calculateSum() vs getSum() vs sum()? Jakie konwencje w Java? To wciąż jest dla mnie wyzwanie.

Co dalej? Plany na tydzień 10

Przede mną:

  • Agregacja i kompozycja (brzmi groźnie)
  • Relacje między klasami
  • Pierwszy bardziej złożony projekt

Kurs Java Zajavka robi się coraz ciekawszy. Czuję że podstawy zaczynają się układać w całość.

Dla kogo jest ten learning log?

Jeśli:

  • Uczysz się programowania przy dzieciach
  • Masz tylko godzinę dziennie (lub mniej)
  • Czujesz się czasem jak oszust bo „inni są szybsi”
  • Potrzebujesz przypomnienia że wolno = też OK

To ten serial jest dla Ciebie.

Nauka programowania dla zapracowanych rodziców to maraton, nie sprint. I zamierzam pokazać Wam każdy kilometr tej drogi – z kawą w ręku, słuchawkami na uszach, i dzieciakami w tle.


Podsumowanie tygodnia 9

✅ Nauczyłam się: metody, przeciążanie, varargs
✅ Napisałam: prosty kalkulator z przeciążonymi metodami
✅ Zrozumiałam: dlaczego metody są fundamentem dobrego kodu
✅ Walczę z: konwencją nazewnictwa i myśleniem o typach zwracanych
✅ Czas nauki: ~7 godzin w tym tygodniu

Następny learning log: Tydzień 10-11 – agregacja, kompozycja i relacje między klasami. Zapisz się do newslettera żeby nie przegapić! Planuję narzędzie, które wspomoże Cię w nauce: „Java Learning Log Template” (PDF+ NOTION), a na razie pobierz przewodnik jak się uczyć programowania stworzony specjalnie dla rodziców!

Zapisz się na mój newsletter

Pobierz darmowy
„Przewodnik programowania dla mam


PS: Jeśli też się uczysz programowania, zostaw komentarz – chciałabym poznać Wasze historie. A jeśli macie pytania o kurs Zajavka lub naukę Java, śmiało pytajcie. Jestem tu nie jako ekspertka, ale jako ktoś kilka kroków przed Wami na tej samej drodze.

Podąrzaj Danuta:

Blogująca mama dwóch chłopców. Ciągle ucząca się i poszukująca pomysłu na siebie. Obecnie pogłębiająca tajniki programowania.

Zostaw Komentarz