Verktyg Visningsval
2012-06-21, 15:39   #1

fredlovebot

Medlem

Plats: Norrköping

Registrerad: feb 2003

Lära sig C++ 2012


Hellu!
Det finns en hel uppsjö av resurser för att lära sig C/C++, men nu med nya standarden och åren som har gått så ställer jag mig lite frågande till i vilket ände jag egentligen ska börja? Jag kan de absoluta grunderna i C++ samt grundläggande OOP i Java.
C++ Primer Plus av Stephen Prata verkar ha fått helt ok kritik, är det nått att ha kanske? Eller är böcker öht överflödiga och de vettigare grejerna finns på det heliga internetz?
Jag vill ju liksom ha "hela" paketet även om jag förstår att det är lite omöjligt då jag antar att olika användningsområden skiljer sig rejält i hur saker utförs.
fredlovebot är uppkopplad nu
2012-06-21, 17:44   #2

Mikael07

Medlem

Mikael07s avatar

Plats: Göteborg

Registrerad: mar 2011

Har inga böcker själv, men en någorlunda modern bok är nog bra att ha som referens och att bläddra i. För min del lär jag mig bäst genom att göra något mindre projekt, och löser problemen under vägens gång. Blir mkt mer motiverad då. Fast det är ju bra att ha lite översiktskunskap innan så man inte går i allt för många fällor.

Annars är cplusplus.com en jättebra sajt som kortfattat och enkelt förklarar grunderna (bland mycket annat). Det är oftast min första hållplats när jag letar efter grundläggande information/syntax etc.
__________________
.:: Linux Mint :: i5 2500k :: Gainward GTX580 Phantom :: XMS3 8Gb :: Seagate 2Tb ::.
Mikael07 är inte uppkopplad
2012-06-21, 18:13   #3

Milky Way

Medlem

Plats: Stockholm

Registrerad: feb 2006

Tyvärr är inte böckerna uppdaterade ännu för C++11, så det är lite segt att köpa en bok just nu (det kommer uppdaterade gissningsvis inom ett år). Iaf, så rekommenderar jag C++ Primer av Lippman. Bra bok med få fel. Alternativet om du är en grym C programmerare som skrivet tiotusentals rader C-kod innan är Stroustrups bok(C++ Programming language) Den är dock mycket svårare att komma in i och tar mycket längre tid att lära sig ifrån då den innehåller så mycket detaljer (bland annat om hur en C++ kompilator arbetar).
__________________
Dator 1: i7-2700K, Asus P8Z68 Deluxe/GEN3, Noctua NH-D14, Corsair Vengeance DDR3-1600 16GB, GTX580 SLI, Seasonic Platinum 1000W, Antec P182, Samsung 830 256GB, Dell U2711
Dator 2: 965 BE, Gigabyte 790X-UD3P, 2x2GB Corsair Dominator PC2-8500, HIS HD4870, Corsair VX450
Milky Way är inte uppkopplad Folding
2012-06-21, 19:06   #4

LeMisanthrope01

Avstängd

LeMisanthrope01s avatar

Plats: Lidingö

Registrerad: jun 2012

Bok kontra internet är främst att du i boken får en färdig planerad resa. Du kan hitta guider på internet men oftast är det bara dokumentation om hur man utför en specifik sak.

Det är också mycket trevligare att läsa från bok än från skärm.

Jag skulle nog testa att sätta upp delmål som till exempel jag vill göra ett simpelt chat-program och sedan läser på om specifikt nätverk för att klara av det.

Skickades från m.sweclockers.com
LeMisanthrope01 är inte uppkopplad
2012-06-22, 02:52   #5

tufflax

Medlem

tufflaxs avatar

Plats: Stockholm

Registrerad: jan 2010

Eller så lär du dig inte C++ alls. Varför vill du lära dig just C++?
tufflax är inte uppkopplad
2012-06-22, 08:01   #6

