Ach Symfonia, łezka w oku się kręci

Kogo bym nie pytał to ma takie same doświadczenia z tą książką. Wszyscy ją polecali, oni kupili, po kilku rozdziałach się zrazili i odłożyli na półkę, gdzie zbiera kurz po dziś dzień

Też przez to przechodziłem…

Z perspektywy czasu mogę powiedzieć, że jest to jeden z najgorszych podręczników do programowania jakie znam. Już w dniu premiery był przestarzały (stąd chociażby dwie strony poświęcone klawiaturom nie posiadających znaków "^ [ ] { } !" czy też informacja o tym ile bajtów zajmuje dany typ w komputerach architektury VAX

) a co dopiero teraz (III wydanie z 2015 dalej opisuje standard... C++03, have mercy)? Ponadto nie uwzględnia dobrych praktyk (a nawet idzie im wbrew, chociażby pokazując hacki dyrektywami prekompilatora), ale za to poświęca wiele stron tak kluczowym zagadnieniom jak flagi stanu formatowania

O takich rzeczach powinno się pisać na końcu appendiksu w dosłownie 2-3 zdaniach... jeśli w ogóle.
Także sorry, ale dla mnie, jako początkującego programisty, ta książka była drogą przez mękę. Nie dość, że wiedza ważna na tym etapie była niepotrzebnie rozwleczona (4 strony tylko o tym jak przekazać tablicę do funkcji) to trzeba się przedzierać przez tematy dla zaawansowanych. Nie ma to jak rozdział poświęcony preprocesorowi w połowie pierwszego tomu. A oni jeszcze walnęli na okładce napis "łatwy podręcznik"

Przecież to false advertising i powinni za niego beknąć.
Bo jak już zdążyłem zasygnalizować struktura Symfonii jest strasznie chaotyczna. Często jest tak, że jakieś tematy są sygnalizowane kilkadziesiąt stron przed tym jak zostaną jakkolwiek omówione. Po co? Przecież to tylko konfunduje. Wyobrażacie sobie takie podejście w szkole? To jest drogie dzieci mnożenie, ale nie zaprzątajcie sobie nim głowy. Omówimy je za kilka zajęć, teraz wracamy do dodawania i odejmowania.
No i pierwszy tom kończy się raczej zaawansowanymi zagadnieniami, do których prędko się nie wróci (dopasowanie dosłowne z trywialną konwersją). A teraz zgadnijcie od czego zaczyna się drugi? Ano od klas, czyli podstawy podstaw

A co tam, niech żyje chaos! Ciekawe czy Grębosz kiedykolwiek zastanawiał się w jakiej kolejności tak właściwie powinno się czytać Symfonie? Bo przechodzenie po kolei przez rozdziały mija się z celem.
To może targetem jest doświadczony programista? Mu nie robi różnicy, że 77 stron o wskaźnikach znalazło się już w pierwszym tomie. Niby tak, ale książka nie jest stricte im dedykowana. Wszak autor już na wstępie zaznaczył, że poszedł na kompromisy, by z książki mógł czerpać zarówno 14-latek uczący się kodzenia jak i senior z wieloletnim stażem, ale jak to w życiu była: jeśli coś jest do wszystkiego to jest do niczego. I tak też jest w tym przypadku. Uczyć się z tego nie da i już napisałem dlaczego a co z doświadczonym czytelnikiem? Ciężko mu traktować to coś jako materiał referencyjny. Wszak on potrzebuje konkretu a nie wielostronicowych rozważań. Nikt nie będzie wyszukiwał pojedynczych zagadnień, które go interesują w przydługim eseju. Chociaż pal sześć jak autor się rozpisuje na temat gorzej jak jedzie z całymi akapitami nikomu nie potrzebnych dygresji (a jest ich sporo):
Zapytano kiedyś Amerykanów "- Czy można żyć bez Coca-Coli?". Amerykanie odpowiedzieli: "-Można, ale po co?".
Dokładnie to samo powiedzieć o wskaźnikach. Ich istnienie nie jest konieczne, najlepszy dowód, że jest wiele języków programowania, w których wskaźników nie ma. Z drugiej jednak strony - jeśli języki C i C++ mają opinię tak sprawnych i władnych, to jest to głównie za sprawą wskaźników.
Są ludzie, którzy nie lubią C. Moim zdaniem to dlatego, że nie czują się swobodnie w operowaniu wskaźnikami.
Jeśli doskonale znasz język C, a książkę tę czytasz, by poznać C++, to w zasadzie mógłbyś ten rozdział opuścić. Jeśli jednak wskaźniki znasz trochę gorzej, to zachęcam do przeczytania.
Ech, jakby Makłowicz wziął się za książki IT to tak by to właśnie wyglądało. Nauka programowania w formie gawędy

