• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czy jest sens kupować książki o programowaniu?

Aruba Cloud - Virtual Private Server VPS
+4 głosów
323 wizyt
pytanie zadane 15 stycznia w Rozwój zawodowy, nauka, praca przez whiteman808 Gaduła (3,460 p.)
Pytam bo księgarnie Helion i PWN kuszą na swoich stronach głównych ofertami rozmaitych pozycji o programowaniu. Co do nauki podstaw to myślę że takie wprowadzenie w postaci C++ Szkoła programowania może być pomocne. Pytam bardziej w kontekście jak już ktoś przejdzie przez początkowy etap, zacznie nabierać już jakichś podstaw. Czy wtedy lepiej przestawić się na manuale po ang i stack overflow, czy nadal można wtedy napotkać sytuacje, gdzie kupowanie papierowych książek ma sens. Inne pytanie jakie mi się nasuwa to co z aktualnością wiedzy zwłaszcza w polskich książkach. Jeśli miernie to czy koniecznie trzeba sprowadzać z Amazona czy nie lepiej na upartego już walnąć sobie po dobrym rozeznaniu kurs Udemy lub manualnie, czy nawet z pomocą AI przeczesać internety

4 odpowiedzi

+5 głosów
odpowiedź 15 stycznia przez mokrowski Mędrzec (158,200 p.)

Całkowicie subiektywnie, dzielę książki na 3 kategorie.

  1. Klasyki
  2. Metodyki i techniki
  3. Frameworki/biblioteki/zastosowania

Co do grupy klasyków, kupuję wersje papierowe wydań. TAOCP Knuth'a, GoF Patterns, Algorithms Cormen'a, The Practice of Programming Kernighan'a czy (nigdy nie wydane w kraju), POSA. Także wiele innych niekoniecznie bardzo technicznych. Np The Mythical Man-Month Brooks'a. Ale to nie ma być odpowiedź na pytanie "co masz na półce" :) Ogólnie, wersje papierowe to książki które nie zestarzeją w okresie 10-30 lat. Te do których warto sięgać także poza bieżącymi modami czy hype.

Grupa druga, to zakupy mieszane. Jeśli uznaję (a w niewielu przypadkach tak jest) że książka zawiera treści ponadczasowe a nie tylko jest odpowiedzią na bieżącą modę, to kupuję wersje papierowe. W większości przypadków są to jednak wersje elektroniczne.

Grupa trzecia, to literatura typowo techniczna. Obejmuje daną wersję biblioteki, standardu czy frameworka. Jeśli naprawdę tego potrzebuję (książki), kupuję wersje elektroniczne. Często także jeśli wiem że bez książki zagadnienie jest łatwe do opanowania i nie jest obszerne, wystarcza dokumentacja.

Jest także grupa zastosowań, gdzie książki nie można zaproponować. Tak jest np z programowaniem na poziomie jądra GNU/Linux. Proces wydawniczy pozostaje w tyle za zmianami. Tu tylko dokumentacja i czytanie kodu pozostaje.

Dlaczego książki? Powód prosty. Tutoriale to oglądanie zagadnienia w klapkach na oczach i przez dziurkę od klucza. Od pewnego poziomu kompetencji, wymaga się umiejętności wybrania dobrego rozwiązania ze znanymi konsekwencjami (czego nie warto wymagać od tutoriala). Wymaga się także swobodnego poruszania się w podstawach. Dobra książka ma przemyślaną strukturę, zawiera podpowiedź co do nawigacji w zagadnieniach które obejmuje i określa akcenty na tych elementach z którymi warto się zapoznać. To jest bardziej przydatny i adekwatny do przedmiotu rodzaj wiedzy (co choćby udowadniają procedury treningu AI). Jeśli dane zagadnienie jest dla mnie interesujące lub wymaga porządnego przygotowania, to 2-3 książki są obowiązkowe. Najczęściej kupuję je wg. klucza: "solidne podstawy - książka obowiązkowa w danym temacie", "obrazoburcza - autor twierdzi że wszyscy inni nie mają racji a pomniki należy obrzucić jajkami :)", "konsyliacyjna - zwraca uwagę na zagadnienia podstawowe i wyjątki od reguł".

Książki należy czytać jeśli nie chcesz być wrzucony do worka z napisem Dunning-Kruger. A z całą pewnością, do książek należy robić także notatki.

