Knížka C++ – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Knížka C++ – C / C++ – Fórum – Programujte.comKnížka C++ – C / C++ – Fórum – Programujte.com

 

Honza
~ Anonymní uživatel
425 příspěvků
27. 1. 2018   #1
-
0
-

Ahoj,

V C++ jsem začátečník. Koupil jsem si knížku C++ za 21 dní.  Ta knížka je celkově super, je v ní snad všechno co se může v C++ objevit, ale na mě připadala až moc odborná. Všude samé odborné názvy. Já vím, že v programování je potřeba je znát, ale pokud je někdo začátečník představoval bych si takovou knížku jinak. Narazil jsem na knížku C++ bez předchozích znalostí. Ta mi z ukázek připadala napsána o něco víc laicky. Ale nevím, jestli je v ní popsáno i OOP. Máte s touto knížkou někdo zkušenosti ? Popřípadě doporučení na nějakou třeba i tenčí, ale více srozumitelnější knížku pro začátečníka ? 

Nahlásit jako SPAM
IP: 82.99.180.–
Yenkee0
Newbie
27. 1. 2018   #2
-
0
-

Ahoj, dle mého názoru je nejlepší volbou kniha Dokonalý kód (Code complete), kterou napsal Steve McConnell

Nahlásit jako SPAM
IP: 188.120.210.–
Jerry
~ Anonymní uživatel
459 příspěvků
27. 1. 2018   #3
-
0
-

#1 Honza
nejprve je potřeba si uvědomit, co chceš být a co chceš umět :) a k čemu to budeš používat

třeba: chci být Java programátor (pro servery nebo web aplikace) a budu se mít finančně dobře protože Java programátoři berou slušný plat. Nebo - chci být PHP programátor a budu vytvářet webové stránky, nebo chci se dobře naučit C++ a neumím vubec nic a to zabere cca 5-6 let práce. Až to budu umět tak budu moct nastoupit jako Linuxový programátor (musim umět i Linux) nebo embedded progamátor v C++/Qt nebo herní programátor (takže se budu muset aj naučit DirectX což zabere dalších 5 let, nebo Unity nebo SharpDX, SlimDX, XNA). Ono totiž "samotný" C++ se třeba pod windows normálně moc nevyužívá - v ČR. C/C++ se používá pro programování různých řídících automatů v průmyslu jako je Bosch, Siemens apod. Nebo chci se naučit verzi C++ (+ WinAPI) tu co je v MS VS 2017 a budu dělat programátora pro masivní paralelní výpočty s kartami NVidia nebo AMD. Nebo si radši vemu kompilátor od Intelu - Intel Parallel studio ... atd. ... atd... atd... Je také dobré si zvolit jakou verzi C++ se chceš naučit. Např tu od Microsoftu v MS VS 2017 nebo tu co je v CodeGearRAD Studio verze Tokio (t.j. C++Builder) nebo nějakou free verzi třeba gcc++ apod. Možná se chceš přestěhovat do Německa nebo do USA. Možná že bude mnohem lepší naučit se C# které se v praktickém životě v čr využívá velmi hodně a k tomu novou knihovnu .NET Core nebo starší .NET  ... nebo..... C++/CX (nebo starší C++/CLI) což se v ČR skoro vubec nepoužívá. Takže je potřeba si nejprve říct co chci ...

U nás v čr je dobrá knížka od RNDr. Karla Nenadála, TurboC a pak druhá C++ ale mladí o tom už moc neví, pak jsou tu moc dobré knížky od Herouta - ty sou moc dobrý a pak taky moc dobrej je autor Miroslav Virius

http://people.fjfi.cvut.cz/viriumir/

a ze zahraničních třeba C++ For Dummies, Stephen Randy Davis, Willey publishing. ale tam je podmínka, že umíš anglicky. v zahraničí jsou o C++ knížek mraky a mraky .... .

