Kde se učit C++? rubrika: Programování: C/C++

4 hutlik007
položil/-a 17.1.2015

Zdravím,

rád bych se naučil psát jednodušší programy v C++, abych měl nějakou průpravu a mohl v samostudiu jazyka pokračovat. Chtěl bych se zeptat, jaký je podle vás nejlepší zdroj informací pro učení - nejsem úplný začátečník, ale s C++ zkušenosti nemám, polopatický přístup by tak přišel vhod :D

Díky za odpovědi :)

Komentáře

  • arron : A už jsi někdy v něčem programoval? 17.1.2015
  • dzejkob : Není lepší se učit něco jinýho? 17.1.2015
  • diverman : @dzejkob: proc? 19.1.2015
  • Anonym : @dzejkob Třeba Haskell jako doplněk C++? http://bartoszmilewski.com/2009/10/21/what-does-haskell-have-to-do-with-c/ 20.1.2015
  • dzejkob : Pomalý vývoj, unsafe kód, povětšinou docela platform-dependent + obecně náročnější. Když už učení, tak bych vzal max. ten boost a vyrobil milióntý pátý 3d engine se software renderingem nebo něco podobnýho. "Jednodušší programy" bych dělal (i učil) v něčem jiném. 21.1.2015
  • nixbody : @dzejkob: Spíš bych řekl, že je obecně delší doba nutná k ovládnutí jazyka, ale vývoj potom již pomalý není a když člověk používá vhodné knihovny, tak jsou aplikace naopak velmi přenositelné. Unsafe kód je problém pro začátečníka, ale ne pro zkušeného vývojáře, když navíc praktikuje TDD, tak už vůbec není co řešit. Způsob psaní programů v C++ se s příchodem C++11 hodně změnil a díky rozsáhlým syntaktickým možnostem C++ jde naopak psát velmi elegantní kód. 21.1.2015
  • kohven : Tady bych se asi zastal obou. "Nové" C++ mi přijde hodně zajímavé a souhlasím se vším s Nobody. Na druhou stranu pořád nemůžu vymyslet, co bych si v tom chtěl naprogramovat a nestačil by na to C#. Dokonce i hry se dají dneska úspěšně tvořit bez znalosti C++. To už by člověk musel psát vyloženě herní engine a to už moc nedopovídá definici "jednodušší programy". Možná se to hodí na psaní pro nějaká malá zařízení, kde potřebuju více šahat na hardware, ale jinak mi přijde, že se dneska vývojář bez C++ docela dobře obejde. Na druhou stranu znalost čehokoliv není nikdy zbytečná. 21.1.2015
  • Anonym : Používám C++14 a kód je stručný a přehledný. Rychlost vývoje stejná jako v jiných jazycích. Pokud je unsafe kódem myšlení nativní kód, tak je to výhoda. Na minipočítačích s ARM jako např. Raspberry Pi je navíc Java o dost pomalejší (neexistuje tak dobrý JIT překladač jako pro Intel). Takže to shrňme, C++ má spoustu výhod oproti jiným jazykům a pro některé projekty je lepší volbou (jen ho musí člověk dobře umět). 21.1.2015
  • Petr Voneš : Pro zajimavost http://joeduffyblog.com/2013/12/27/csharp-for-systems-programming/ 22.1.2015
  • Anonym : @kohven: Věcí, která v C# nejde tak snadno je např. cross-platform GUI. V tomhle ohledu má i Java navrch. Jinak máte pravdu, bez znalosti C++ se klidně obejdete, všechno se to odvíjí od vašich preferencí. 22.1.2015
  • slavof : @Petr Vones: Bohuzial dalsi vyvoj M#, Midori, ..., bol v MS zruseny, team rozpusteny (mnohi odisli z MS), ... 23.1.2015
  • kohven : dq3zuSNbre: Co se týče portace na více platform, je na tom C# oproti C++ dost bídně a to nejen co se GUI týče. Ale když to vezmu pragmaticky: pro linux i MacOs fungují winforms v pohodě. :) Ale jinak asi rozumím, co se tím myslí. V C++ bylo určitě uděláno více přenositelných aplikací než v C#, jsou na to zavedené postupy, atd... Pokud bych měl dělat něco opravdu extra ultra multiplatform, kde hrozí, že se to bude překládat i pro toustovač, tak by to byl velký argument pro použití C++. 23.1.2015
  • Anonym : @kohven Já si myslím, že C++ zažívá docela obrodu, takže kromě zavedených postupů tu máme spoustu nových, které přišli především díky knihovnám Boost a Qt. Navíc s pokusy o realtime kompilaci a víceméně pěkná spolupráce s jazyky Python/Lua, začíná být docela lákavou alternativou i k `user friendly` jazykům jako C#. Ale C++ má pořád jednu velkou nevýhodu a tou je dosti pozvolná křivka učení, pokud se chcete dostat na úroveň `pokročilý`. 23.1.2015
  • kohven : dq3zuSNbre: Ale tak já bych to s tou křivkou učení neviděl tak černě. Pořád je to navrhovaný pro lidi, ne pro mimozemšťany. Pokud se chci dostat na úroveň pokročilý, tak to není o jazyku, ale o paternech. Java je v syntaxi možná ještě poměrně spartanská, ale C# už má taky spoustu "pastí" a přitom je považován za přívětivý. Ok, v C# nejsou pointery, tam kde má C# jeden způsob zápisu lambdy, má C++ 3x mocnější aparát na funkce a kontexty, atd. Ale jinak je to pořád programování se skoro stejným OOP. Asi bych se toho C++ zase tak nebál. S tou obrodou souhlasím. 23.1.2015
  • harrison314 : @kohven: offtopic, ale C# pointery ma, je v nom mozne pisat aj unsafe kod. Inac nema dakto porovnanie stylu pisania C++ a C++11, dost by ma zaujimala, najme ta sprava pamete 6.11.2015
  • Tomáš Tintěra : Podle http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-an... je to Effective Modern C++ (Scott Meyers) This is basically the new version of Effective C++, aimed at C++ programmers making the transition from C++03 to C++11 and C++14. Už to poptávám v místní knihovně :) 6.11.2015
odkaz
Anonym
odpověděl/-a 18.1.2015

Nejdříve bych si zjistil, kde se neučit. Nebrat žádné starší knihy, které nepopisují C++11 (resp. C++14).
Nejlepší jsou:
Stroustrup: A Tour of C++
Meyers: Modern Effective C++

Komentáře

  • Kit : Co je špatně na těch starších knihách? 18.1.2015
  • mimi.vx : @Kit traba to ze s aktualni normou jazyka nemaji moc spolecneho a naucis se z nich spoustu bad practices 18.1.2015
  • Anonym : @Kit Učí špatné postupy, hlavně v oblasti správy paměti. Pokud nějaký projekt výslovně nevyžaduje pre-C++11, nemá smysl se jím vůbec zabývat, nový standard je řádově lepší (jak řekl Stroustrup, "it feels like a new language"). 18.1.2015

Pro zobrazení všech 10 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.