2
komentarz 15 stycznia przez Ehlert Ekspert (214,940 p.)
10/10, temat wyczerpany.
komentarz 15 stycznia przez Programol Początkujący (490 p.)
O ile z aktualną dokumentacją i literturą o programowaniu w kernelu, którym jest Linux ciężko. O tyle istnieje literatura omawiająca pokrewne systemy zgodne z POSIX czy starsze wersje Linuksa. Jest to o tyle przydatne, że wiele "bebechów" było inspirowanych czy przeportowanych z kerneli wariantów UNIX-a (pisownia odmiany wedle SJP PWN) jak np. Solaris. Część podobieństw jest wymuszana przez POSIX. Trochę zaczerpnięto z Plan9. Na pewno oczywiście trzeba się też liczyć z koniecznością czytania kodu, commitów i listy dyskusyjnej developerów, pomaga też kontakt z kolegami będącymi bardziej na bieżąco.

Co do POSA to jest redundantny w stosunku do literatury domenowej różnych działek (przynajmniej systemów operacyjnych, systemów zarzadzania bazami danych, systemów zrządzania ruchem sieciowym, systemów rozproszonych etc). Daruję też sobie dywagacje na temat paradygmatu obiektowego, o którym mam bardzo kiepskie zdanie (usmażył mózgi co najmniej dwóm generacjom programistów), oczywiście nie wszystkie patterny mają rację bytu tylko w OOP. POSA jednak należy do kategorii pełnej "dżawizmów". Co oczywiście dla dżawowców będzie zaletą, nawet jeśli ja się na widok tego cyklu publikacji krzywię. Chociaż w sumie jakbym trafił na kandydata który przeczytał ze zrozumieniem i zdrowym sceptycyczmem wszystkie tomy to bym mu tego za złe nie miał, o ile zachował trzeźwość umysłu i nie uległ spaczeniu Javą. Sam byłem katowany dość intensywnie dżafką na studiach.
1
komentarz 15 stycznia przez reaktywny Nałogowiec (46,230 p.)
Dobrze napisane, kolega mokrowski rzadko wpada na forum, ale pisze sensownie.
1
komentarz 15 stycznia przez Ehlert Ekspert (214,940 p.)

@Programol, uwielbiam u ludzi podejście „jam jest prorok i przychodzę do was z jedyną słuszną technologią”.

komentarz 15 stycznia przez Programol Początkujący (490 p.)
No mnie też tacy bawią.
+1 głos
odpowiedź 15 stycznia przez Programol Początkujący (490 p.)
Są świetnie napisane książki o programowaniu na poziomie "po poznaniu podstaw języka". Tutaj jest cała gama książek o pisaniu złożonych programów i systemów w C.

Jest też masa "must read" "language agnostic" książek o algorytmach i budowie systemów (operacyjnych, zarządzania bazami danych, algebry komputerowej, przetwarzania grafiki, inerpreterów i kompilatorów) etc. jeśli chcesz być na poziomie wyższym niż typowe "corpo code monkey"/"januszsoft webdeveloper".

Jak celujesz w pracę dla firm pokroju tego co się robi w Silicon Valley to nieczytanie książek jest głupotą bo konkurujesz z tymi,  którzy je znają. Masa jeśli nie większość zadań z tych wszystkich leetcode są zerżnięte z grona znanych publikacji wykorzystywanych na zachodzie jako podręczniki akademickie. Część z nich wydał PWN, sporo z nich wydało na przestrzeni dekad WNT (systemy operacyjne, bazy danych, robotyka). To, że mają 10, 20, 30 lat nie oznacza, że się zdeaktualizowały. Wiele z nich to są wciąż branżowe standardy bez znajomości których będziesz na zachodzie spostrzegany jako jako zawodnik niższej ligi.

Od około dekady z hakiem w Polsce panuje jakaś dziwna ideologia olewania literatury i zakładania, że można "jechać na tutkach bo bendzie szybdziej". Pokłosie tego jak łatwo można było w tamtych czasach wejść do IT umiejąc nieco więcej niż naklepać Hello World. Teraz ci fani "chodzenia na skróty" mają często problemy gdy muszą zmienić pracę, bo w międzyczasie do branży weszła masa im podobnych wobec której mają jedynie przewagę stażu zasiedzenia w jakimś korpo. I często niewiele więcej ponad staż. To trochę siara jak się jest tuż przed czterdzistką.
komentarz 15 stycznia przez Programol Początkujący (490 p.)

