JavaRush /Blog Java /Random-PL /10 najlepszych książek o programowaniu dla początkujących...
Max Stern
Poziom 35
Нижний Новгород

10 najlepszych książek o programowaniu dla początkujących

Opublikowano w grupie Random-PL
Mam kolegę, który przeprowadził wiele rozmów technicznych dla przyszłych Javaistów. Zapytałem go kiedyś, co wpływa na decyzję o zatrudnieniu kandydata bez prawdziwego doświadczenia, gdy wybiera się spośród osób o mniej więcej równych umiejętnościach językowych. Biorąc pod uwagę sytuację na rynku, myślę, że to pytanie jest istotne dla wielu z Was. 10 najlepszych książek o programowaniu dla początkujących - 1„Pasja do technologii, umiejętność wyboru najlepszej opcji rozwiązania problemu, ogólna erudycja informatyczna, zrozumienie tego, co go czeka w pracy” – taka była jego odpowiedź. Kiedyś opisałem w artykule książki o programowaniu dla początkujących, które pomogły mi w nauce Javy. W tym artykule skupię się na publikacjach, które pomogą początkującemu programiście zdobyć właśnie tę erudycję informatyczną, zrozumienie przyszłej pracy, a także ułatwią zadanie wyboru najlepszego rozwiązania. Oznacza to, że znajdź pracę i od samego początku wykonuj ją jak najlepiej. Zestawiłem tę listę według własnych preferencji, więc może być nieco subiektywna. Istnieją zarówno klasyczne podręczniki programowania dla studentów, jak i podręczniki dla programistów wszystkich pokoleń.

Poprawa kodu i produktywności

Samo napisanie kodu nie wystarczy. Ważne jest, aby napisać go dobrze, móc go ulepszyć, a także ogólnie zrozumieć, jak jest rozwijany. Poniższe książki dla początkujących programistów i nie tylko pomogły już niejednemu pokoleniu specjalistów uporać się z trudnym procesem technologicznym tworzenia oprogramowania.

Pragmatyczny programista. Czeladnik do mistrza (Andrew Hunt, David Thomas)

Tytuł oryginalny: The Programmatic Programmer from From Journeyman to Master autorstwa Andrew Hunta i Davida Thomasa 10 najlepszych książek o programowaniu dla początkujących - 2. Jeśli nie czytałeś tej książki, najprawdopodobniej wielokrotnie natrafiłeś na jej cytaty na forach i w specjalistycznych zasobach. Wizerunek pragmatycznego programisty w tej książce jest tak wyraźny i wyidealizowany, że... można go nazwać romantykiem, jakkolwiek paradoksalnie by to nie zabrzmiało. Niemniej jednak rady zawarte w tej książce są praktyczne i istotne, pomimo jej zaawansowanego wieku. Nie wiem do czego porównać „Pragmatyka programistę” w świecie książek o programowaniu. Najbliższe odpowiedniki nie z tego świata to „Stary Testament” lub jakaś super fajna książka kucharska. W „Pragmatyce” wszystko jest bardzo konkretne i maksymalnie możliwe do zastosowania w praktyce. Czasem dochodzi to do banału (np. rozdział poświęcony skutecznej komunikacji zawiera podstawowe zasady etykiety biznesowej), ale czasem rady z książki są niezastąpione, zwłaszcza jeśli początkujący programista nie ma cierpliwego i uważnego mentora. Są to wskazówki dotyczące powtarzalności kodu, prototypowania, szacowania. Albo przypomnienie o niemożności stworzenia programu idealnego. Znajdują się tam również przydatne punkty techniczne związane np. z debugowaniem kodu, testowaniem jednostkowym czy szybkością algorytmów... Krótko mówiąc, co trzeba przygotować do kariery programisty.

Refaktoryzacja ulepszająca istniejący kod (Martin Fowler)

Tytuł oryginalny: Refactoring: Improving the Design of Existing Code autorstwa Martina Fowlera i Kenta Becka. 10 najlepszych książek o programowaniu dla początkujących - 3Jeśli poprosisz kogoś o listę najlepszych książek wszechczasów o programowaniu rozwijającym karierę, ktoś z pewnością wspomni o „Refaktoryzacji”. Ktoś może powiedzieć, że ta książka jest przestarzała i w pewnym sensie będzie miał rację. Został napisany w czasach, gdy refaktoryzacja nie była jeszcze uniwersalną zasadą, a niektóre zawarte w nim prawdy są oczywiste dla współczesnych aspirujących programistów. Niemniej jednak techniki refaktoryzacji są w nim opisane na tyle dobrze i szczegółowo (w niektórych miejscach powiedziałbym nawet, że rozwlekle), że każdy początkujący znajdzie w nim coś przydatnego. Kilka lat temu ukazało się zaktualizowane wydanie książki, w którym dodano nowe techniki, co jest świetne. Ponadto przykłady zawarte w tej książce są napisane w języku Java. Jedynym minusem, o którym mogę wspomnieć, jest gadatliwość. Mimo to książkę polecam.