hele samotný C++ předpokládá, že už máš znalosti obyčejnýho Céčka tak 2-3 roky, protože jít rovnou na C++ je blbost. a taky samotnej jazyk C++ je pochopitelně k ničemu protože dneska sou duležitý knihovny jako je třeba C++ Boost (poněkud stále nestabilní), ATL, WinAPI, Qt (velmi dobrá a v praxi žádaná) apod. a to všechno musíš k tomu umět (apoň jednu z nich) ...  jinak je ti C++ k ničemu .. a za 21 dní se stejně C++ nenaučíš .. já osobně bych ti doporučil se nechat někde zaměstnat u nějaký firmy .. bohužel 90. léta už jsou dávno pryč ...

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:bd92:...–
KIIV
~ Moderátor
+43
God of flame
27. 1. 2018   #4
-
0
-

#3 Jerry
Proboha, jen ne TurboC++, posledni verze vysla snad v roce 1993. Kdyz nekde zahlidnes #include <conio.h>, tak je to bud kurevsky starej kod, nebo naprosto neomylne uhodnes, ze to programoval nekdo v Indii.

C je pro nauceni se C++ spis temer na skodu. Clovek se tam nauci spoustu Ceckovin a ty sebou pak taha do C++, kde se to da delat asi tak tisickrat lepe, snadneji a tak.

Videl sem pred casem moc zajimavou prednasku o tom, jak pojmout vyuku C++ behem par dni. Samozrejme se nedostane na uroven veci jako pointery, ale v takovemhle rychlokurzu to neni vubec na skodu, jelikoz je to tema hodne narocne na pochopeni. Misto toho doporucuje rovnou nadhodit reference.

Video se jmenuje "Stop teaching C" https://www.youtube.com/watch?v=YnWhqhNdYyk

Urcite je dobre taky mrknout na nektere videa od samotneho tvurce C++ https://www.youtube.com/watch?v=fX2W3nNjJIo Je to hlavne o modernim C++ - nove C++ standardy dovoluji delat spoustu idiomatickych veci daleko lepe a srozumitelneji - coz by mel byt primarne ucel vyuky. Aby na kod koukl nekdo dalsi, a bylo zrejme, o co se autor snazil.

Vychytavky, na ktere clovek muze narazit, od nekoho, kdo se tim predchozim neridi, to je zase trosku jina liga. Ale zacatecnik by mel zacit hlavne tim srozumitelnym kodem.

Nahlásit jako SPAM
IP: 81.30.230.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Jerry
~ Anonymní uživatel
459 příspěvků
28. 1. 2018   #5
-
0
-

#1 Honza

doporučuju nejdřív sehnat co nejdřív co nejvíc informací
a pak se rozhodnout protože skákat za jednoho programovacího
jazyka na druhej nejde.... možná ale by si radši byl chemik
nebo právník... kdo ví...

pokusím se ti naservírovat několik informací, které jsou bohužel
vzájemně provázané a které si už budeš muset přebrat sám


céčko bez C++ používá stále po světě spousta lidí
https://www.tiobe.com/tiobe-index/
proněkteré aplikace (malé procesory, rychlost výpočtu) je to nezbytné
a jinak to v současné době nejde někde se stále používá i assembler

když programátor začíná tak je logické, že začíná od toho jednoduššího
a pak jde k tomu složitějšímu i když samozřejmě můžeš rovnou skočit na
učení se C++
http://en.cppreference.com/w/cpp

nebo Javu nebo cokoliv jinýho podobnýho, např. Java  takové zákady jako céčko nemá
protože neprošla vývojem jako C/C++ a lidi co se začali učit Javu nebo C# .NET tak
vúbec o tom, jak vypadá céčko nic neví, oni rovnou skočili do éry objektů
a jak vidíš nijak jim to neuškodilo !!! protože se asi těžko budou vracet
k programování v assembleru. Samozřejmě začínat dnes v mrtvém TurboC :)))
asi neni nejlepší cesta ale jde o to, že ten standard jazyka ANSI C
se běžně používá.
https://www.tiobe.com/tiobe-index/
Je pochopitelně lepší vzít si "technologicky" současné
vývojové prostředí třeba Visual Studio 2017 nebo CodeGearRAD Studio nebo
nástroje z jetbrains.com a tisíce dalších ........................
V žádném případě bych se nevracel do WatcomC++ a podobný i když je to teď Free.

