Ta strona uzywa plików cookies
ZAMKNIJ
image


Przegląd literatury o programowaniu w języku java

i sieciach komputerowych



Poniżej umieściłem zdjęcia okładek i krótki komentarz do książek, które wpadły mi w ręce w trakcji nauki.
Darowałem sobie umieszczanie starszych publikacji poświęconych odległym wersjom javy, na rzecz tych,
które dotyczą wersji 8 oraz nowszych. Lista zawiera równiez wydawnictwa poświęcone szeroko rozumianym siecom komputerowym.






Image

Treść ksiązki pokazuje jak szeroki jest proces wytwarzania oprogramowania. Mam na myśli nie tylko umiejętności technologiczne. Publikacja stanowi przewodnik po współczesnych aspektach architektury oprogramowania. Dobra rzecz, wręcz niezbędna.

Image

Własciwie to podręcznik dla przedmiotu systemy baz danych. Zawiera podstawowy materiał na temat programowania i architektury baz danych. Przede wszystkim SQL i PL/SQL, duzo pojęć, zadania.

Image

Od najistotniejszych podstaw, których nie mozna pominąć do rozmaitych elementów programowania w javie. Nie obejmuje zagadnień związanych z GUI, ale przykłady z uyciem Swing występują w kilku miejscach. Zawiera elementy średniozaawansowane.



Image

Książka stanowi bardzo dobry podręcznik dla osób znających już podstawy programowania w javie. Autor jest wykładowcą Polsko-Japońskiej Akademii Technik Komputerowych dlatego materiały wykładowe i treść tej książki częściowo się pokrywa. Tytuł to również nazwa przedmiotu/kursu o nazwie UTP. Treści zawarte w tej publikacji to raczej średniozaawansowane zagadnienia języka java to znajdzie się też krótkie omówienie podstawowych założeń programowania zorientowanego obiektowo, dziedziczenie, abstrakcja i hermetyzacja, polimorfizm, kompozycja, klasy abstrakcyjne i interfejsy. Znajdziemy też w niej obsługę wyjątków, lambdy, genericsy, przetwarzanie strumieniowe, klasy NIO, kolekcje (głównie listy i mapy, sety), programowanie współbieżne i wykorzystanie refleksji i wiele innych. Treściwy podręcznik składający się z ponad 600 stron drobnego tekstu.

Image

Czy można się czegoś nauczyć w 24 godziny? Pewnie tak, ale java nie należy do tej kategorii. Książka skierowana do osób rozpoczynających naukę programowania w tym języku, chociaż odnoszę wrażenie, że coś już trzeba wiedzieć, aby po nią sięgnąć. Początek książki zawiera informacje jak napisać pierwsze proste programy, próbowanie kodu przy pomocy jshell, łańcuchy znaków, instrukcje warunkowe, pętle, tablice. Kolejny etap to tworzenie pierwszych obiektów, dziedziczenie, podstawowe struktury danych (listy, mapy), obsługę wyjątków, wątki, klasy anonimowe i proste wyrażenia lambda (nazywane przez autora domknięciami). Zbudujemy też prosty interfejs graficzny przy użyciu AWT i swinga, zapis i odczyt plików przy użyciu strumieni, tworzenie grafik przy użyciu biblioteki java2D. Jako ciekawostkę można uznać tworzenie modułów do gry Minecraft (pierwotnie napisanej w javie), pisanie aplikacji androidowych. Książka liczy ponad 400 stron napisanych przystępnym językiem.

Image

Autor jest wykładowcą uniwersyteckim, ale wcześniej byl głównym architektem Javy w firmie Google, i inzynierem w Sun. Ksiązka jest adresowana dla zaawansowanych programistów chcących efektywniej uzywać tego języka poprzez przedefiniowanie sobie poszczególnych metod, stosowania wzorców projektowych, stosowania lambd zamiast klas anonimowych itd. Zdecydowanie obejmuje zagadnienia zaawansowane i usprawnienia kodu, gdy swobodnie posługujemy się podstawami języka, natomiast zalezy nam na wydajności. W javie często jest tak, ze niektóre rozwiązania zrealizujemy na conajmniej kilka sposobów, a Autor podpowiada które wybrać, aby były jak najbardziej efektywne. Starsze rozwiązania pochodzą jeszcze z wczesnych wersji języka i istnieją w nim dla utrzymania starszego kodu.



Image

Dla osób, które znają juz podstawy javy. Omawiane są dobre praktyki i zasady programowania takie jak KISS, SOLID, techniki TDD itp. Realizowane na fajnych przykładach i napisane w swobodnej, czasem humorystycznej formie. Hit

Image

Porusza sporo zagadnień związanych z językiem java, których w innych publikacjach nie spotkałem. Kompilatory, testowanie, systemy budowania, dokumentacja. Bardzo ciekawe receptury dla wybranych problemów. Na pewno moze okazać się przydatna do realizacji zadań dla studentów.

Image

Absolutny hit. Od dość szczegółowego omówienia mediów transmisyjnych do współczesnych protokołów warstwy aplikacji. Obejmuje aktualne zagadnienia związane z intersieciami, których brakuje w klasycznych publikacjach tego typu. Szczególnie więcej autor poświęca protokołowi IPv6 i jego koegzystencji z jego poprzednikiem. W wielu momentach ksiązki, autor stara się bardziej szczegółowo wyjaśnić niektóre zagadnienia, przez co dowiadujemy się jak opisane mechanizmy faktycznie działają.



Image

Trochę teorii i przykładów rozwiązań na temat responsywnych stron www napisanych w przystępny sposób. Autor pokazuje realizacje z uzyciem bootstrap, wykorzystuje tez język PHP.

Image

Przejrzysta książka opisująca podstawy języka java. Czytelność jest według mnie jej atutem. Zawiera tez opis podstawowych komponentów GUI w Swingu, takze elementy Java Collections Framework.

Image

Gdybym trafił na tę ksiązkę w odpowiednim momencie to na pewno ułatwił bym sobie realizację zadań domowych na podstawach programowania w javie. Prowadzący zadawał dokładnie takie same ćwiczenia jakie prezentowane były w tej publikacji. Na egzaminie równiez pojawiły się elementy z tej ksiązki.



Image

Opisano w niej technologicznie świeże zagadnienia związane z sieciami komputerowymi. Autor przedstawia kilka praktycznych realizacji sieci z uwzględnieniem róznych technologii np: VPN, VLAN, IoT, VoIP itd. Od inteligentnego domu po sieć w hotelu czy firmie.

Image

W moim przypadku była to podstawowa literatura z SKJ (sieci komputerowe i programowanie sieciowe w javie). Z grubsza omówiona całość zagadnień sieciowych (od warstwy aplikacji do fizycznej) Dobrze się czyta, łatwo zrozumieć omawiane zagadnienia. Dobry podręcznik.

Image

Trochę leciwa, jednak bardzo wartościowa książka wydana w trzech tomach (pozostałe dwa są mało przydatne dla początkujących). Pierwszy z nich stanowi podręcznik opisujący absolutne podstawy, które trzeba wiedzeć. Niemal kilogramowe dzieło uwazane za jedno z najwazniejszych w dziedzinie sieci.



Image

W pierwszym rozdziale autor porusza zagadnienia złożoności algorytmicznej i ich typów, terminologię, z którą prędzej czy później się zetkniesz podczas nauki programowania. Ponieważ można powiedzieć, że "Algorytm + stryktura danych = program" to warto po nią sięgnąć. Opisano tu algorytmy sortowania, drzewa binarne, grafy, tablice z haszowaniem. Przedstawiono implementacje algorytmów z wykorzystaniem języka java.

Image

Klasyczna publikacja autora mającego wkład w rozwój internetu. Obromna część zagadnień przedstawionych w niej (mimo 20lat od tego wydania) pozostaje nadal aktualna, przynajmniej w kontekście podstawowych załozeń danej technologii. Lektura tej książki daje całościowy obraz funkcjonowania intersieci: mediów transmisyjnych, sieci lokalnych, sieci rozległych, najwazniejszych protokołów i usług. Zawiera przykładową implementację klienta i serwera w języku C. Objętość to ponad 700 stron zapisanych przystępnym językiem.