Pozdrawiam downvotujacych. cool

0 głosów
odpowiedź 15 stycznia przez WojAbuk Gaduła (3,000 p.)
To skomplikowane. Jak dobrze znasz angielski to darmowe materiały w internecie mają często lepszą jakość od książek. Ja osobiście preferuję język C i w jego przypadku najlepsza (może nie najlepsza, ale ta książka ma status biblii dla programistów C każdy musi ją przeczytać mimo że już się trochę przedawniła) książka do nauki „Język ANSI C” jest dostępna za darmo. Nie wiem jak wygląda sytuacja prawna z polską wersją, ale angielska jest legalnie udostępniona. Ja osobiście kupuję książki, ale bardziej gdy znajdę coś ciekawego na aukcjach internetowych i to co ja kupuję to raczej jest związane z matematyką niż samym programowaniem. Na puściejszym etapie nauki i tak się będziesz uczyć z dokumentacji.
6
komentarz 15 stycznia przez tkz Nałogowiec (42,020 p.)
Książka ma ten plus, że masz uporządkowaną formę przekazu. Dodatkowo masz namacalny początek i koniec. Jeżeli jest to książka, która nie miała premiery wczoraj, to najprawdopodobniej będzie i jej recenzja, która wskaże jej braki czy plusy.

Z Internetem jest ten problem, że mało kto weryfikuje rzeczy, które czyta i po prostu można wpaść w sidła "darmowej" wiedzy.
komentarz 15 stycznia przez Programol Początkujący (490 p.)
Dokładnie.
komentarz 15 stycznia przez reaktywny Nałogowiec (46,230 p.)
tkz dobrze to podsumował!
komentarz 15 stycznia przez WojAbuk Gaduła (3,000 p.)

@tkz, Nie da się nie zgodzić. Za to wiedza w książkach często jest nie aktualna. Przyznam że dla mnie najbardziej wiarygodnym źródłem wiedzy w zakresie programowania są komunikaty o błędach kompilatora.

komentarz 15 stycznia przez reaktywny Nałogowiec (46,230 p.)
Może być częściowo nieaktualna (zakładam, ze nie masz super starych książek), ale zyskujesz zwykle solidne podstawy i "widok z góry" na cały problem. Reszty się douczysz z innych źródeł.
3
komentarz 15 stycznia przez tkz Nałogowiec (42,020 p.)

@WojAbuk, problem w tym, że na ich podstawie nie nauczysz się składni. A tym bardziej podejścia inżynieryjnego. Kompilator nie podpowie Ci o wzorcach, zasadach czy możliwych konsekwencjach tego rozwiązania.

komentarz 15 stycznia przez Programol Początkujący (490 p.)
Dokładnie. Są też książki, które omawiają dodatkowo różne ślepe ścieżki, których próbowano a które okazywały się nieefektywne w danych realiach. Niektóre z nich znajdują zastosowania po latach gdyż wzorost mocy obliczeniowej, dstępnej pamięci czy zmiany w architektórze hardware umożliwiały ich efektywną realizację. Są prace z lat 70tych, które doczekały się realizacji czy upowszechnienia dopiero po 30 latach. Bo kiedyś przydawały się wąskim grupom pracującym w R&D na minikomputerach i wyższych kalibrach mocy przerobowej.
0 głosów
odpowiedź 15 stycznia przez Igoor Nowicjusz (160 p.)
Wiesz co, to zależy od preferencji. Papierowe książki nadal mają sens, szczególnie jeśli lubisz bardziej uporządkowaną wiedzę, którą łatwiej wracać do konkretnego tematu. Z kolei kursy na Udemy czy anglojęzyczne materiały mogą być bardziej aktualne, bo często są od razu dostosowane do najnowszych trendów. AI i Stack Overflow świetnie się sprawdzają przy szybkich rozwiązywaniu problemów, ale nie zawsze zastąpią gruntowne zrozumienie tematu. Jak dla mnie, warto czasem mieszać te źródła, bo różne podejścia dobrze uzupełniają naukę

Podobne pytania

0 głosów
0 odpowiedzi 1,220 wizyt
0 głosów
2 odpowiedzi 675 wizyt

93,335 zapytań

142,331 odpowiedzi

322,415 komentarzy

62,670 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...