všichni starší programátoři co začínali v 90 letech (po revoluci) prošli
právě začátky, kdy C++ ještě nebylo u nás rozšířené, takže mají výhodu
v tom, že zvládnou "myšlenkově" procházet celou onu "strukturu" s i bez
objektů a vědí, že ne vždy musíš vytvořit celou hierarchickou strukturu objektů
k tomu, aby si dosáhl cíle. Někdy to ani nejde protože tak nějak neznáš
co budeš tvořit předem to zjistíš až když to vytvoříš. proto se taky 90
procent softwaru předělává protože se prostě "nepovede" na poprvé ale
málokdo o tom mluví ....

pamatuju si pana Stroustrupa v době 80 a 90 let když ještě nebyl plešatej a měl
velký háro :)))))))))) i on a ten jeho C++ standard se za posledních 30 let
postupně vyvíjel, C++ verze 17 nespadlo z nebe, všichni začínali na céčku, basicu,
fortranu, pascalu, algolu apod. dřív byl standard C++ jaksi "osamocený"
a postupem let se do něj začaly promítat víc a víc knihovní funkce, to znamená
věci, který se v c++ vytvořily jako další nástavba C++ pro urychlení programování
To co má v hlavě Stroustrup si nenarveš do hlavy za 21 dní. On to už dělá desítky let.
a dělá jenom to. nechodí do školy. on nemá kam propadnout. Problém je v tom, že např v 90 letech vznikla
knihovna MFC, pak se ukázalo, že to neni "uplně ono" pro určitý vývojový směr
a vzniknul .NET a ještě později se lidi zase
vrátili ke Qt - což je z pohledu .NETu nižší úroveň. Měl bys vědět, že ty složité
systémy dědičnosti a polymorfizmu, které se budeš muset naučit v C++ stejně na
ještě vyšších úrovních tak nějak nepotřebuješ. Byl bys velmi překvapen. C# to
prostě nemá a funguje skvěle a co potom třeba jazyk Go. Problém je ale v tom,
že lidi co ho dělali prošli celými základy programování a celým tím martýriem
C++ a dále a díky tomu byli schopni tohle vytvořit. Samozřejmě můžeš se začít
učit i jiný objektový jazyk třeba Rust nebo OCaml nebo Eiffel nebo Adu nebo
Simulu.... je to nekonečný vesmír ... v reálném světě jde hlavně o to, čím se
uživíš ...

tak jako tak za pár měsíců v céčku dojdeš k tomu, že objekty potřebuješ, ono totiž
C++ jako nástavba céčka je velmi žádoucí. neexistence tohohle standardu by
byla katastrofická, prostě hroznej chaos, pokud budeš psát větší program
co má třebva 100tis řádků tak jednoduše budeš potřebovat "něco" co ti oddělí
jednotlivé části kodu a uzavře tyto části do nějaké kapsle ve které bude kod a data
společně - rozuměj tím objekt a umožní dědičnost a vytvoření hierarchické struktury.
Možná bych ti to asi ani neměl ukazovat, ale tady se můžeš podívat, že "něco jako"
shluknutí dat a metod lze vytvořit i v neobjektovém jazyce a používalo se to v
80 a na začátku 90 let:  https://uloz.to/!7UGWGsxk/scantybasic-zip
myslím, že budeš veli překvapen co všechno de.
Ono se o tom moc neví ale už v 60 a 70 letech
existovaly dokonce i objektové procesory. Pak to ale vyhrál Intel. Existuje
i "vyšší" úroveň než objekty, vyšší než teplates a vyšší než generiky, ale zatim
je to spíše v plenkách. časem třeba dojdeš k tomu, že struktura objektů (i templates)
může byt i dynamicky rekonfigurovatelná s využitím interface objektů a že je možné
ji programovat dynamicky pomocí "run-time" kompilace. Dokonce i vnitřní struktura objektu může být rekonfigurovatelná.

firmy v dnešní době vyžadujou aby kod (a tím zakázka) byla hotová co nejdřív
takže aby si ty jako makáč udělal co nejvíc práce za co nejkratší čas a vydělal
sobě a firmě co nejvíc peněz (hlavně majitelům firmy) a céčko bohužel na některý
věci "je pomalý" a málo elegantní takže by z tebe byl špatnej a pomalej makáč.