Image

Obszerna publikacja, która jak wskazuje tytuł przeznaczona jest dla zupełnie początkujących. Poza tym, ze ujmuje w sposób komplentny podstawowe zagadnienia języka, zasad programowania obiektowego, algorytmy sortowania i wyszukiwania, tworzenia adnotacji do javadoc, opisuje komponenty JavaFX! Jest to wyrózniająca cecha, bo nie często mozna znaleźć opis tworzenia GUI z wykorzystaniem tej technologii. Jest to gabarytowo chyba największa książka o javie jaka wpadła mi w ręce. Ciekawym dodatkiem jest zestaw zadań na końcu kazdego rozdziału.





Image

Znakomita ksiązka, którą dobrze jest mieć stale pod ręką podczas realizacji zadań programistycznych. Zrealizowana według schematu: problem, rozwiązanie i omówienie. Tematyka to wyrazenia lambda, strumienie, optionale, pakiet NIO, komparatory i kolektory, współbiezność i równoległość oparta na interfejsie future, pakiet java.time, pakiet java.util.function. Autor zdecydował się na opis wybranch i uzytecznych zagadnień. Nie jest zbyt obszerna, zawiera około 250 stron drobnego tekstu.

Image

Networking Foundations, bo tak brzmi tytuł oryginału to ksiązka adresowana dla osób które chciały by usystematyzować i uzupełnić wiedzę o sieciach. Autor zakłada, ze czytelnik posiada juz jakąś ogólną wiedzę. Znajduje się tu wszystko co zwykle mozna znaleźć w tego typu publikacjach. Omówienie modeli warstwowych, trochę historii, architektury, topologie, informacje na temat teorii transmisji sygnałów, protokoły głównie te starsze i obecnie nadal popularne. Rozdziały kończą się listą terminów, które nalezy przyswoić i listą pytań kontrolnych. Zawiera proste zwięzłe definicje najwazniejszych pojęć, które w ksiązce wyróznione są w ramce.

Image

W książce zawarto chyba wszystkie zagadnienia związane z blockchain opisując je szeroko i w sposób bardzo przystępny. Na początku odnosiłem wrażenie, że autor potraktował tematykę w sposób zbyt ogólny, nie wnikając w szczegóły techniczne, przykłady implementacji, ale przekonałem się, że jest to znakomita książka ułatwiająca zrozumienie koncepcji i technicznych założeń blockchain, bez czego wdawanie się w szczegóły niema sensu. Każdy rozdział rozpoczyna się „metaforą”, która zwykle porównuje techniczne zawiłości z sytuacjami w relacjach społecznych dzięki czemu jest to niezawodny sposób na zrozumienie działania. Rozdziały kończą się zwykle streszczeniem i podsumowaniem, co również stanowi dodatkową pomoc w przyswojeniu treści.





Image

Ta książka nie należy już do nowych w kontekście publikacji dotyczących it, ale skrypty bash zawarte w niej są ponadczasowe dlatego z tego powodu warto do niej zajrzeć. "Haker" w tytule to oczywiście chwyt marketingowy podobnie jak w kolejnej publikacji, którą postaram się krótko opisać. Jak w tytule, zawiera sporą liczbę porad i krótkich a jednocześnie pomysłowych skryptów, które można wykorzystać urzytkując dystrybucję linuxa w wersji serwerowej, ale nie tylko. Stanowi zestaw gotowych rozwiązań dla administratorów, dzięki czemu Tak jak juz wspomniałem, skrypty powłoki i perl zawarte w publikacji można z powodzeniem stosować obecnie. Książka wymaga znajomości podstaw (zarówno zagadnień sieciowych jak i znajomości systemu linux).

Image

Kolejna publikacja z przed wielu lat z chwytliwym tytułem, w której wiele zagadnień pozostaje nadal aktualne dlatego warto poznać mechanizmy, których założenia właściwie nie uległy zmianie. Obejmuje podstawy bezpieczeństwa sieciowego, kategorie ataków, algorytmy szyfrujące, zagadnienia inżynierii wstecznej, monitorowanie transmisji sieciowych, przechwytywanie sesji, omijanie systemów IDS (ang. Intrusion Detection System. Urządzenia wykrywające i blokujące ataki, działające w czasie rzeczywistym), fałszowanie adresów źródłowych IP, tunelowanie i wiele innych. Zarówno autor jak i współautorzy to uznani specjaliści, a tytuł ten stał się bestselerem. Bardzo obszerna publikacja bo zawierająca prawie 700 stron. Rozdziały kończą się podsumowaniami i najczęściej zadawanymi pytaniami, na końcu znajdziemy też bardzo przydatny słownik terminów.

Image

Przydatna publikacja szczególnie podczas nauki podczas kursów do egzaminów CCNA. Obejmuje zbiór poleceń systemu CISCO IOS wraz z opisem opcji i argumentów przedstawionych w formie czytelnych tabel. Opisano polecenia dotyczące zarządzania systemem, protokołów routingu RIP, RIP-2, IGRP, OSPF, EIGRP, konfiguracji NAT, VLAN,SNMP, dzielenie na podsieci (klasowe i VLSM), i wiele innych zagadnień. Wewnątrz okładki posiada wygodny spis pt. „Co chcesz zrobić?” z listą przykładowych zadań, np: Przywrócić hasło na przełączniku -> CCNA3 rozdział 6 stony 128-131 !





Image

Publikacja stanowi bardzo dobry podręcznik mający za sobą sukces wydawniczy (6 wydań w Polsce i kilka zagranicznych) i jest uzupełniony o implementacje omawianych treści w języku java. Autor czasami dokonuje porównań omawianych treści w kontekscie języka c++ z uwagi na historię ksiąki). Poprzez historię algorytmiki, systemy kodowania informacji, złozoność algorytmów autor przechodzi do omówienia najwazniejszych zagadnień: rekurencji, drzew i zbiorów, Java Collections Framework, sortowania, przeszukiwania, derekursywacji i optymalizacji algorytmów, kodowania i kompresji danych, algorytmów grafowych i numerycznych.
Trudno wymienić w skrócie zawartość tej ksiązki, ale bez wątpienia stanowi ona solidne wsparcie dla studentów.

Image


Wreszcie pojawiła się książka szeroko opisująca ogromne możliwości javafx, bo zwykle można było trafić na zaledwie jeden rozdział, który w dużym skrócie przedstawiał podstawowe komponenty. Można odnieść wrażenie, że jest tu chyba wszystko, czego można by oczekiwać od publikacji opisującej zastosowania GUI, również zdarzenia gestów i dotyku, ułatwień dostępu. JavaFX pozwala na tworzenie bardzo estetycznych interfejsów użytkownika, więc jeśli planujemy realizację aplikacji desktopowej w javie to warto skorzystać z tej technologii.

Image

Książka jest nowym wydaniem dosyć starej publikacji, co nie ma wielkiego wpływu na jej wartość merytoryczną ponieważ podstawy tam zawarte po niemal 40 latach nadal w duzej części obowiązują. Na początku autor opisuje ogólne pojęcie kodu poprzez Morse’a (do 4 bitów), Braille’a (6 bitów) do systemu dwójkowego i szesnastkowego. Z ciekawością prezentuje kulisy powstania wymienionych kodów. Następnie algebra Boola, de Morgana stanowiące podstawę do opisu bramek logicznych, którym poświęcony jest znaczny fragment książki. Zaznajomienie czytelnika z działaniem bramek pozwala na poznanie prostych przerzutników, a więc podstawowych elementów pamięci operacyjnej komputera i dalej oscylatorów i taktowania, przerwań, magistrali komunikacyjnej, procesorów, wyświetlania obrazu. Dzięki temu poznajemy działanie komputerów od podstaw, głównie poprzez omówienie procesorów z lat 70 i 80tych (intel 8080, motorola 6800), ich budowy, rozkazów () które jeszcze pamiętam z asemblera mikroprocesora 7501 z czasów dzieciństwa. Książka jest napisana w przystępny sposób, przejrzyście złożona i raczej skierowana do szerszego grona czytelników zainteresowanych tą tematyką, niż wąskiej grupy specjalistów.




