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

9

@KwarcPL, ja prawdę mówiąc bardzo dobrze oceniam tę książkę. Też ją dość długo przerabiałem, ale dość młody wtedy byłem (jeszcze podstawówka). Może to po prostu bardziej książka dla ludzi, którzy w życiu niczego wspólnego z programowaniem nie mieli.

Druga rzecz, że wtedy nie było za bardzo dobrych kursów w internecie.
@KwarcPL, Sam się próbowałem uczyć i ją kupiłem gdyby nie ty, to bym nie wiedział że jest tak chujowa. Potem uczyłem się javy, bo stwierdziłem że c++ dla newbie jest zbyt wymagający.
Ostatecznie na studia nie poszedłem, a książka zbiera kurz i wygląda na to że już tak zostanie.
@KwarcPL, też męczyłem się z nią 2 lata, potem poznałem języki skryptowe (głównie perl, php, js (jquery)) i postępy były widoczne co powodowało wzrost zainteresowania, przed studiami realizowałem już w tych językach projekty dla studentów dzięki czemu łapałem doświadczenie + trochę kaski, na studiach wróciłem do C/C++, by na koniec pozostać z C/ASM/JS.

Też mi polecono bo dobra i prosta, a okazała się trudna przez co ciężko było mi ocenić czy jest dobra.
by na koniec pozostać z C/ASM/JS.
@MEGAZU0, to jest swoją drogą ciekawa sprawa. Pomimo archaizmów, wiele branż woli C od C++ i w ogóle im się nie dziwię. Ten język był zaprojektowany, on po prostu rósł i z każdą kolejną iteracją dokładano skomplikowania by rozwiązać problemy ze wcześniejszym skomplikowaniem
@KwarcPL, jako ciekawostkę dodam, że studiowałem elektronikę nie informatykę, więc C służył jedynie do algorytmów czy szybkiego pisania instrukcji. A życie potoczyło się tak, że z bogatej rodziny nie pochodzę to musiałem iść do pracy zamiast McDonalda czy innego fastfooda wybrałem małą firmę tworzącą strony (po 48h, byłem gotowy by iść na rozmowę).

Musząc odbyć praktyki wybrałem się do warszawy, gdzie zaproponowano mi pracę w r&d (elektronika), z czasem atmosfera mi nie pasowała to przeszedłem do dużej firmy z produktami gdzie załapałem się na utrzymanie legacy code i przeniesienie wszystkiego na obecne standardy + od święta przygotowanie landingu konkursowego, gdzie po czasie mnie zwolniono, ale źle na tym nie wyszedłem.
@KwarcPL, typowy podręcznik akademicki, większość to zbędne wypełniacze do niczego nikomu niepotrzebne, ale i tak dziwie sie że Grębosz nie wysmarował 2000 stron, tak jak np. w cegłach typu Thinking in Java. Ogólnie z doświadczenia już wiem, że te wszystkie książki to strata czasu i pieniędzy. Wszystko jest teraz w krótkich i zwięzłych tutorialach na necie.
typowy podręcznik akademicki, większość to zbędne wypełniacze do niczego nikomu niepotrzebne, (…)
@sharkando, w punkt. Książki wydawane przez nauczycieli akademickich powinny być specjalnie oznaczane. Bo to najczęściej pułapki na początkujących. Jak ktoś się w porę nie skapnął i nie odłożył Symfonii na półkę to ja mu autentycznie współczuję. Nie ma to jak przebrnąć przez gargantuiczny podręcznik do programowania i ani razu nie usłyszeć o wzorcach projektowych czy złożoności obliczeniowej Za to jest możliwość przeczytania 40 stron poświęconych konstruktorom i destruktorom (nie ukrywam, autentycznie jestem pod wrażeniem, że dał radę tak bardzo się o tym rozpisać, ja po 5 stronach miałbym wrażenie, że opowiedziałem już wszystko) czy przeżycia swojej pierwszej (i ostatniej) styczności z uniami i funkcjami zaprzyjaźnionymi. Just academic things.
(…) ale i tak dziwie sie że Grębosz nie wysmarował 2000 stron, (…)
W zasadzie to wysmarował. Opus Magnum ma 1650 stron a Misja w nadprzestrzeń będąca de facto IV tomem ww. 260, czyli razem... 1910 Chociaż zawsze miałem wrażenie, że Grębosz oszukiwał. Nie dość, że napieprzał podkreśleniami, ptaszkami i innymi wyróżnikami zmniejszającymi ilość tekstu w tekście to jeszcze zostawiał absurdalnie szerokie marginesy. Normalnie jak student stosujący wszystkie możliwe sztuczki by chociaż trochę pogrubić swoją cieniutką pracę dyplomową w nadziei, że promotor się nie skapnie Jakby Tanenbaum (skądinąd też ciekawa persona) swoje Systemy operacyjne pisał tak jak Grębosz Symfonię C++ to lekko przekroczyłby barierę 3 tysięcy stron.