Czysty kod (Robert Martin)

Tytuł oryginalny Clean Code: A Handbook of Agile Software Craftsmanship autorstwa Roberta C. Martina 10 najlepszych książek o programowaniu dla początkujących - 4Książka ta, choć nowsza od poprzedniej, stała się także klasyką książek o programowaniu. „Wujek Bob”, jak czasem w globalnej społeczności programistów nazywany jest Robert Martin, jest jednym z autorów manifestu Agile, a także niektórych zasad współczesnego „czystego” programowania, na przykład SOLID. Za jeden z głównych motywów przewodnich książki można uznać… empatię, czyli po prostu dobre podejście do wszystkich, którzy będą musieli pracować z Twoim kodem (w tym także do Ciebie w przyszłości). Większość zasad „Czystego Kodeksu” opiera się na tej prostej zasadzie i zdrowym rozsądku. Większość zasad i porad wydaje się bardzo trafna, taka, która intuicyjnie wiruje w głowie, ale nie jest łatwo je jasno sformułować. Z niektórymi przemyśleniami autora można jednak polemizować: bywa on niezwykle kategoryczny. Pisze na przykład, że dobry kod nie wymaga komentowania. Mimo wszystko książkę trzeba przeczytać.

Efektywna praca ze starszym kodem (Michael Feathers)

Tytuł oryginalny Working Effectively with Legacy Code autorstwa Michaela Feathersa 10 najlepszych książek o programowaniu dla początkujących - 5Życie nie przygotowało cię na to... Nie, naprawdę: jeśli dopiero się uczysz, nie możesz sobie wyobrazić, jaki ból sprawia praca ze starszymi kodami, które zostały prawdopodobnie napisane przez dziadka Billa Gatesa. Kod ten jest często napisany zupełnie inaczej niż to, do czego jesteś przyzwyczajony i jest tak słabo udokumentowany, że czasami chcesz znaleźć jego autora i... Niestety: życie programisty Java przy dużych projektach bardzo często wiąże się ze wsparciem dla starszych wersji. Ta książka może pomóc w technicznych aspektach pracy ze starożytnym kodem, ale może również pomóc ci pogodzić się ze swoim losem. I tak, mówię poważnie. Ta książka będzie dla Ciebie przydatna, jeśli Twoim celem jest firma outsourcingowa lub produktowa realizująca duże projekty.

Na główkę. Wzorce projektowe (Eric Freeman, Bert Bates, Kathy Sierra, Elizabeth Robson)

Tytuł oryginalny Head First Design Patterns: A Brain-Friendly Guide autorstwa Erica Freemana, Berta Batesa, Kathy Sierra, Elisabeth Robson 10 najlepszych książek o programowaniu dla początkujących - 6Wzorce projektowe to logiczne zasady dobrej formy, które przyjdą Ci na myśl, jeśli nie będziesz ich przestudiować z biegiem czasu ( czy nie...) i które dosłownie zamieniają się w supermoc początkującego programisty, jeśli zaczniesz się im przyglądać tak wcześnie, jak to możliwe. Tak, na początku warto pobawić się stosunkowo złożonym projektem osobistym i spróbować samodzielnie podzielić go na podzadania... i ostatecznie znaleźć ten sam wzór. Jednak jeśli chodzi o pracę, nie zawsze jest wystarczająco dużo czasu na eksperymenty. Kiedy dostałem staż, niewiele wiedziałem o wzorcach: studiując w JavaRush, po prostu omijałem te wszystkie fabryki, singletony, zastrzyki, zależności, myśląc, że w razie potrzeby to rozpracuję. Trzeba było to jednak bardzo szybko rozgryźć, a była to książka „Głowa pierwsza. Wzorce projektowe” pomogły mi w tym. Jest napisana lekko, pełna ilustracji i humoru... Uważam, że prezentacja tematu „wzorce projektowe” jest bardzo ważna: można ją przedstawić w bardzo nudny sposób lub można to zrobić jak w Head First. Świetny dodatek do „czystego kodu” i/lub „refaktoryzacji”!

Architektura komputerów i informatyka ogólna

Jak ważne dla przyszłego programisty jest zrozumienie architektury komputera, wiedza o strukturze systemów operacyjnych i baz danych? Nie jest faktem, że ta wiedza przyda Ci się w pracy. Ale na pewno pomogą Ci wykazać swoją pasję do branży IT i wiedzę IT. A co najważniejsze: jeśli wiesz, jak wszystko działa, pomoże ci to lepiej rozwiązywać problemy. Informacje 100%. Oto dwie kolejne książki, które mogą Ci pomóc.