GainerPRO

Medlem

Plats: Göteborg

Registrerad: mar 2007

Om du kan grunderna så borde du kolla på STL: Containers (Standard Template Library: Containers).

Du skulle även kunna ta en titt på www.boost.org.

Det är Boost som C++ kommitten tittar när de väljer ut ny funktionallitet som kommer att införas i C++ STL. Om du istället skulle vilja ligga steget före
GainerPRO är inte uppkopplad
2012-06-22, 09:59   #7

erlc

Medlem

Plats: Linköping

Registrerad: sep 2003

Om du vill ha en bok kan jag verkligen rekommendera Professional C++
Den går på djupet och tar upp massor av godsaker från c++11
erlc är inte uppkopplad Folding
2012-06-22, 10:06   #8

fredlovebot

Medlem

Plats: Norrköping

Registrerad: feb 2003

Citat:
Ursprungligen inskrivet av tufflax Visa inlägg
Eller så lär du dig inte C++ alls. Varför vill du lära dig just C++?
Det området jag studerar i kommer förr eller senare kräva god kunskap inom C/C++ (datorgrafik och visualisering).
Finns det någon anledning till att jag INTE skulle lära mig C++?
Tack för tipsen hittils!
fredlovebot är uppkopplad nu
2012-06-22, 11:21   #9

LeMisanthrope01

Avstängd

LeMisanthrope01s avatar

Plats: Lidingö

Registrerad: jun 2012

fredlovebot: Vilken metod lutar du mot?

Citat:
Ursprungligen inskrivet av erlc Visa inlägg
Om du vill ha en bok kan jag verkligen rekommendera Professional C++
Den går på djupet och tar upp massor av godsaker från c++11
"Appeals to experienced developers who are looking for a higher level of learning."

Jag uppfatta det som att han ville ha en nybörjarguide. Är du säker på att han klarar den? Hur är nivån?

Skickades från m.sweclockers.com
LeMisanthrope01 är inte uppkopplad
2012-06-22, 12:43   #10

fredlovebot

Medlem

Plats: Norrköping

Registrerad: feb 2003

Vet inte riktig vad du menar med metod.
Mer än en nybörjarbok så är jag ute efter något som är komplett. Som sagt, grunderna "kan" jag, men det hade inte skadat med en bok som faktiskt förklarar varför och går in på djupet. T.ex, en mattebok (tänk gymnasiekompetens) skulle kunna skriva nått i stil med "såhär löser du en diff.ekv av n-grad" utan att gå in på djupet om diff.ekv i sig, vilket gör det ganska meningslöst för att få en robust förståelse.
Det vill jag i största utsträckning undvika
fredlovebot är uppkopplad nu
2012-06-22, 13:04   #11

cic

Medlem

cics avatar

Registrerad: jan 2005

Prata-boken var utdaterad redan innan C++11 släptes. Jag har ingen direkt koll på "nybörjarböcker", men denna SO-tråd borde täcka in det mesta i bokväg.

Om du redan kan någon tidigare version av C++ tillräckligt bra går det nog klara sig utan någon bok, speciellt om du, som GainerPRO nämnde, redan använt t.ex. Boost. Wikipedia-artikeln om C++11 täcker nog det mesta av vad som är nytt, och Herbs något kortare sammanfattning Elements of Modern C++ Style är bra. Stroustrup har lite spridda notiser om olika saker också.

Angående någonslags referens så är cppreference.com mycket bättre än den tidigare föreslagna cplusplus.com (som inte ens verkar ha med C++11-saker). Men om allt annat misslyckas så är det nog standarddraften som gäller, ibland i kombination med "C++ Standards Committee Papers" (men standarden tenderar att vara ganska svårläst).