No cóż, margines to założeniu miejsce na ewentualne notatki, komentarze i przemyślenia. Grębosz w Symfonii dał nam go tyle, że moglibyśmy w nim zmieścić drugą książkę Trochę jak kasety z dwiema stronami
Ogólnie z doświadczenia już wiem, że te wszystkie książki to strata czasu i pieniędzy.
Dokładnie a najlepsze jest to, że te książki zbierają świetne oceny i wybitne recenzje. Najlepszy książka o C++? Że co proszę? Przecież jest dokładnie na odwrót. Symfonia jest najgorszym podręcznikiem jaki można polecić. No chyba, że chce się kogoś zrazić do programowania. I to mówią wszyscy, z którymi poruszam ten temat. Także nie wiem skąd się biorą te zachwyty.
@KwarcPL, coś czuję, że wszystkie pozytywne opinie są wystawiane przez niego samego i jego przydupasów (doktorantów).
@MEGAZU0, nie zdziwiłbym się jakbyś miał rację. Te opinie są tak odklejone od rzeczywistości, że wyglądają jak laurka od teoretyków akademickich dla teoretyków akademickich…
Najlepsza książka o C++. Lepszej nie znajdziecie.
Doubt Stawiam dolary przeciw orzechom, że jakbym poszedł do księgarni, stanął w dziale "programowanie", zamknął oczy i wsadził rękę w półkę to pierwsza pozycja za jaką bym chwycił byłaby lepsza.
Autor umiejętnie wprowadza w świat programowania.
Osz kurde, to dowalili jak dzik w sosnę Grębosz uczy alokacji pamięci (register, alignas) przed wprowadzeniem operatorów. Nie wiesz jak zrobić "LUB" we warunku, ale dowiedziałeś się jak przekazać preprocesorowi by przechowywał zmienną w rejestrze. Lol, to ma być umiejętne wprowadzanie? Bo jak dla mnie to jego antyteza To tak jakby w szkole trygonometria była przed ułamkami.
Z materiałem z łatwością poradzą sobie laicy.
"Funkcja zwracająca rezultat będący referencją l-wartości". Tak, to brzmi jak materiał łatwy do przyswojenia przez laików Przecież nowsze standardy C++ i uczelniany teoretyk to zabójcza mieszanka. Nie zdziwiłbym się, że uczenie programowania z Opus magnum byłoby stosowane jako tortura w Guantanamo
Poziom trudności odpowiednio wyważony, stopniowo wzrasta. Są ustawione prawidłowo, nie ma dziwnych przeskoków jak to bywa w niektórych konkurencyjnych książkach.
Zabawne, bo chwalą Grębosza za coś o co mam do niego największe pretensje. Kolejność omawiania tematów jest wręcz absurdalna. Z jakiegoś powodu najpierw wprowadził vectory a tablice... 2 rozdziały i 128 stron później Bo nie wiadomo czemu, ale w mniemaniu autora najpierw powinniśmy się nauczyć dyrektyw preprocesora Z klasami też jest wesoło. Niby głupio jakby coś tak podstawowego nie znalazłoby się w pierwszym tomie, ale mało brakowało a zabrakłoby dla nich miejsca. Znowu, bo Grębosz już tak zrobił w Symfonii. O co chodzi? Ano, bo gość ma fetysz na punkcie wskaźników i musiał im poświęcić... 4 rozdziały i 149 stron Do tego typ cały czas skacze między podstawami, zaawansowanymi zagadnieniami, do których nie prędko się wróci a nikomu nie potrzebnymi niuansami. Także sorry, ale nie mogę się zgodzić z żadnym zdaniem tej recenzji a wręcz przeciwnie. Mam dokładnie odwrotną opinię

Inne komentarze ze strony Helionu też wesołe. W jednym autor przyznaje, że dopiero co usiadł do pierwszego tomu, ale już daje Opus 6/6. Może wpływ na to ma to, że jest z Jurkiem na Ty? Pewnie kolega z wydziału Drugi post to też fajne odklejenie. Warto poświęcić LATA na dobre poznanie C++, by potem przesiąść się na JS, który ma zupełnie inne założenia Typowo szkolne podejście. Będziemy Was uczyć rzeczy, których już się nie wykorzystuje, bo uważamy, że tak lepiej. Chyba przyłapaliśmy kumpli Grębosza na gorącym uczynku. Rabbi, what'cha doin
@KwarcPL, Zajebista książka. Miałem na pierwszym roku studiów, szybko trafiła na półkę, a ja skupiłem się na filmikach Zelenda i codeacademy