Kod (Charles Petzold)

Tytuł oryginalny Code: The Hidden Language of Computer Hardware and Software autorstwa Charlesa Petzolda 10 najlepszych książek o programowaniu dla początkujących - 7Pierwsze wydanie „Code” ukazało się światu na początku XXI wieku, ale w rzeczywistości mogło ukazać się wcześniej lub później – i nadal byłoby aktualne. Faktem jest, że w tej książce działanie komputera jest wyjaśnione na bardzo, bardzo niskim poziomie, zaczynając od działania tych zer i jedynek, a pierwszym technicznym przykładem jest obwód latarki, który można uznać za najprostszy -bitowy komputer... Nie, nie sądzisz, że wszystko w tej książce jest bardzo prymitywne. Wręcz odwrotnie... Opisuje obwody komputerowe, polecenia, działanie pamięci i systemy operacyjne w ich istocie. Być może dopiero po przeczytaniu zrozumiałem, jak działają komputery. Mimo że zmienia się architektura i zestaw instrukcji procesora, a także zwiększa się przepustowość pamięci, w istocie komputery działają dokładnie tak samo. Czy programista Java potrzebuje tej wiedzy? Bardzo niewiele osób będzie ich potrzebować bezpośrednio w swojej pracy. Ale pośrednio, często w pracy pomagało mi to, że rozumiałem, jak to wszystko właściwie działa.

Wprowadzenie do informatyki (Glenn Brookshire, Dennis Brilov)

Tytuł oryginalny Computer Science: An Review autorstwa Glena Brooksheara i Dennisa Brylowa 10 najlepszych książek o programowaniu dla początkujących - 8Książka ta trafiła do mnie jeszcze na uniwersytecie, kiedy studiowałem podstawy informatyki. Tylko ja otrzymałem tłumaczenie wydania szóstego, a obecnie aktualne jest wydanie trzynaste. Książka jest podstawowym kursem z informatyki, wykładanym od wielu lat na uniwersytetach w Stanach Zjednoczonych i innych krajach. Zakres zawartego w nim materiału jest bardzo szeroki: architektura maszyn, systemy liczbowe, przetwarzanie danych, systemy operacyjne, zasady budowy baz danych, struktury danych, struktury plików i tak dalej. Nie wszystkie części książki są napisane równie dobrze. Na przykład kiedyś byłem bardzo zdezorientowany sekcjami dotyczącymi metod projektowania i baz danych, ale sekcje dotyczące systemów liczbowych, obliczeń bitowych, architektury komputerów PC i struktur danych naprawdę przypadły mi do gustu. Najfajniejszą rzeczą w tej książce jest ogromna liczba ćwiczeń z klawiszami. Oprócz studentów taka książka jest prawdopodobnie potrzebna przede wszystkim osobom samoukom bez wykształcenia technicznego, aby uzupełnić luki i ogólnie zorientować się w informatyce.

Algorytmy i struktury danych. I kolejny atak!

Biorąc pod uwagę wysoki poziom współczesnego programowania, znajomość algorytmów straciła na znaczeniu. Teraz wystarczy skorzystać z wymaganej biblioteki i nie zastanawiać się, jak najlepiej posortować tablicę. Jednak nadal będziesz musiał męczyć się w pracy i to nie raz. Pamiętasz punkt „umiejętność wyboru najlepszego możliwego rozwiązania” z wymagań początkującego programisty? Tak więc, bez względu na to, co ktoś mówi, uważam, że dobre szkolenie algorytmiczne jest doskonałym ulepszeniem w znajdowaniu optymalnych rozwiązań. Dlatego też kolejne dwie książki są właśnie o nich. O algorytmach.

Bujamy algorytmy. Ilustrowany przewodnik dla programistów i ciekawskich Adityi Bhargavy

