Wybór książki do nauki C++

0

Cześć
Ostatnio zacząłem naukę programowania w C++ i zakupiłem 2 książki: "Szkołę programowania" Prata i "Przewodnik dla początkujących" Alexa Allain'a. Zacząłem czytać Postanowiłem czytać obie równocześnie, ale niestety nie sprawdziłem dokładnie i okazało się w książce tego drugiego nie ma żadnych materiałów z C++11 ani wyżej. Stąd moje pytanie co lepiej zrobić: zostać przy samej lekturze Prata(chociaż wydaje mi się trudna na sam początek) , poszukać nowej książki (może polecacie coś innego), czy po prostu zostać przy Allain'ie i nie przejmować się brakiem C++11 ?

1

Polecam Ci nie uczyć się C++ tylko wziąć się za jakieś Javy, C# albo innego Pythona.

0

Dokładnie, zostaw to chyba że chcesz pracować w systemach wbudowanych, doktorat lub jesteś pasjonatem. Oczywiście to daje dobre podstawy ale jeśli chcesz coś zbliżonego i rynkowego to najlepiej Jave

0

Zależy w jakim celu się tego uczy.
Jeżeli dla zajawki to spoko, jeżeli chodzi tylko o zdobycie pracy to faktycznie
od C++ bym nie zaczynał.

https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list

0
f4kir napisał(a):

Dokładnie, zostaw to chyba że chcesz pracować w systemach wbudowanych, doktorat lub jesteś pasjonatem. Oczywiście to daje dobre podstawy ale jeśli chcesz coś zbliżonego i rynkowego to najlepiej Jave

Sam mialem porzucic C++ i przerabiac webdev, ale jednak nadal C++ uzywam i nie spieszno mi do webdev. Tylko, ze jestem amatorem i nie mam cisnienia na zostanie profesjonalista.

8

@MrMadMatt @f4kir @Eldorad O. a Panowie co? Zabłądziliście wertując dział Kariera? Pytanie było z czego się uczyć, a nie czy się uczyć. Link macie tutaj Kariera

@KJT nie czytałem wersji C++11, ale znająć styl Grębosza nie powinien to być najgorszy wybór na początek https://helion.pl/ksiazki/opus-magnum-c-11-programowanie-w-jezyku-c-komplet-jerzy-grebosz,ocpp11.htm#format/e Dzisiaj jakąś spora promocja na e-book, nie wiem czy jest czasowa czy to tylko chwyt marketingowy i to tak na prawdę stała cena.

EDIT
Jak już ogarniesz podstawy to dalej materiały, które czytałem i polecam. Z tymże nie musisz wszystkiego czytać od deski do deski, to bardziej źródła do wertowania w trakcie pisania swoich programów. Kolejność przypadkowa

Nicolai M. Josutiss C++17 Complete Guide
Scott Meyers Effective Modern C++
CPP Core Guidelines
Anthony Williams Cpp Concurrency In Action - a tą to akurat polecałbym przeczytać całą.
Alexandrescu Nowoczesne Projektowanie w C++ - ciężka książka, zostawiłbym ją sobie jak już będziesz czuł się w C++ komfortowo, niektóre techniki są już przestarzałe, albo w ogóle się nie przyjęły i trzeba wiedzieć co sobie odsiać, tym nie mniej uświadomi Ci ona, że w C++ masz do dyspozycji dodatkowy, wewnętrzny język programowania

2

Styl Grębosza można lubić lub nie, ale herezji tam nie ma.
To jest temat który co jakiś czas się powtarza, na Discordzie kiedyś na to też odpowiadałem, przekleję własną wypowiedź (nie dotyczy tylko książek, ale materiałów ogólnie):

Jakbym teraz się uczył to szedłbym w te materiały:
Dokumentacja https://en.cppreference.com/w/
ogólnie bardzo polecam (kolejność przypadkowa):

  • Kate Gregory nt. core guildelines:
  • Wbić C++ core guildelines do ulubionych
    https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines
  • Całą serię Back To Basics z CPPCON (jest na YT)
  • Sean Parent i jego seria Better Code (chociaż wielowątkowość na starcie bym odpuścił)
  • Blog Jonathana Boccara'y: www.fluentcpp.com
  • Książki tego pana https://www.josuttis.com/ (poszukaj też jego wystąpień na cppcon). Move semantics i Templates mam, polcam szczerze każdemu (tę drugą jak przyjedzie czas ;)).
  • Meyers. Wszystko ALE koniecznie z Effective Modern C++, bo część rad z jego starych książek się zdezaktualizowała po wprowadzeniu C++11 i prostowane są własnie w niej.
  • Trochę "language lawyer" ale seria Guru of the week Herba Suttera
  • C++ notes for professionals - to średnio edukacyjne jest imho, ale jako szybka ściągawka na zasadzie "jak zrobić X w sposób idiomatyczny" się nada.

Zależnie od potrzeb:

  • C++ Concurrency In Action: Practical Multithreading Anthony'ego Williamsa. Tam są drobne błędy miejscami (mam stare wydanie, może poprawione w nowym, np. subtelności dot. mutexu z priorytetem) niemniej generalnie to bardzo dobra pozycja.
  • Pooglądaj prezentacje Dana Saksa z CodeDive, to jest wartosciowe jeżeli robisz sporo embedded.
  • Jeżeli pracować masz w QT to jest niezłe na początek: https://helion.pl/ksiazki/c-i-qt-wprowadzenie-do-wzorcow-projektowych-wydanie-ii-alan-ezust-paul-ezust,cppqtw.htm#format/e
  • Bardzo wartościowe rzeczy dot. QT https://www.kdab.com/category/blogs/
  • W zależności od platformy: materiały dotyczące debuggera. Greg Law ma świetne prezentacje nt. GDB i skryptowania go w Pythonie czy reversible debugging, do znalezienia na YT CPPCONu. Nie wiem jak dla MSVC.

Turnera C++ weekly jest jak najbardziej OK, ale musisz lubić formę wideo. Ja wolę czytać i jak mam obejrzeć wideotutorial to po prostu mnie trafia ;p

0

Ja lubiłem czytać Kompendium Wiedzy C++ 4th Stroustrupa, ale to jest przedstawione jako encyklopedia i max c++11 jeśli dobrze pamiętam. Natomiast dużo konkretnej wiedzy i przedstawione są wszystkie najważniejsze funkcjonalności języka.

2

Myślę, że obie książki wymienione na początku są OK.
Ważne żeby od początku uczyć się min. C++11 a najlepiej C++20.

Dodam listę książek które są u mnie w poczekalni (= zamierzam przeczytać), może coś się z tego przyda:

  • Język C++. Kompendium wiedzy (wspomniane wyżej)
  • Exploring C++20
  • Modern C++ Programming Cookbook
  • Hands-On Design Patterns with C++
  • Real-Time C++
  • Optimized C++
  • C++ High Performance
  • Functional Programming in C++
  • C++ Concurrency in Action (wspomniane wyżej)
  • API design for C++
  • Boost C++ Application Development Cookbook
0

Ja się nauczyłem podstaw C++ z Praty i polecam. Meyers też spoko dla początkujących, bo Prata to max c++11. Williams i Concurency in Action to pozycja dla zaawansowanych ale też super. Więcej niestety nie czytałem ale myślę, że warto już powoli ogarniać c++20

1 użytkowników online, w tym zalogowanych: 0, gości: 1