Sytuacja kobiet w IT w 2024 roku
27.02.20236 min
Simon Holdorf

Simon HoldorfFull-Stack EngineerSME

10 książek dla inżynierów oprogramowania na 2023 rok

Poznaj 10 najpopularniejszych książek, które podniosą wiedzę Inżyniera Oprogramowania w 2023 roku.

10 książek dla inżynierów oprogramowania na 2023 rok

Oprócz wszystkich wspaniałych ofert współczesnego świata - podcastów, filmów, blogów itp. – przeczytanie dobrej książki jest nadal czymś, z czego wielu ludzi nie rezygnuje. Przeczytałem wiele ciekawych pozycji obejmujących rzeczy związane z techniką, takie jak inżynieria oprogramowania, i nadal czytam, ponieważ chcę poznać nowe wzorce i najlepsze praktyki.

Znalezienie dobrej książki w tematyce inżynierii oprogramowania nie jest wcale takie łatwe, ponieważ ekosystem zmienia się bardzo szybko, czyniąc wiele rzeczy przestarzałymi po krótkim czasie. Jest to szczególnie prawdziwe w przypadku książek, które opierają się na konkretnej wersji języka programowania.

Są jednak dostępne evergreeny, książki, które zajmują się meta-tematyką, wzorcami projektowymi lub ogólnym sposobem myślenia.

Poniższa kolekcja składa się z kilku najpopularniejszych dostępnych książek. Starsi programiści często polecają młodszym takie książki, które nadal są aktualne. Wiem, że czas jest cenny, zwłaszcza dla inżynierów oprogramowania, ale jeśli uda ci się przeczytać przynajmniej niektóre z nich, to jestem pewny, że pomoże to Tobie i Twojej karierze. Zwróć uwagę, że ta lista nie jest w żadnej konkretnej kolejności, ponieważ wszystkie te książki są godne polecenia.

Cracking the Coding Interview

„Cracking the Code Interview: 189 Programming Questions & Solutions” to książka godna polecenia każdemu, kto chce lub musi przystąpić do rozmów kwalifikacyjnych z zakresu kodowania. Autorka Gayle Laakmann McDowell, doświadczona inżynier oprogramowania, była zarówno uczestnikiem rozmowy kwalifikacyjnej, jak i jej kandydatem. Pomoże Ci ona szukać ukrytych szczegółów w pytaniach, rozbijać problemy na drobniejsze kwestie i lepiej uczyć się pojęć.

Co więcej, Gayle zamieściła w książce 189 prawdziwych pytań z rozmów kwalifikacyjnych i rozwiązań, dzięki czemu dobrze przygotujesz się do następnej rozmowy! 

Code Complete

„Code Complete: a Practical Handbook of Software Construction, 2nd Edition” autorstwa Steve’a McConnella to jedna z tych książek, które każdy programista powinien chyba raz w życiu przekartkować.

Jest to kompleksowa analiza budowy oprogramowania, dobrze napisana i dobrze przyjęta w branży. Porusza tematy projektowania, kodowania, debugowania i testowania.  

Ogólnie rzecz biorąc, ta książka będzie miała prawdopodobnie najwyższy ROI dla programistów z rokiem do trzech lat profesjonalnego doświadczenia w programowaniu. Jednak polecam ją również początkującym, ponieważ doda Ci ona więcej pewności siebie podczas konstruowania oprogramowania.

Główny wniosek? Programiści muszą zarządzać złożonością. To znaczy pisać kod, który jest łatwy do utrzymania i czytania dla Ciebie i innych.

Clean Code

„Clean Code: A Handbook of Agile Software Craftsmanship” autorstwa Roberta C. Martina (Wujka Boba) to jedna z najpopularniejszych książek programistycznych. Została napisana, aby nauczyć inżynierów oprogramowania zasad pisania czystego kodu. Zawiera wiele przykładów pokazujących jak refaktoryzować kod, aby był bardziej czytelny i łatwy w utrzymaniu. Jest ona jednak bardzo skoncentrowana na Javie. Podczas gdy niektóre wzorce i techniki można przenieść do ogólnie pojętego programowania lub innych języków, to głównym odbiorcą tej książki są programiści Javy.