Hursomhelst, om du redan kan tillräckligt mycket C++ kan nog Meyers Overview of the New C++ i komination med några Google-sökningar vara tillräckligt. T.ex. är rvalue references ganska besvärligt och kan behöva några Google-sökningar extra. Men det går alltid att fördjupa sig i saker, t.ex. kan man vi första anblick tro det är svårt att ha en timmes lång talk om man initialiserar saker, eller för den delen, två timmar om lambdas. Eller kan man få för sig att skriva en bok om bara en delmängd av standardbiblioteket. När jag ändå håller på att ta med massor länkar kan jag passa på att nämna GoingNative 2012 också.

Att tänka på är att allt inte är implementerat i alla kompilatorer ännu heller.
__________________
Ännu en webbplats utan innehåll, fast den är ju ganska snygg att kolla på iallafall.
cic är inte uppkopplad
2012-06-22, 13:12   #12

fredlovebot

Medlem

Plats: Norrköping

Registrerad: feb 2003

Tack för det utförliga svaret!
Jag borde förtydligat det i första inlägget, det handlar inte lika mycket om att lära sig den nya standarden utan snarare om att lära sig C++ på ett någorlunda modernt sätt. Det vore tråkigt att komma igång på allvar utan att inse att det man gör är helt passé eller i allmänhet bara dålig design/metodik.
fredlovebot är uppkopplad nu
2012-06-22, 13:21   #13

kobb3

Medlem

kobb3s avatar

Registrerad: apr 2009

C++11 är egentligen inte mycket nytt som du kommer behöva i första taget, är bara småsaker som gör det ytterst fortare att koda, man kan ta genvägar.

Rekomenderar att ta en kurs på något universitet, finns några c++ kurser och är aldrig något problem att komma in. Jag har gått två c++ kurser på Uppsala universitet, distans. Troligen får du gå en fortsättningskurs.

http://www.uu.se/utbildning/utbildni...d=18997&type=1
kobb3 är uppkopplad nu
2012-06-22, 16:36   #14

JesperT

Medlem

JesperTs avatar

Plats: Stockholm

Registrerad: jul 2006

Var också sugen på att sätta mig in i alla C++11 features ordentligt förut och började läsa på, men det suget avtog snabbt när jag insåg att det inte finns någon kompilator som är i närheten av att vara komplett vad gäller stöd för allt det nya.

Klarar inte kompilatorn hela utvidgningen så får det vara för min del. Känns inte kul att jobba med någon halvfärdig betaversion.
Dessutom vill man ju inte att syntaxen plötsligt ändras i det man skrivit. Ett exempel på detta är Visual studios egen "for each" variant som skiljer sig från den gängse C++11 syntaxen.

Men som andra här skriver, C++11 tilläggen är mer finlir som man kan ha nytta av om man redan kan grunderna bra och vill skriva effektivare och snyggare program.
__________________
Namn : Jesper | Ålder : 36 | In-game namn : That..Thing..
Yrke : Matematisk modellerare, mjukvaruutvecklare för risksystem.
Utbildning : PhD i matematik + lite annat
JesperT är uppkopplad nu
2012-06-22, 16:45   #15

-rand-

Medlem

Registrerad: dec 2011

Citat:
Ursprungligen inskrivet av tufflax Visa inlägg
Eller så lär du dig inte C++ alls. Varför vill du lära dig just C++?
för att det utklassar alla andra språk när det gäller grafik

Ont om du vill hålla på med grafik så kan jag rekomendera den här snubbens guider
http://www.youtube.com/watch?v=0kpSi...B0522C7BC3C1C2
Riktigt bra guider för spel programmering
-rand- är inte uppkopplad
2012-06-22, 17:18   #16

cic

Medlem

cics avatar

Registrerad: jan 2005

Citat:
Ursprungligen inskrivet av JesperT Visa inlägg
Var också sugen på att sätta mig in i alla C++11 features ordentligt förut och började läsa på, men det suget avtog snabbt när jag insåg att det inte finns någon kompilator som är i närheten av att vara komplett vad gäller stöd för allt det nya.