Image



Książka przybliża techniki reagowania na incydenty bezpieczeństwa sieci, zawiera studia przypadków opisując techniki, etapy ataków i przedsięwzięte kroki. Zawiera też informacje o narzędziach, gromadzeniu danych, sporządzaniu dokumentacji, masę linków i sporą liczbę poleceń popularnych narzędzi (wykonanie z poziomu CLI). To obszerna, treściwa i bardzo interesująca publikacja i naprawdę trudno w skrócie streścić jej zawartość.

Image

Jest to kolejna publikacja autora code siplicity. W skrócie udziela w niej rad, jak można stać się lepszym programistą. Klucze do realizacji tego celu to przede wszystkim prostota kodu, wydajne debugowanie i skuteczna praca w zespołach. Najciekawsze myśli wyróżnone są pobrubioną czcionką. Książka nie jest zbyt obszerna i męcząca. Zawiera około 250 stron w niewielkim formacie zbliżonym do A5.

Image

Książka może nie koncentruje się na opisie konkretnych technologii i prezentowaniu ich implementacji, ale jest relacją historyczną o początkach systemu Unix, pełną ciekawych, osobistych wspomnień autora, który uczestniczył w tym przedsięwzięciu. Jest to o tyle istotne, ze system ten stanowi pochodzenie wielu obecnych systemów i usług. Przykładów nie trzeba szukać daleko ponieważ pochodne unixa możemy spotkać w produktach Apple i opartych na systemie Android, OSX i Linux. Z ciekawością możemy przeczytać o kulisach powstania takich rozwiązań jak BASH, nawet historii poszczegolnych komend, rozwoju niektórych języków programowania (Squeak -> Limbo -> Alef -> Go/Golang). Myślę, że ta publikacja to uczta dla geeków.





Image

Książka ta omawia jeden z najpopularniejszych systemów kontroli wersji stworzony przez Linusa Torvaldsa i stanowiący już standard. Autor bardzo wyczerpująco omawia najważniejsze zagadnienie, i co najfajniesze, zastosowanie na bieżąco sprawdzamy podczas ćwiczeń. Znajdziemy tu znacznie więcej szczegółów dotyczących poleceń gita niż w rozmaitych internetowych poradnikach. Jedyny szczegół to terminologia stosowana przez autora, który używa spolszczonych nazw (obszar roboczy, indeks, rewizja chociaż częściej spotkamy się z working directory, staging area czy commit)

Image


Już nie nowa, lecz nadal przydatna ksiązka poświęcona wzorcom projektowym w javie. Znajdziemy w niej rozwiązania podobnie jak w klasyce "gangu czworga" poświęconej wzorcom projektowym, w podziale na konstrukcyjne, strukturalne i czynnościowe. Mowa w niej o 23 wzorcach, które właśnie zostały przedstawione w w wyzej wspomnianej publikacji. Jest przystępnie napisana, zilustrowana UMLami. Zawiera tez zastosowania, podsumowania i zagadnienia do przemyślenia.

Image



Zbyt stara, żeby się rozpisywać. Na pewno wyjaśnia ogólne założenia frameworka spring i warto się skupić nad wybranymi fragmentami.




Image

Ksiązka dająca głównie podstawy języka java mająca na celu przygotowanie do pisania aplikacji na system android w javie. Co prawda android został juz zdominowany przez kotlina, a w ksiązce nie znajdziemy ani jednego przykładu zastosowania API android to mimo wszystko daje dobre podstawy języka i opisuje szereg ciekawych klas. Słowo android w tytule jest dla mnie trochę zastanawiające.

Image


content

Image



content








Image