Kolejną rzeczą, na którą należy zwrócić uwagę jest to, że książka pochodzi z 2009 roku. Niektóre treści, takie jak formatowanie kodu, są dziś mniej istotne ze względu na dostępne narzędzia i IDE. Mimo wszystko jest to bardzo dobra lektura.

Refactoring

Książka „Refactoring: Improving the Design of Existing Code, 2nd Edition” autorstwa Martina Fowlera wyjaśnia, czym jest refaktoryzacja, podobnie jak jej oryginał sprzed 20 lat. Pytania, które możesz sobie zadać, a na które odpowiedź znajdziesz w tej książce to:  

  • Dlaczego powinienem refaktoryzować swój kod?
  • Jak rozpoznać kod, który wymaga refaktoryzacji?
  • Jak mogę z powodzeniem refaktoryzować swój kod?


Po przeczytaniu tej książki powinieneś być w stanie zrozumieć proces i ogólne zasady refaktoryzacji, które możesz szybko zastosować w swojej bazie kodu. Powinieneś również być w stanie dostrzec „brzydkie zapachy” w kodzie kolegi z zespołu, które wymagają refaktoryzacji.

Head First Design Patterns

„Head First Design Patterns: A Brain-Friendly Guide” Erica Freemana, Berta Bates’a, Kathy Sierry i Elisabeth Robson uczy wzorców projektowych i najlepszych praktyk stosowanych przez innych programistów do tworzenia funkcjonalnego, wielokrotnego użytku, eleganckiego i elastycznego oprogramowania. Jest również wypełniona świetnymi wizualizacjami, dzięki którym szybciej nauczysz się nowych koncepcji.

Ta książka to świetny wybór, jeśli chcesz poznać takie rzeczy jak fabryki, singletony, wstrzykiwanie zależności itp. Przykłady są napisane w Javie, więc nie zaszkodzi, jeśli będziesz znał ten język lub inny obiektowy.

Patterns of Enterprise Application Architecture

„Patterns of Enterprise Application Architecture” to kolejna doskonała książka Martina Fowlera, która dotyczy praktyki tworzenia aplikacji korporacyjnych. Po krótkim tutorialu na temat tworzenia aplikacji korporacyjnych, Martin podaje ponad 40 wzorców jako rozwiązania typowych problemów podczas projektowania aplikacji korporacyjnych. Książka zawiera również wiele wizualizacji UML oraz przykłady kodu napisanego w języku Java lub C#.

Po przeczytaniu książki powinieneś być w stanie podzielić aplikację korporacyjną na warstwy, znać praktyczne podejścia do organizowania logiki biznesowej, używać wzorców MVC do organizowania aplikacji internetowych i obsługiwać współbieżność danych w wielu transakcjach.

Książka ta jednak nie starzeje się dobrze, nie wspomina się o tak nowoczesnych pojęciach jak REST, chmura czy JSON. To wciąż dobra lektura, ale warto włączyć krytyczne myślenie podczas jej czytania.

Working Effectively with Legacy Code

W książce „Working Effectively With Legacy Code” autorstwa Michaela Feathersa, autorzy proponują strategie radzenia sobie z dużymi, nietestowanymi bazami kodu legacy. Możesz sądzić, że skoro żyjemy w 2023 roku, a kod legacy nie powinien być już problemem, ponieważ wszystko co mamy to tylko czysty, utrzymywalny kod i mikroserwisy, to zapewniam Cię, że jest to błędne przeświadczenie. Kod legacy nadal jest jednym z najtrudniejszych problemów dla wielu firm.

Po przeczytaniu tej książki powinieneś być w stanie zrozumieć ogólną mechanikę zmiany oprogramowania, taką jak dodawanie funkcji, naprawianie błędów, optymalizacja wydajności i doskonalenia projektu. Ponadto dowiesz się, jak przygotować kod legacy do testów i jak zidentyfikować miejsca, w których kod wymaga zmian.  

Książka zawiera przykłady napisane w Javie, C++, C i C#, ale także wskazówki dotyczące radzenia sobie z kodem legacy, który nie jest zorientowany obiektowo.

The Clean Coder

Kolejna książka Wujka Boba uczy technik, dyscyplin, narzędzi i praktyk prawdziwego kunsztu programistycznego. „The Clean Coder: A Code of Conduct for Professional Programmers” zawiera dużo praktycznych porad dotyczących szacowania, kodowania, refaktoryzacji i testowania.

Po przeczytaniu tej książki powinieneś umieć radzić sobie z konfliktami, napiętymi harmonogramami i niemądrymi menedżerami; radzić sobie z nieustanną presją i unikać wypalenia; zarządzać swoim czasem; wpadać w trans kodowania i sprzyjać środowiskom, w których programiści i zespoły mogą się rozwijać.

Ta książka jest dobrze przyjęła się w branży, ale myślę, że nie wszystko w niej jest czystym złotem. Zawiera wiele anegdot i hipotetycznych rozmów, z których często wynika, że to programista jest ostatecznie odpowiedzialny za to, co robi. Dochodzi do tego stopnia, że w jednej z wypowiedzi radą dla programisty, którego kod wygenerował błąd, jest zwrócenie firmie strat finansowych.

Tak więc moja rada to uważne i krytyczne przeczytanie książki, jeśli już!

Introduction to Algorithms

„Introduction to Algorithms, Third Edition” autorstwa Thomasa H. Cormena, Charlesa E. Leisersona, Ronalda L. Rivesta i Clifforda Steina to nic innego jak niezbędny przewodnik po różnego rodzaju algorytmach. Jest to dość wyczerpująca temat książka i przystępna dla wszystkich czytelników, zarówno początkujących, jak i profesjonalistów. Obejmuje ona wiele tematów, ale równocześnie jest też skomplikowana i nie tak łatwo czasem za nią nadążyć.

Obejmuje struktury danych, szybkie algorytmy, algorytmy czasu wielomianowego dla pozornie niełatwych problemów, teorię grafów, geometrię obliczeniową i wiele innych. Chociaż zawiera kilka przykładów w pseudokodzie, jak dla mnie jest to książka teoretyczna.

The Pragmatic Programmer

„The Pragmatic Programmer” to jedna z najważniejszych książek, jakie kiedykolwiek przeczytałem. Zawiera techniczne i profesjonalne praktyczne porady, które pomogły mi w wielu projektach i stałem się dzięki temu lepszym programistą.

Książka jest bardzo aktualna nawet w 2023 roku, zwłaszcza z nowym jubileuszowym wydaniem z okazji 20-lecia wydania. Przygląda się temu, co to znaczy być nowoczesnym programistą, zgłębiając tematy, które obejmują zakres od odpowiedzialności osobistej i rozwoju kariery po techniki architektury.

Po przeczytaniu książki powinieneś wiedzieć, co oznacza ciągłe uczenie się i dlaczego jest tak ważne; jak pisać elastyczny, adaptowalny i dynamiczny kod; jak rozwiązywać problemy kodu współbieżnego; jak strzec się luk w zabezpieczeniach; jak bezwzględnie i skutecznie testować; i wiele więcej.

Jeśli miałbym wybrać jedną książkę, którą mógłbym Wam polecić, to byłaby to właśnie ta książka!

Podsumowując, są to jedne z najpopularniejszych książek dla programistów. Gdybym miał wybrać książkę, którą mógłbym Ci polecić, byłaby to „The Pragmatic Programmer” Andrew Hunta. Książki Roberta C. Martina są powszechnie uznane w branży i lubiane przez wielu programistów, ale czytając je byłbym dość krytyczny, ponieważ nie podzielam wielu poglądów wujka Boba.

<p>Loading...</p>