Klarar inte kompilatorn hela utvidgningen så får det vara för min del. Känns inte kul att jobba med någon halvfärdig betaversion.
Om du menar läget nu så stämmer detta inte längre, t.ex. GCC stödjer ganska mycket.

Citat:
Ursprungligen inskrivet av JesperT Visa inlägg
Dessutom vill man ju inte att syntaxen plötsligt ändras i det man skrivit. Ett exempel på detta är Visual studios egen "for each" variant som skiljer sig från den gängse C++11 syntaxen.
Inte jätteallvarligt kanske, men eftersom att C++11-standarden nu är färdig och publicerad kommer detta inte hända längre.

Citat:
Ursprungligen inskrivet av JesperT Visa inlägg
Men som andra här skriver, C++11 tilläggen är mer finlir som man kan ha nytta av om man redan kan grunderna bra och vill skriva effektivare och snyggare program.
Mja, det är fortfarande C++ så klart, men man använder ändå alla nya saker hela tiden. Det märks kanske inte när man går från tidigare version -> C++11, men man saknar ganska mycket ganska snabbt om man istället går från C++11 till en äldre version.

Men om du menar är att det går att lära sig gamla C++ först, och sedan komplitera med de nya delarna efteråt utan allt för mycket besvär håller jag med.
__________________
Ännu en webbplats utan innehåll, fast den är ju ganska snygg att kolla på iallafall.
cic är inte uppkopplad
2012-06-22, 22:25   #17

tufflax

Medlem

tufflaxs avatar

Plats: Stockholm

Registrerad: jan 2010

Citat:
Ursprungligen inskrivet av fredlovebot Visa inlägg
Det området jag studerar i kommer förr eller senare kräva god kunskap inom C/C++ (datorgrafik och visualisering).
Finns det någon anledning till att jag INTE skulle lära mig C++?
Tack för tipsen hittils!
För att C++ är onödigt komplicerat och det tar lång tid att få något gjort i det.
tufflax är inte uppkopplad
2012-06-24, 00:03   #18

Mikael07

Medlem

Mikael07s avatar

Plats: Göteborg

Registrerad: mar 2011

Citat:
Ursprungligen inskrivet av fredlovebot Visa inlägg
Det området jag studerar i kommer förr eller senare kräva god kunskap inom C/C++ (datorgrafik och visualisering).
Finns det någon anledning till att jag INTE skulle lära mig C++?
Tack för tipsen hittils!
Jag har jobbat med datorgrafik som bl.a. utvecklare och kan med gott samvete säga att C/C++ är precis just vad som gäller, men det har du ju redan insett. Sen kan man argumentera om det är ett bra språk eller inte, men det är oväsentligt här. Man kan säga att det är ett bra språk för ändamålet iaf. Python används flitigt också, så kan rekommendera att kolla på det med. Men (vissa aspekter av) det kommer ganska naturligt när du kan C++. Vill du bli konkurrenskraftig kan det även vara klokt att kika på GPU-programmering, exempelvis med CUDA C eller OpenCL, och möjligen lite Fortran för att använda till vissa beräkningstunga moment.
Men det är nog bäst att ta en sak i taget kanske

Senast redigerad av Mikael07 2012-06-24 klockan 00:13.
__________________
.:: Linux Mint :: i5 2500k :: Gainward GTX580 Phantom :: XMS3 8Gb :: Seagate 2Tb ::.
Mikael07 är inte uppkopplad
2012-06-24, 23:46   #19

fredlovebot

Medlem

Plats: Norrköping

Registrerad: feb 2003

Målet är just CUDA och OpenCL
Jag är 100 sidor in i C++ Primer (Lippman), verkar bra hittills även om det inte är mycket som är nytt för mig än.
fredlovebot är uppkopplad nu
Senaste nyheterna

Redaktionens senaste nyhetsrubriker

Sök jobb