Tytuł oryginalny: Grokking Algorithms: An Ilustrowany przewodnik dla programistów i innych ciekawskich autorstwa Adityi Y. Bhargavy 10 najlepszych książek o programowaniu dla początkujących - 9Sam autor pisze na początku książki, że algorytmy nie przyszły mu od razu do głowy i próbował napisać „Grokking Algorithms” tak, aby żeby łatwo było to przeczytać. Przeznaczony jest dla początkujących programistów, czyli tych, którzy potrafią pisać „hello, world” i wiedzą, czym jest int, string, pętla, gałąź i tablica. Cóż, może wyświetlić tablicę na ekranie. Wymagana wiedza z matematyki kształtuje się mniej więcej na poziomie 6-7 klas szkoły średniej bez zbędnych dodatków. I to jest pierwszy poważny plus tej książki. Nie próbuje wyobrazić sobie czytelnika jako studenta matematyki, jak robi to wiele publikacji na ten temat. Oznacza to, że jeśli boisz się matematyki, algorytmów, tego ostatniego próbowałeś już się nauczyć i niczego nie rozumiałeś, ta książka jest idealna do Twojej rehabilitacji na własnych oczach. Drugim pozytywnym punktem jest to, że książka omawia coś, co może być przydatne w praktyce (zrozumienie tego z pewnością jest prawdą). Rozpoczyna się od wyjaśnienia istoty wyszukiwania binarnego i jego efektywności – dosłownie na palcach i za pomocą wielu obrazków. Po trzecie, książka zawiera wiele pytań i ćwiczeń (przykłady kodu są w Pythonie, ale nie jest to aż tak istotne). Rzecz, która dla niektórych może być pozytywna, dla innych negatywna: książka nie pretenduje do miana wszechstronnego podręcznika. Powiedzmy, że z ogólnie przyjętych algorytmów do badania są tutaj tylko dwa - nieefektywny algorytm wstawiania i wydajny algorytm szybkiego sortowania. Nie wiem, dlaczego autor nie miałby rozważyć innych algorytmów, powiedzmy bubble lub merge. Faktycznie, algorytm scalania jest wspomniany w książce, ale krótko, bez analizy i tylko w porównaniu z sortowaniem szybkim. Z innymi tematami wszystko jest dokładnie tak samo. Istnieją podstawy, które są bardzo dobrze omówione, ale czasami naprawdę chcesz bardziej szczegółowej kontynuacji, ale po prostu takiej nie ma. Jednym słowem jest to książka bardzo podstawowa, po której najprawdopodobniej będziecie chcieli znaleźć książkę, w której wszystko jest opisane poważniej. Na przykład poniższy.

Algorytmy w Javie (Robert Sedgwick, Kevin Wayne)

Tytuł oryginalny: Algorithms autorstwa Roberta Sedgewicka i Kevina Wayne’a 10 najlepszych książek o programowaniu dla początkujących - 10Tak naprawdę ta książka może zarówno oczarować, jak i przestraszyć. Przestraszy przynajmniej swoją objętością… dużej ilości stron i pewnym akademickim charakterem. Dlatego jeśli nie masz do tego skłonności, naukowców, lub nie czujesz się pewnie w matematyce (liceum, najprostsze elementy matematyki wyższej dla inżynierów), to lepiej nie zaczynać od tej książki. Terminów matematycznych nie ma tam zbyt wiele, ale samo podejście zakłada takie myślenie. Ale po poprzedniej książce – czemu nie. Ona da ci przewodnik. Pierwszy rozdział w niektórych miejscach podsumowuje wiedzę o Javie i definiuje niektóre struktury danych. Lepiej jest czytać go wybiórczo, ale nie zaszkodzi dokładnie przestudiować rozdziały drugi i trzeci. Pozostałe są również pełne ciekawych i dokładnych informacji na temat wykresów i ciągów znaków. Powiedziałbym, że takie rzeczy są BARDZO pomocne w kształtowaniu sposobu myślenia programisty. Jeśli chodzi o prezentację, można odnieść wrażenie, że autor jest nauczycielem, ale jest przyzwyczajony do pracy z ludźmi, którzy są w większości zainteresowani i przygotowani. Więc bądź cierpliwy i czytaj. A także rozwiązywać problemy, jest ich tutaj mnóstwo. Swoją drogą na Courserze można znaleźć kurs dotyczący algorytmów stworzonych przez autorów książki.

Poznaj swoje ramy

I na koniec jeszcze jedna książka. I znowu - przydatne.

Wiosna w akcji (Craig Walls)

Tytuł oryginalny: Wiosna w akcji Craiga Wallsa 10 najlepszych książek o programowaniu dla początkujących - 11Bardzo znana książka z równie słynną okładką, na której widnieje „mężczyzna w spódnicy”, który tak naprawdę nie ma na sobie spódnicy. Szczerze mówiąc, nauczenie się Springa z jednej książki jest bardzo trudnym zadaniem, nawet jeśli spróbujesz wszystkiego na raz w praktyce. Nawiasem mówiąc, po przeczytaniu tego czy innego rozdziału zrozumienie, jak to zrobić, może być niezwykle trudne. Pracowałam z tą książką podczas stażu w firmie i wykorzystanie jej w ten sposób bardzo pomaga. Co więcej, nawet dziś, pracując już jako programista, stale do tego wracam. Krótko mówiąc, za jego pomocą można uzyskać ogólne pojęcie o głównym frameworku Java.
Komentarze
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION