Przejdź do treści
Przejdź do treści
to co najważniejsze - logo

To co najważniejsze

  • Blog
  • O mnie
  • Kontakt
  • NewsletterRozwiń
    • Newsletter – Survival Guide: Programowanie dla Mam
    • Newsletter-Kompletny pakiet dokumentów do walki o orzeczenie
to co najważniejsze - logo
To co najważniejsze
newsletter

Newsletter #14: „Projekt Poboczny – coś dla siebie”

Coffee & Code | 8 lipca 2026

Cześć!

Kawa lodowa (bo upał nieznośny), dzieci szaleją, mam chwilę dla siebie i czuję się jak wygrałam los na loterii.

Tydzień temu stało się coś nieoczekiwanego: zaczęłam projekt który… nie ma celu biznesowego. Nie jest dla portfolio. Nie jest dla klienta. Nie pomoże mi dostać pracy.

Robię go bo chcę. Bo jest fun. Bo mogę.

I zapomniałam jak to jest – kodować dla czystej radości.


📚 Learning: Projekt który robię tylko dla frajdy

Genesis projektu:

Siedzę wieczorem, dzieci śpią, myślę „co zrobić”. Normalnie bym otworzyła React tutorial albo pracowała nad Expense Tracker.

Ale zamiast tego pomyślałam: „Co bym chciała zrobić? Co brzmi FUN?”

Odpowiedź: Generator losowych rekomendacji książkowych (Random Book Recommendation Generator).

Dlaczego to?

  • Czytam dużo, mam problem z wyborem „co teraz przeczytać”
  • Mogę użyć Google Books API (nowe dla mnie)
  • Frontend w React (practice)
  • Można dodać ciekawe funkcje (losowe nastroje, gatunki, przycisk „zaskocz mnie”)
  • Zerowe ciśnienie – jeśli nie wyjdzie, nic wielkiego.

Tech stack – tylko dla zabawy:

Frontend: React (bo się uczę)
API: Google Books API (free, łatwe)
Stylizacja: CSS z gradienty i animacje (bo ładne!)
Wdrożenie: Netlify (bezpłatne i szybkie)

Żadnego backendu. Żadnej bazy danych. Żadnej autoryzacji.

Postaw na prostotę. Niech będzie zabawnie.

Dzień 1 – Podstawowa struktura:

function BookRecommender() {
  const [mood, setMood] = useState('');
  const [book, setBook] = useState(null);
  const [loading, setLoading] = useState(false);

  const moods = [
    { name: 'Happy', genre: 'humor' },
    { name: 'Thoughtful', genre: 'philosophy' },
    { name: 'Adventurous', genre: 'adventure' },
    { name: 'Romantic', genre: 'romance' },
    { name: 'Scared', genre: 'thriller' }
  ];

  const getRecommendation = async () => {
    setLoading(true);
    // Google Books API call
    const response = await fetch(
      `https://www.googleapis.com/books/v1/volumes?q=subject:${genre}&maxResults=40`
    );
    const data = await response.json();

    // Pick random book
    const randomIndex = Math.floor(Math.random() * data.items.length);
    setBook(data.items[randomIndex]);
    setLoading(false);
  };

  return (
    <div className="recommender">
      <h1>What should I read today? 📚</h1>

      <div className="moods">
        {moods.map(m => (
          <button
            key={m.name}
            onClick={() => setMood(m.genre)}
            className={mood === m.genre ? 'active' : ''}
          >
            {m.name}
          </button>
        ))}
      </div>

      <button onClick={getRecommendation}>
        Surprise me!
      </button>

      {book && (
        <BookCard book={book} />
      )}
    </div>
  );
}

Uczucie: RADOŚĆ. Czysta radość. Żadnego ciśnienia. Żadnego „czy to wystarczająco „efektowny dla portfolio”.

Dzień 2 – Upiększanie:

Dodałam CSS z animacjami:

.book-card {
  animation: slideIn 0.5s ease-out;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  border-radius: 20px;
  padding: 2rem;
  color: white;
  box-shadow: 0 10px 40px rgba(0,0,0,0.2);
}

@keyframes slideIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.mood-button {
  transition: all 0.3s;
  cursor: pointer;
}

.mood-button:hover {
  transform: scale(1.1);
  box-shadow: 0 5px 15px rgba(0,0,0,0.3);
}

Czy to niezbędne? Nie.
Czy to zabawne? Absolutnie.

Dzień 3 – Ciekawe funkcje:

  • Przycisk „Zaskocz mnie WIĘCEJ” – losuje z innego gatunku literackiego
  • Zapisywanie ulubionych (localStorage – tak, łamię własną zasadę, ale to mój fajny projekt!)
  • Udostępnij rekomendację (skopiuj link)
  • Dark mode toggle (bo czemu nie)

Bugs i nie-idealne rzeczy:

  • Czasem API zwraca książki bez okładki
  • Randomizacja nie jest idealnie rozłożona
  • Responsywny projekt mógłby być lepszy
  • Kod mógłby być czystszy

Czy naprawiam? Może. Albo nie. To NIE ma być IDEALNIE. To ma być FAJNE

Czego się dowiedziałem (ku mojemu zaskoczeniu):

  1. Praca z zewnętrznymi interfejsami API – Google Books API, obsługa odpowiedzi, błędy
  2. React animacje– CSS transitions, keyframes
  3. Zarządzanie stanem – kiedy używać useState, a kiedy useEffect
  4. Zabawa > perfekcja – robiąc „dla zabawy” projekt, eksperymentuję więcej

Wyciągnięta lekcja:

Projekty poboczne bez presji uczą INACZEJ niż projekty pod portfolio. Nie boję się próbować różnych rzeczy. Nie boję się ponieść porażkę.

Wdrożono:

Wrzuciłam na Netlify. Działa. Pokazałam dzieciom.

Syn: „Mamo, to jest ładne! Możesz mi znaleźć książkę?”

Kliknęła „awanturniczy”. Dostała „Percy Jackson”. Idealnie

Radość z tego momentu > radość z ukończony projekt portfolio.


💼 Freelancing: Dlaczego nie wszystko musi zarabiać

Wyznanie:

Przez długi czas myślałam: każdy projekt = sposobność zarobku albo portfolio albo CV.

Jeśli nie służy żadnemu z tych celów – strata czasu.

To była błędna logika.

Dlaczego projekty poboczne dla zabawy mają sens:

1. Eksperymentowanie bez ryzyka:

Projekt klienta: Nie mogę próbować ryzykownego podejścia. Musi działać. Musi być stabilny.

Projekt poboczny: Mogę spróbuj szalonego pomysłu. Jeśli zaliczę niepowodzenie – to brak konsekwencji.

Przykład: W Book Recommender próbowałam nowej biblioteki do aminacji (Framer Motion). W projekcie klienta bym się nie odważyła. Tu? Dlaczego nie!

2. Nauka bez presji:

Projekt portfolio: „Musi być imponujący. Musi pokazać umiejętności.”

Fajny projekt: „Zobaczę co się stanie. Może nauczę się czegoś.”

Paradoks: Nauczyłam się WIĘCEJ z projektu dla zabawy, bo nie było ciśnienia, presji.

3. Kreatywność:

Klient: „Chcę niebieskie przyciski, ten dokładny układ, do konkretnej funkcjonalności.”

Ja: „Ok.” (wykonuję specyfikację)

Fajny projekt: „Co jeśli przyciski będą pulsować? Co jeśli gradient background? Co jeśli…”

Kreatywność rozkwita, gdy nie ma ograniczeń.

4. Przypomnienie o radości:

Freelancing = opłacanie rachunków. Portfolio = znalezienie pracy. Fajny projekt = przypomnienie, że dlaczego zacząłem kodować.

Bo jest fun.

Poważna rozmowa – zarządzanie czasem:

„Ale czy nie lepiej użyć tego czasu na uczenie się React systematycznie? Albo projekt freelancerski za pieniądze?”

Może. Ale też:

  • Zdrowie psychiczne
  • Regeneracja kreatywności
  • Prawdziwa przyjemność
  • Długoterminowa stabilność

4 godziny na fajny projekt ≠ marnować. To inwestycja w moje samopoczucie.

Perspektywa klienta:

Czy klienci muszą wiedzieć o pobocznym projekcie? Nie.

Czy poboczne projekty robią mnie lepszym developerem? Tak.

Lepszy programista = lepsza praca dla klientów.

Więc pośrednie – projekty rozrywkowe pomagają biznesowi.

Równowaga:

NIE sugeruję że wszystko powinno być dla radochy.

Ale stosunek:

  • 70% praca, która się opłaca/pozwala rozwijać karierę
  • 20% ustrukturyzowane uczenie się
  • 10% czysta zabawa

Te 10% utrzymuje Cię przy zdrowych zmysłach. Utrzymuje Cię w kreatywności. Utrzymuje Cię w miłości do tego, co robisz.

Wyciągnięta lekcja:

Nie wszystko wymaga zwrotu z inwestycji. Czasami radość JEST zwrotem.


📖 Książka: „Wielka magia. Odważ się żyć kreatywnie” – Elizabeth Gilbert

To książka o kreatywności. O tym jak żyć życiem twórczym. Od autorki „Jedz, módl się, kochaj”.

Dlaczego czytam to jako developer:

Bo programowanie to praca twórcza. Nie tylko techniczna. Twórcza.

I czasem zapominamy o tym.

Główna idea:

Kreatywność potrzebuje radości. Ciekawość. Pozwolenia na eksperymentowanie bez strachu.

Fragment, który mi utkwił w pamięci:

„Czy masz odwagę wydobyć na światło dzienne skarby, które kryją się w Tobie?”

W kontekście kodowania: Mam odwagę, żeby zrobić ten zwariowany projekt, który mnie interesuje? Albo tylko bezpieczne, rzeczy warte portfolio?

Praktyczne zastosowanie:

Zezwolenie na zabawę:

Gilbert mówi: traktować kreatywność jak zabawę, nie jak poważny biznes.

Mój Book Recommender = zabawa. Nie poważny element portfolio.

I czułam się winna. „Powinnam robić coś użytecznego”

Teraz myślę: Zabawa jest przydatna. Utrzymuje mnie w zaangażowaniu. Zapobiega wypaleniu.

Strach kontra ciekawość:

Gilbert: Strach mówi „to nie będzie idealne, więc nie zaczynaj.”

Ciekawość mówi: „to wygląda interesująco, zobaczmy co z tego wyjdzie!”

Moje podejście do projektów pobocznych było napędzany strachem (musi być imponujący).

Nowe podejście: napędzany ciekawością (to wygląda ciekawie, spróbuję!).

Fragmenty o treści „zrobione jest lepsze od doskonałego”:

„Perfekcjonizm to strach w eleganckich butach.”

Uff. Zrozumiano.

Ile projektów nie zaczęłam, bo „nie będzie idealnie”?

Book Recommender jest DALEKO od ideału. Ale istnieje. Przynosi radość.

Czy polecam:

Tak, ale nie jako instrukcja obsługi. Raczej jako poświadczenie pozwolenia.

Zezwolenie na:

  • Eksperymentować
  • Ponieść porażkę
  • Robić rzeczy dla zabawy
  • Nie brać się zbyt poważnie

Specjalnie dla programistów:

Przypomnienie, że kodowanie może być sztuką, nie tylko rzemiosło. Można dodać piękno, zabawa, nieoczekiwanie.


👩‍👧‍👦 Real Talk: Radość z kodowania vs kodowanie dla pieniędzy

Dwa typy sesje kodowania – porównanie:

Sesja 1: Projekt klienta (konserwacja WordPressa)

  • 9:00: Otwieram projekt
  • 9:15: Przeczytaj wymagania klienta (zmień ten plugin, napraw ten błąd)
  • 9:30:Zacznij pracować
  • 10:00: Stack Overflow, bo nie pamiętam składni
  • 11:00: Naprawiono błąd
  • 11:30: Testowanie
  • 12:00: Gotowe. Faktura: 400 zł.

Poczucie: Spełnione. Profesjonalna. Płatny. Ale… mech.

Sesja 2: Book Recommender (projekt dla radochy)

  • 20:00: Otwieram projekt
  • 20:15: „Co jeśli dodam animację?”
  • 20:30: Wypróbuj Framer Motion
  • 21:00: „Wow, to wygląda cool!”
  • 21:30: „Co jeśli dodać dark mode?”
  • 22:00: „Oooh, gradienty!”
  • 23:00: Zdaję sobie sprawę że minęły 3 godziny. Faktura: 0 zł.

Odczucie: PEŁEN ENERGII. Podekscytowany. Kreatywny. Szczęśliwy.

Różnica jest ogromna.

Pytanie: Czy mogę robić tylko projekty dla zabawy?

Odpowiedź: Nie, bo rachunki.

Lepsze pytanie: Czy mogę znaleźć równowagę gdzie są i pieniądze i radość?

Może.

Strategia freelancingu – dodaj trochę zabawy:

Nawet w projektach klienckich, próbuję znajdź chwile kreatywności:

  • Sugerować niestandardowe rozwiązanie (jeśli klient otwarty)
  • Dodaj mały ozdobnik (animacja, ładna kolorystyka)
  • Implementuj w ciekawy sposób (nawet jeśli klient nie widzi)

Przykład:

Klient chciał podstawowy formularz kontaktowy. Zrobiłam podstawowy formularz kontaktowy. Ale też dodałam subtelne animacje przy przesyłaniu, miłe komunikaty potwierdzające, płynne przejścia.

Klient zauważył: „Wow, to wygląda profesjonalnie!”

Ja czułam: chwila dumy, a nie tylko wykonanie zadania.

Równowaga w nauce:

Nauka ustrukturyzowana (kursy, samouczki) = ważne. Daje fundamenty

Zabawna nauka (zabawne projekty) = też ważne. Daje radochę.

Tylko strukturalny = wypalenie.
Tylko zabawa = brak kierunku.

Obydwa = zrównoważony wzrost.

Największe objawienie lipca:

Spędziłam 10+ godzin na Book Recommender. Zero korzyści finansowych.

Ale po tych sesjach czułam się WIĘCEJ energii do pracy z klientem. Bardziej kreatywna. Bardziej zaangażowana.

ROI był pośrednie ale rzeczywiste.

Perspektywa syna:

Pokazałam mu Book Recommender i Expense Tracker.

On: „Który lubisz bardziej?”

Ja (automatycznie): „Expense Tracker, bo jest bardziej ważniejszy dla portfolio.”

On: „Ale który LUBISZ?”

Ja (pauza): „…Book Recommender.”

On: „To dlaczego nie robisz więcej rzeczy, które lubisz?”

Z ust dzieci.

Wyciągnięta lekcja:

Radość ma znaczenie. Nie wszystko musi być strategiczne. Czasami „bo chcę” jest wystarczającym powodem.

Jestem developerką. Ale też człowiek. Człowiek potrzebuje radochy.

Postanowienie letnie:

Jeden projekt poboczny miesięcznie. Cokolwiek. Żadnych zasad. Żadnej presji. Czysta zabawa.

Bo życie jest za krótkie, żeby kodować tylko dla pieniędzy.


🔗 Zasoby i narzędzia

  • Google Books API – darmowy, łatwy w użyciu, świetny do praktyka.
  • Framer Motion – Biblioteka animacji React, z którą można się świetnie bawić
  • Netlify – darmowy hosting, superłatwe wdrożenie
  • CodePen – szybkie eksperymenty, natychmiastowe rezultaty

P.S.

Book Recommender link? Może w przyszłości. Może nigdy. Może zostanie tylko dla mnie i dzieci.

I to jest OK. Nie wszystko potrzebuje publiczności. Czasami projekt jest kompletny po prostu, kiedy jest używany przez Ciebie.

Do zobaczenia za 2 tygodnie (ostatni newsletter przed urlopem!)


P.S.2: Book Recommender polecił mi „Project Hail Mary” Andy Weir. Kliknęłam „Zaskocz mnie” 5 razy żeby dostać różne rekomendacje. Wszystko wyglądały dobrze. Algorytm działa? Może. Zabawa? Zdecydowanie.

P.S.3: Całkowity koszt Book Recommender: 0 zł (wszystko free). Wartość całkowita: Przypomnienie dlaczego kodowanie jest niesamowite. Bezcenne.

Nie jestem ekspertką od idealnego życia.
Jestem osobą, która uczy się żyć po swojemu.

 „Problemy nie istnieją, są tylko wyzwania” 

  • Polityka Prywatności
  • Polityka Cookies
  • Regulamin Newslettera

© 2026 To co najważniejsze.
Motyw WordPress, autor: Kadence WP

  • Blog
  • O mnie
  • Kontakt
  • Newsletter
    • Newsletter – Survival Guide: Programowanie dla Mam
    • Newsletter-Kompletny pakiet dokumentów do walki o orzeczenie
Szukaj