Wszystkie te książki wydają się bardzo, bardzo, bardzo stare. Czy nie sądzisz, że istnieje różnica między obecnym czasem a momentem napisania tej książki?
IMHO nie jest zaskoczeniem, że bardzo dobre książki pozostają popularne przez dziesięciolecia - to pokazuje, jak dobre są. Ale myślę, że mogę powiedzieć coś dla każdego z wymienionych kandydatów:
Code complete: 2nd edition = may, 2004
W rzeczywistości pierwsza edycja „Code complete” pochodzi z 1993 roku, więc ta naprawdę jest „klasyczna”. Chodzi o podstawowy styl kodowania, z wykorzystaniem przykładów, które dotyczą niemal każdego języka programowania z rodziny C, który zawiera obecnie najpopularniejsze języki (C / C ++ / Java / C # / Objective-C / D / ...). Tak, ta książka jest aktualna.
Introduction to algorithms (Cormen, Leiserson, Rivest, Stein)
Cóż, właściwie nie czytałem tej książki (mój podręcznik algorytmów pochodzi z „Sedgewick”), ale nauka algorytmów i konstrukcji algorytmu jest naprawdę niezależna od języka. Oczywiście, to rzemiosło jest trochę niedoceniane w ostatnich latach, ponieważ obecnie znajduje się wiele podstawowych algorytmów w standardowych bibliotekach, ale IMHO każdy profesjonalny programista powinien posiadać podstawową wiedzę w tej dziedzinie.
The Pragmatic Programmer
To bardzo dobra książka o programowaniu jako rzemiośle. Język jest agnostyczny i bardzo, bardzo aktualny, o ile programowanie odbywa się przez programistów jako zadanie ręczne, przy użyciu edytorów tekstu, IDE, kontroli wersji itp.
Structure and Interpretation of Computer Programs: = September 1, 1996
Jest to mój osobisty faworyt, chociaż (a może dlatego, że) książka wykorzystuje Schemat, aby nauczyć cię różnic między różnymi paradygmatami programowania. Nie znam żadnej innej książki, która tak silnie skupiałaby się na tworzeniu abstrakcji. A budowanie abstrakcji jest kluczową umiejętnością, która czyni różnicę między przeciętnym programistą a najlepszym programistą - która nie zmieniła się w ostatnich dziesięcioleciach, więc tak naprawdę ta książka jest ponadczasowa. Co więcej, języki funkcjonalne i elementy językowe stały się ostatnio bardziej popularne, więc pomysły IMHO przedstawione w tej książce odrodziły się.
The C Programming Language
Cóż, ta książka może nie być tak ponadczasowa jak pozostałe cztery. Ale ponieważ C jest czymś w rodzaju „matki” wszystkich popularnych języków, które wymieniłem powyżej, dobrym pomysłem może być przeczytanie tej książki - nie sądzę, żeby były jakieś nowoczesne książki „C”, które są naprawdę lepsze. A jeśli musisz programować konserwację kodu C ++ napisanego przez kogoś, kto znał C lepiej niż C ++, to ta książka jest koniecznością.
Wreszcie, prosiliście o książki, które uwzględniają więcej „bieżącej rzeczywistości”, bez zbytniej specyfiki technologicznej. Czym więc jest „aktualna rzeczywistość” i co zmieniło się po stronie „nietechnologicznej”? Oto kilka punktów z ostatniej dekady, nie mówiąc, że ta lista jest kompletna lub ma właściwe priorytety.
- Istnieje więcej starszego kodu (szczególnie więcej starszego kodu nie tylko w Fortran i Cobolu, ale także w C ++ i Javie).
- Testy jednostkowe i TDD stały się bardziej ulubione.
- Dostępnych jest znacznie więcej otwartego kodu źródłowego.
- OO ma coraz więcej krytyków
(Nie wymieniam tutaj niczego na temat rozwoju sieci lub aplikacji, ponieważ uważam, że ta technologia jest specyficzna).
Istnieją dobre książki na tematy 1 i 2, zwłaszcza „Czysty kod” , który pochodzi z 2008 r., I „Efektywna praca ze starszym kodem” z 2004 r. Być może są to niektóre z „nowszych” książek, których szukasz?