Czytając fora internetowe i branżowe blogi często trafiamy na wpisy w których ktoś poleca książki. Na portalu StackOverflow udzielając odpowiedzi ludzie często powołują się na jakiś tytuł z dopiskiem, że warto go przeczytać. Książki te są polecane tak często, że można uznać, że jest to zbiór książek przyjętych wśród programistów jako tzw. „Must read”. Postanowiłam zebrać te polecane tytuły i przedstawić je w tym artykule. Aktualnie jestem w trakcie czytania książki „Effective Java” i przyznaję – jest świetna.

Wielu ludzi poszukuje książki, która pomogłaby im w rozwoju jako developer:

Książki dla programistów Javy według poziomu zaawansowania
Książki zebrałam w grupy według doświadczenia czytelnika. W grupie pierwszej: „Początkujący” zamieściłam zestawienie książek, od których warto zacząć naukę programowania. W kategoriach „Poszukujący” i „Zaawansowany” zamieściłam książki „Must read” najczęściej polecane w internecie.
1. Początkujący
Książki – kompendia czyli sposób na systematyzację wiedzy:
- Java. Kompendium programisty – Herbert Schildt
- Osobiście polecam książkę Kompendium Programisty, mój faworyt w tej kategorii. Jest to bardzo dobry, kompleksowy przegląd zagadnień Javy. Książka napisana jest w przejrzysty sposób, wszystkie tabelki i zestawienia są czytelne. Autor nie rozwodzi się nad poszczególnymi tematami. Książka ta jest bardziej przejrzystą i skróconą wersją dokumentacji Javy SE.
- Java. Podstawy + Java. Techniki zaawansowane – Cay S. Horstmann
- Zdarzyło mi się przeglądać te pozycje. Dobre ze względu na to, że na początku możemy zakupić tylko wersję dla początkujących, co obniża ogólną cenę. Jeśli szukamy kompleksowego przeglądu Javy SE musimy jednak przeczytać więcej stron niż w przypadku Kompendium Oracle.
- Oracle Certified Professional Java Se 8 Programmer II Study Guide + Associate Oracle Certified Java Se 8 Programmer I Study Guide
- Jeżeli zamierzasz w przyszłości zdawać egzamin z języka Java, polecam zakup tych dwóch książek. Można upiec dwie pieczenie na jednym ogniu. Posiadamy kompleksowy przegląd zagadnień jednocześnie przygotowując się do egzaminu Oracle. Książkę OCA przeczytałam i muszę powiedzieć, że jest naprawdę dobrze napisana. Bez zbędnych ceregieli, z zachowaniem kompatybilności wstecznej. Omawiane są zarówno nowe jak i stare elementy API.
- This is Test Driven Development – Kent Beck
- Książka często polecana dla osób początkujących. Pozwala zapoznać czytelnika z TDD już na początku drogi z programowaniem co może przynieść korzyści w przyszłości.
- Thinking in Java – Bruce Eckel
- Jedni ją kochają, inni nienawidzą. To kompleksowy przegląd zagadnień, a nawet więcej. Autor bardzo szczegółowo wdaje się w poszczególne tematy. Książka jest gruba, ale warta przeczytania.
- Java 8. Przewodnik doświadczonego programisty – Cay S. Horstmann
- Niech nie zmyli was słowo „doświadczonego” w tytule. Książka w oryginalne nazywa się „Core Java for the Impatient” czyli tak naprawdę „Java dla niecierpliwych”. Książka ma być przeznaczona dla ludzi, którzy chcą rozpocząć programowanie w Javie w wersji 8.
2. Poszukujący
Programista poszukujący to ktoś, kto zna język w którym programuje, wykonał już kilka małych projektów ale ma przed sobą długą drogę by zostać profesjonalistą. Poszukującym programistą można być przez wiele lat. Nie wystarczy znać język, należy zrozumieć jak efektywnie go stosować, zrozumieć szczegóły jego działania i sposoby integracji tworzonych systemów.
- Effective Java – Joshua Bloch
- To cienka książka niezwykle często cytowana na StackOverflow, która mimo swojej niepozornej objętości omawia wiele realnych problemów, z którymi spotyka się w pracy programista. Książka odpowiada na pytanie: Jak efektywnie programować przy użyciu dostępnego API Javy? Zwykle, kiedy zastanawiasz się czy „Czy powinienem tak używać tej metody? Czy powinienem napisać to inaczej?” odpowiedź znajdziesz w tej książce.
„I sure wish I had had this book ten years ago. Some might think that I don’t need any Java books, but I need this one.”
– James Gosling, Fellow and Vice President, Sun Microsystems, Inc.
Czyty kod – Robert C. Martin- Słynny Uncle Bob i jego czysty kod to pozycja, którą musisz przeczytać. Osobiście polecam wykłady Boba dostępne na YouTube:
– The S.O.L.I.D. Principles of OO and Agile Design [Youtube]
– Uncle Bob at Yale School of Management[Youtube]Clean code is not written by following a set of rules. You don’t become a software craftsman by learning a list of heuristics. Professionalism and craftsmanship come from values that drive disciplines.”
― Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship
oraz:
-
- The Pragmatic Programmer
– Andrew Hunt, David Thomas
-
- Zwinne wytwarzanie oprogramowania
– Robert C. Martin
-
- Programming Pearls
– Jon Bentley
-
- Java 8 in Action: Lambdas, Streams, and functional-style programming
– Raoul-Gabriel Urma
-
- Effective Unit Testing: A guide for Java developers
– Lasse Koskela
-
- Design Patterns: Elements of Reusable Object-Oriented Software
– Erich Gamma, Ralph Johnson, Richard Helm, John Vlissides(GOF)
3. Profesjonalista
- Java Concurrency in Practice – Brian Goetz and Joshua Bloch
- Jedna z najbardziej znanych książek o wielowątkowości.
- Java Puzzlers: Traps, Pitfalls, and Corner Cases
- – Joshua Bloch and Neal Gafter
Woking Effectively with Legacy Code- – Michael Feathers
Refactoring: Improving the Design of Existing Code- – Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts, Erich Gamma
Peopleware- – Tom DeMarco
- Będąc profesjonalistą bierzesz odpowiedzialność także za swój zespół. Książka „Peopleware” opowiada o tym jak efektywnie pracować w zespole i nim zarządzać.
4. Dodatek: Popularny Autor – Joshua J. Bloch
Joshua J. Bloch (ur. 1961) jest inżynierem oprogramowania, obecnie pracującym w Google. Prowadził projekt i implementację licznych funkcjonalności języka i platformy Java, między innymi Java Collections, pakietu java.math i mechanizmu asercji. Bloch jest autorem książki Effective Java, która wygrała 2001 Jolt Award. Bloch posiada tytuł bakałarza informatyki Columbia University i stopień doktora informatyki Carnegie-Mellon University. Bloch pracował jako Senior Systems Designer w Transarc, a następie jako Distinguished Engineer w Sun Microsystems. W czerwcu 2004 r. opuścił Sun i został Chief Java Architect w Google. W grudniu 2004 r. Java Developers Journal zamieścił Blocha na liście „Top 40 Software People in the World”. – Wikipedia.
Książki:
- Efektywne programowanie w języku Java (Effective Java)
- Java Puzzlers: Traps, Pitfalls, and Corner Cases
- Java Concurrency in Practice