
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
- 5 minut: Przegląd notatek z poprzedniego dnia
- 20 minut: Oglądanie lekcji z Zajavka
- 30 minut: Pisanie kodu, rozwiązywanie zadań
- 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.
Zostaw Komentarz