Wpis z mikrobloga

Jakie są najlepsze książki i źródłą do nauki CPP?
Jeśli się nad tym zastanawiasz to jest to post dla Ciebie.
=====================
Piszę ten post bo odpowiadam na to samo pytanie kilka razy w tygodniu, szczególnie na poczatku roku akademickiego, a nie lubię się powtarzac. Bedę wklejał link do tego posta za każdym następnym razem.
=====================
Intro
Jak się już pewnie zorientowałeś, ile ludzi tyle opini. Z tego wynika pierwsza bardzo ważna lekcja. Środowisko programistyczne jest środowiskiem bardzo silnie zopiniowanym. Nie ma jednej słusznej odpowiedzi. Każdy programista ma swoje preferencje, swoje przyzwyczajenia, swój sposób myślenia. Ty z biegiem czasu będziesz musiał wyrobić sobie swoją opinię. Oczywiście na samym początku bardziej będziesz polegał na opiniach innych, ale ważne jest nie traktowanie niczyich słów bezkrytycznie, nawet jeśli jest wielkim autorytetem oraz korzystanie z wielu źródeł informacji, poznanie wielu punktów widzenia. Tak samo nie ma jednej optymalnej ścieżki nauki programowania dla każdego. Są jednak lepsze i gorsze.

Wybór źródła wiedzy
Jeśli chcesz poświęcić swój czas na nauke, warto wybrać jak najlepsze źródło skoro ma się taką możliwosć. Lepsze książki wcale nie są droższe, ani trudniej dostępne, więc logicznym jest wyborem uczenie się z jak najlepszych w danym momencie źródeł.
Komu ufać? Najlepiej globalnej społecznosci. Im większa społeczność, tym większa wymiana informacji i bardziej wyważone opinie. Opini jest wiele ale można zauważyć pewien konsensus. Polskie społeczności często preferują rodzimych twórców z uwagi na bariere językową.

Konkretne linki
Świetny thread ze StackOverflow z omówieniem wielu książek: The Definitive C++ Book Guide and List
Polecane książki przez komitet standaryzacyjny cpp: ISO CPP Get Started!
Na podstawie dwóch powyższych linków można już sobie wyrobić opinię o poszczególnych tytułach.

Często polecane tytuły i moja opinia
Symfonia Grębosza - książka dość słaba, tłumaczy wiele rzeczy łopatologicznie więc "jako tako" nauczy pisać proste programy ale jeśli chcesz naprawdę dobrze nauczyć się CPP to zdecydowanie potrzebujesz czegoś więcej

The C++ Programming Language, Bjarne Stroustrup - bestseller authora CPP, książka bardziej dla osób które mają doświadczenie z programowaniem. Zdecydowanie nie nadaje się na pierwszą książke z programowania, ale jest to dobra pozycja jeśli już jesteś programistą i chcesz poznać CPP. Autor świetnie pokazuje dlaczego CPP jest taki jaki jest, omawia reasoning stojacy za designem jezyka i pozwala dostrzec pewne subtelne koncepty. Tytuł, który każdy szanujący się programista Cpp powinien kiedyś przeczytać.

Szkoł Programowania ang. C Primer Plus, S. Prata - książka która ma wielu zwolenników, ale jej problemem jest to że uczy przestarzałego języka, jeśli wprowadza nowe elementy to robi to w izolacji i bez kontekstu. Uczy wielu nawyków myślowych, których trzeba się później oduczyć i niepotrzebnie komplikuje wiele rzeczy. Można odnieść wrażenie że została napisana przez programiste C, a nie CPP. Sam od niej zaczynałem, ale z perspektywy czasu nie polecam.

C++ Primer - chyba najlepsza obecnie dostępna książka na początek przygody z C++. Polecana zarówno przez komitet standaryzacyjny jak i na StackOverflow. Materiał świetnie uszeregowany, bez zbędnych rzeczy aczkolwiek wytłumaczony dogłębnie. Zwraca też uwagi na najczęstsze pułapki i miskoncepcje.

Dodatkowe uwagi
Zdecydowanie polecam korzystanie z oryginalnych wersji angielskich, programowanie jest globalne i naprawde łatwiej Ci będzie im wcześniej zapoznasz się terminologią, to niezbędne w tej branży.
Jeśli nie jesteś pewien z jakiej książki korzystać, najlepiej wybrać jakąkolwiek i po prostu zaczać się uczyć, a za pół roku po jej przerobieniu zapoznać się z kolejną. Żadna nie jest idealna a im więcej źródeł nauki tym lepiej.

Powodzenia mirku, dasz radę

#programowanie #cpp
  • 7
  • Odpowiedz
@Passer93: tekst przedpotopowy? Jak już piszesz o Gręboszu, to powinieneś o nowym. Jest juz akceptowalna jakość jeśli ktoś lubi styl. Jeśli chodzi o naukę c++, to dobrym wyborem jest Stroustrup, ale nie to co podałeś, bo to nie jest dla początkujących (o czym autor pisze na wstępie), a raczej to
  • Odpowiedz
@Kaczus2B: Nowego Grębosza na oczy nie widziałem, więc nie będe się wypowiadał. Po kontakcie ze starym wydaniem nie mam wielkich nadzieji co do nowego. Post miał być w zamyśle krótki dlatego wymieniam tylko niektóre tytuły, ale fakt "Programming -- Principles and Practice Using C++" to bardzo fajna książka. W pierwszym linku który dałem jest wymieniona na samym początku więc kto kliknie to sobie doczyta.
  • Odpowiedz
  • 0
@zwei: Sorki ale siedzę już jakiś czas za granica i czasami ciężko mi znaleźć polski odpowiednik czegoś. Jak przetłumaczyłbys „reasoning” w tym kontekście ? „Wnioskowanie”? „Powody/przyczyny stojące za”? „Uzasadnienie”?
  • Odpowiedz