Wpis z mikrobloga

#java #programowanie #ksiazki #amazon

Szukam jakiejś książki, którą powinien znać każdy Senior Java Developer.

Jak uczyłem się podstaw Javy, to czytałem: "Java. Podstawy" (najfajniejsza, najbardziej przystępna), "Thinking in Java" (bardziej zaawansowana, ale toporna), "Head First Java" (dla mnie za bardzo komiksowa), "Analiza i projektowanie obiektowe. Rusz głową!" (kolejna od Head First, doceniam, ciekawa, mimo że komiksowa, to do tematu projektowania pasowało - w ogóle mało książek na ten temat), "Java. Techniki zaawansowane" (w sumie nic specjalnego).

Jest jakaś taka "biblia", którą trzymacie na półce i co jakiś czas do niej zaglądacie?
Ja miałem tak własnie z:
- "Java. Podstawy" (ale obecnie już chyba wszystko z niej umiem),
- "Spring w akcji" (świetna książka, czasem zaglądam jak czegoś zapomnę, ale też większość już umiem, a to czego nie, to i w książce nie ma),
- "Czysty kod" (powolutku sobie czytam).

Teraz chciałbym coś bardziej zaawansowanego. Głównie chodzi o Javę i tematy pokrewne. Może nie ściśle z frameworków, bo to rzeczy wtórne (a zaawansowanej do Springa i tak pewnie nie ma).

Myślę nad:
- "Effective Java" (podobno są tam tłumaczone takie zaawansowane rzeczy od środka jak działa Java itd., brzmi fajnie, ale może jest jeszcze coś lepszego?)
- "Java Concurrency in Practice" (podobna świetna książka, na pytaniach rekrutacyjnych zawsze są pytania z wątków, temat trudny, a więc warto poczytać. Tylko że to książka sprzed ponad 10 lat, więc pewnie już mocno nieaktualna. Może jest coś dobrego nowszego na ten temat?).
- "Domain-Driven Design: Tackling Complexity in the Heart of Software" (słyszałem, że dobre, tylko czy mi jest potrzebna? Nie jestem analitykiem, ani jeszcze architektem. Nie pracuję nad mega wielkimi projektami, w których DDD jest potrzebne. Podobno to jest ciężka lektura. Fajnie, że przykłady w Javie, tak jak Clean Code. Książka już bardzo stara - 15 lat, ale taka miękka wiedza chyba szybko się nie dezaktualizuje).
- "Design patterns: elements of reusable object-oriented software" (fajnie mieć książkę z totalnymi podstawami jak wzorce projektowe. to potrzebne zawsze. Ta jest chyba klasyką. Ale odpada bo przykłady są w C++. No i bardzo stara - 24 lata).
- "Java Puzzlers" (polecana nie wiem czemu. Stara - 13 lat)
- "Unix and Linux System Administration Handbook" (polecana dla adminów, ale programiści Javy są ściśle związani ze środowiskiem Linuxa, więc też warto znać takie rzeczy. Chociaż z drugiej strony to może przesada, żeby specjalnie tego się uczyć jak już zna się podstawy basha)
- "Test Driven Development: By Example" (testy nie są moją mocną stroną, obecnie powinienem bardziej nauczyć się obecnych technologii z testowania, a teorię i TDD zostawić sobie na kiedy indziej. Poza tym też stara - 16 lat)
- Książka do "OCPJP" (tutaj i tutaj już pytałem jaka. Wydaje mi się, że obecnie szukam czegoś innego niż tego typu przygotowanie do certyfikatu. Coś dzięki czemu będę lepiej myślał, projektował, optymalizował, wiedział jak działa. A nie tylko znał przypadki brzegowe kompilatora)
- kolejna książka Roberta C. Martina np. "Clean Architecture: A Craftsman's Guide to Software Structure and Design" (wydaje mi się, że Clean Code była dobra. A kolejne to tylko jechanie na fejmie i nie są już tak ważne, tak dobre i poruszające takie podstawy. Poza tym wolałbym też coś bardziej technicznego niż Clean Code albo DDD).

Najlepiej coś z Javy. Jak jest coś tak zaawansowanego i poruszającego dokładnie podstawowe rzeczy (tzn. jak coś działa, a nie wklej kod i masz), to może być ze Springa. Myślałem też nad czymś do Javy EE, ale nie wiem czy obecnie warto (wszędzie Spring). Albo coś z algorytmiki, wzorców projektowych, architektury, projektowania obiektowego - ale też żeby było więcej praktyki, a nie taka bardzo miękka.

Obecnie szukam książki tego typu w języki angielskim.

Książka dla Senior Java Developera

  • Effective Java 51.7% (15)
  • Java Concurrency in Practice 20.7% (6)
  • Domain-Driven Design 6.9% (2)
  • Design patterns: elements of reusable... 0% (0)
  • Java Puzzlers 3.4% (1)
  • Unix and Linux System Administration Handbook 3.4% (1)
  • Test Driven Development: By Example 0% (0)
  • dowolna do OCPJP 3.4% (1)
  • R.C.Martina np. Clean Architecture: A Craftsm... 6.9% (2)
  • inna (napisz komentarz) 3.4% (1)

Oddanych głosów: 29

  • 8
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Clean code i Effective Java to takie podstawy....
OCJP (czy teraz OCA, OCP) ma tylko sens jeśli Twoja korpo zapłaci Ci za egzamin na certyfikat.
  • Odpowiedz
@kebab-case: nie czytałem i nie widziałem nigdy Effective Java. Teraz zajrzałem, przeczytałem spis treści i fragmenty. Jest to po prostu zbiór dobrych praktyk. Coś jak "Czysty kod", tylko od strony technicznej. Większość z tego i tak już używam na co dzień, ale jest kilka ciekawostek. Bardzo fajna książka.

Ale oczekiwałem po niej więcej. Myślałem, że będą w niej np. jakieś porównania wydajnościowe (np. kiedy używać jakiej kolekcji), problemy z wielowątkowością
  • Odpowiedz
Jeśli Design Patterns, to chodzi ci o tą "Design Patterns: Elements of Reusable Object-Oriented Software"?

https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612

Ja wiem, że to niby klasyk (Gang of Four, Gamma itp), ale to już stare. Nie zdezaktualizowało się przez 24 lata?

No i przykłady są w C++.


@mk321: O tę książkę chodzi. To, że ma swoje lata nic nie zmienia. Tych wzorców używa się powszechnie do dzisiaj. Nie ma znaczenia, że przykłady są w
  • Odpowiedz
@mk321: effective java - no powiedzmy. to raczej coś do czego wracasz. Ciężko zapamiętać wszystko co w niej jest po jednym przeczytaniu. Bloch pisze, żeby nie sięgać po to gdy nie masz opanowanychbpodstaw języka. On wskazuje które elementy dlaczego zostały zaprojektowane w dany sposób i jak powinny być wykorzystywane (z różnych powodów - wiec nie tylko konwencja).

OCA jest wymagane do OCP. To drugie jest ciekawsze, ale trzeba zrobić oba.
  • Odpowiedz