To jakbyście się zastanawiali dlaczego Symfonia ma trzy tomy to teraz już wiecie. Innym autorom wystarczyłby jeden i na dodatek byłby lepszy, bo zawierałby tylko potrzebne rzeczy, uwzględniałby dobre praktyki i nie rozkładałby na czynniki pierwsze to co tego nie wymaga. No, ale ich tak nie polecają jak świętego Grębosza, patrona nauczycieli akademickich przekazujących nieaktualną wiedzę.
A skoro autora mamy takiego jakiego mamy to nawet w tej krótkiej dygresji są rzeczy, z którymi polemizowałbym. Już pomijam dawanie entera co zdanie czy dialogi od myślnika i w cudzysłowach, ale przemyślenia jakie przytoczył odnośnie C/C++ są, delikatnie rzecz ujmując, odrealnione. Po pierwsze jest chyba jedyną osobą na świecie zafascynowaną wskaźnikami. Po drugie skąd wziął mu się pomysł, że ludzie nie lubią C, bo są za słabi by opanować potęgę oferowaną przez cudowne wskaźniki?

Po trzecie ciekawe czy ma świadomość, że trącące myszką C ma w branży lepszą renomę niż przekombinowany C++ (czyli idealny język dla leciwych wykładowców)? Pewnie nie i wiecie co? Nawet mu się nie dziwię, że nie ma rozeznania co tak naprawdę programiści myślą? No bo i skąd? On nie jest praktykiem programowania, tylko... fizykiem teoretycznym

Trochę mi przypomina jednego mojego wykładowcę. Co prawda on jest przynajmniej z branży, ale też zmasterował swój język programowania kilkadziesiąt lat temu i od tej pory nie był już nigdy na bieżąco (stąd chociażby archaizmy jak "przeładowanie nazw funkcji", nikt tak nie mówi, to jest "przeciążenie funkcji").
W tym momencie pojawi się argument, że przecież ostatnimi czasy wydał książkę będącą następczynią Symfonii. Zgadza się, tylko Opus Magnum z 2017 nie opisuje standardu C++17 ani nawet 14, tylko... 11. Czyli znowu w dniu premiery dostaliśmy przestarzały (o 6 lat i 2 wydania) podręcznik. Dopiero wypuszczona 3 lata później Misja w nadprzestrzeń opisuje wersje 14/17. Acz ona jest nie jest pełnoprawną książką, tylko krótkim uzupełnieniem. Zresztą, sam Grębosz nazywa ją IV tomem Opus Magnum.
Chociaż zacząć należałoby od tego, że Opus Magnum też tak naprawdę nie jest żadną nową książką, tylko IV wydaniem Symfonii. Sprawdziłem spis treści i przykładowy fragment rozdziału. Toć to jedno, wielkie kopiuj-wklej. Na oko 80% materiału jest słowo w przepisane z poprzedniej książki i tylko 20% to nowości, niestety nie zawsze potrzebne. Acz jak już pisałem, skąd on miałby wiedzieć takie rzeczy? Przecież on nigdy nie brał udziału we większym projekcie. On ttym wszystkim zajmuje się nawet nie akademicko, ale hobbystycznie. Acz plus dla niego za to, że się ogarnął i przemeblował rozdziały.
I teraz hit, to IV wydanie Symfonii, które na bezczela opublikował jako nową książkę, Polskie Towarzystwo Informatyczne... nagrodziło ją jako najlepszą polską książkę informatyczną 2018

Misję w nadprzestrzeń też docenili, drugie miejsce w 2020

Aż się boję pytać co dalej. Skoro teraz wydanie z poprawkami udające nową książkę wygrywa konkursy, appendiks do niego tak samo to, jak rozumiem, mam oczekiwać lauru dla przyszłej erraty

Tak to jest jak teoretycy teoretyków nagradzają…
#it #programowanie #komputery #ksiazki #podreczniki