je tu ale jakási "skulinka" a ta se menuje "rentiérství". tedy lidé, kteří jsou současně bohatí a jsou to nadšenci do IT mohou pokojně dělat "jen" to co je baví. A mohou to dělat ve firmě i samostatně. To bohužel ti ostatní nemohou ...

česká republika je malá, je to malý trh,  pokud budeš dělat programátora tak
stejně to (v mnoha případech) skončí tak, že budeš muset pravidelně cestovat do
zahraničí. takže tejden makáš a pak musíš strávit 20 hodin v letadle aby si
ten tvůj výtvor někde nainstaloval v jiným časovým pásmu. vrátíš se za 5-6 dní
uplně mrtvej a nevyspalej a máš tejden abys zase něco naprogramoval a opět to jel
někam nainstalovat :))) takže za pár let je z tebe programátorská mumie...........

Nemusíš mít strach, tím že se začneš rovnou od začátku učit nějakou verzi C++ nic
neztratíš a ani se tim nijak "nepoškodíš". Jednoduše budeš umět C++. Měl bys taky vědět,
že jedna jediná knížka ti asi stačit nebude. Autor obvykle "nedokáže" sepsat vše
do jedné knížky a nakladatelství by mu to asi stejně nevydalo protože tam je limit
na počet stran co se daj ještě slepit dohromady :))) takže těch knížek budeš potřebovat víc.
Tak to chodí. Jo a civění do monitoru kazí oči.


jak vidíš svět vůbec neni jednoduchej ... :)))

Nahlásit jako SPAM
IP: 2a00:1028:83be:235a:e19e:...–
KIIV
~ Moderátor
+43
God of flame
29. 1. 2018   #6
-
0
-

#5 Jerry
S tim se da vesmes souhlasit, akorat C++ neni nadstavba C uz cele dekady.

A pokud se chce ucit objektove, tak nema ani trochu smysl ucit se C. Akorat bude vsude srat typicky Ceckoviny jako memset pro nulovani poli, nedej boze i objektu a v uplne nejhorsim i objektu kde nejsou jen POD typy.

Krom toho v C se musi rovnou zacinat poiterama, zatimco v C++ se na spoustu veci daji pouzit reference. Nebo v horsim pripade aspon smart pointery.

V C++ je jeden ze zakladnich stavebnich kamenu koncept RAII - to je neco, co v C neuveritelne chybi. Pokud pak clovek ma udelat nejake slozitejsi zabirani zdroju, ktere muzou jeste i selhat, stava se z toho neuveritelna zmet if if if if if if else else else ....... a je prakticky nemozne uvolnit to spravne. Pak vznikaj konstrukce jako zasobnik struktur void pointeru (co se ma uvolnit) a pointeru na funkce, co to uvolnuji. V kombinaci s goto error (to je mimochodem ta lepsi varianta :D).

V Jave taky nic takoveho neexistovalo az nekdy do verze 7. Kdy se objevilo try with resources, ktere pri neuspechu aspon dokaze vyuzit interface AutoCloseable a zase to pekne poukoncovat jak se patri. A resourcy nejsou jen pamet, coz je jedine, co java resi. Pak se samozrejme narazi na dalsi zadrhel, bud se pouzije garbage collector, co zablokuje beh programu na dobu potrebnou pro vycisteni a popresouvani zabrane pameti, nebo je volne misto fragmentovane, nebo se to uklizi jen tak na oko. Ani jedna varianta se nehodi pro cokoliv, co potrebuje bezet furt a kazdy zasek muze znamenat znacny problem. Proste, jako tezkej C++ programator mi bylo vzdy strasne tezko cokoliv delat v Jave. A opacne je to uz temer nemozne, protoze Javistum chybi ten nizkourovnovy nahled a vubec potreba uvolnovat po sobe smeti. To je jeste horsi, protoze jsou zvykli vsude cpat  new objekt, pritom staci lokalni a pro RAII je to uplne nezbytnost.

Nahlásit jako SPAM
IP: 185.163.41.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 76 hostů

Podobná vlákna

Knizka — založil Jakub Lužný

3D knizka C++??? — založil Tomas

Zase knizka — založil Datlik

Vhodná knížka PHP — založil Wilima

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý