Trädvy Permalänk
Medlem
Registrerad
Dec 2011

Lära mig C++

Hej jag vill komma igång och lära mig C++. Är väldigt ny till programmering och vill gärna att någon länkar en bra sida eller några videoguider där man kan lära sig. Hoppas någon kan hjälpa till!

Tack på förhand!

Trädvy Permalänk
Medlem
Plats
Farsta
Registrerad
Dec 2003

@Zyrale:
YouTube brukar ju vara en bra källa till bra videoguider.
Kanske den här kan vara något att börja med:

https://www.youtube.com/watch?v=tvC1WCdV1XU&list=PLAE85DE8440...

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jul 2007

Försök ha något litet roligt projekt i C++ också parallellt med att läsa på, dvs något litet program som gör något du har nytta eller nöje av.

Trädvy Permalänk
Medlem
Plats
Uppsala
Registrerad
Dec 2008

Jag säger som vanligt: börja med Python istället. Även om du i slutändan vill lära dig C++ finns det språk som är lättare att börja med. Ta dina först steg inom programmeringens konst med Python. När du har grundkunskaperna och tänkandet är det lätt att lära sig hur man gör samma sak i ett annat språk.

Trädvy Permalänk
Medlem
Registrerad
Dec 2011

Hmm, har lekt lite med C++ förut och nu när jag ska börja civilingenjör i datateknik om nån vecka så tänkte jag komma igång lite med programmering igen så att jag är redo, men aa jag har ingen aning om vilket språk skolan kommer använde/ vad jag vill lära mig mer av

Trädvy Permalänk
Medlem
Registrerad
Dec 2011

@axeburken: är dessa de bästa, eller finns det några svenska guider?

Trädvy Permalänk
Medlem
Plats
Falköping
Registrerad
Jan 2009

C++ direkt är en bra bok som går igenom grunderna på ett bra och pedagogiskt sätt. Sen så finns det väll som de andra säger ett gäng med youtubeguider men jag föredrar faktiskt böckerna.

Bloodsheds devccp kompilator är ett bra opensource program btw

Asus P8Z77-v lx | Intel i5-3570k @ 4.40Ghz | Corsair Vengeance LP 2x4gb 1600Mhz | EVGA GTX 670 |
Samsung 840 250Gb

Trädvy Permalänk
Medlem
Registrerad
Dec 2011

Så vilka program finns det som är gratis och man kan programmera med? Hade en trial på visual studio men den är slut nu så kan inte programmera med något atm? :/ snälla ge alla förslag/ de bästa

Trädvy Permalänk
Medlem
Registrerad
Dec 2011

@DeGreeZ: Förutom denna killes förslag, vilket jag redan har kollat igenom

Trädvy Permalänk
Medlem
Plats
Vargön
Registrerad
Mar 2011

Visual Studio Community är gratis

https://www.visualstudio.com/en-us/products/visual-studio-com...

ps: Du måste göra en "advanced installation" eller vad det nu heter för att kunna kryssa i C++, som standard är bara C# och lite annat installerat.

Stationär : Fractal Design R4 | ASUS Z87-A | Intel i5 4670K | 16GB 1600Mhz Corsair CL9 | GeForce GTX 780 OC | 9 TB HDD | Benq XL2411T | Steelseries Rival | Q-Pad MK-85
Laptop : MSI GT780

Trädvy Permalänk
Medlem
Registrerad
Aug 2013

Nu fungerar vi alla olika, men jag tyckte iaf att jag lärde mig snabbare när jag fick något visuellt att titta på som resultat. Exempel kan vara att du laddar ner en spelmotor och moddar den. Men det kanske krävs ett visst spelintresse för att hålla motivationen uppe.

Alla dessa konsollprogram tyckte i varje fall jag gjorde att min motivation stendog. Och att göra GUI i C++ är inte heller särskilt effektivt som nybörjare om man jämför med t.ex. C#.

"Your mileagy may vary".

Trädvy Permalänk
Medlem
Plats
Farsta
Registrerad
Dec 2003

@Zyrale:
Smaken är som baken, det finns säkert många bättre och många sämre.
Jag föredrar själv att följa engelska guider då försvenskning av vissa termer blir lite konstigt.
tex array = matris osv..

Kör en youtubesökning och sortera på flest views, brukar fungera ganska bra.

Trädvy Permalänk
Medlem
Plats
Uppsala
Registrerad
Aug 2010

@Ingetledigtnamn:
Även jag är intresserad av att lära mig programmering. Är Python lika efterfrågat kunskapsmässigt som C++/Java eller är det bara något att lära sig för att i sin tur lära sig annat?

Trädvy Permalänk
Medlem
Plats
Uppsala
Registrerad
Dec 2008

@Skurvi: Jag skulle inte tro att det är samma sug efter folk som som kan Python som efter folk som kan C/C++. Att jag brukar rekommendera Python som förstaspråk beror på att det har inbyggt stöd för vanliga datatyper som strängar, listor och tupler. Det gör att du kan fokusera på problemet du skall lösa istället för att göra nybörjarmisstagen med minneshanteringen i C/C++.

Det funkar att börja med C också, men du kommer spendera mer tid med att "för hand" göra saker i C som du sluppit göra i ett modernare språk med inbyggt stöd för de sakerna.

Trädvy Permalänk
Medlem
Plats
Uppsala
Registrerad
Aug 2010

@Ingetledigtnamn:
Om man istället jämför med Java, är det ett ok mellanalternativ till att både vara lite lättare att lära sig och få mer användning av själva språket?

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011
Skrivet av Ingetledigtnamn:

@Skurvi: Jag skulle inte tro att det är samma sug efter folk som som kan Python som efter folk som kan C/C++. Att jag brukar rekommendera Python som förstaspråk beror på att det har inbyggt stöd för vanliga datatyper som strängar, listor och tupler. Det gör att du kan fokusera på problemet du skall lösa istället för att göra nybörjarmisstagen med minneshanteringen i C/C++.

Det funkar att börja med C också, men du kommer spendera mer tid med att "för hand" göra saker i C som du sluppit göra i ett modernare språk med inbyggt stöd för de sakerna.

C++ har också inbyggt stöd för strängar, listor och tupler. När man pratar om C++ är det väldigt viktigt att man har klart för sig vilken versioner man pratar om, programmerar man C++11 och än mer C++14 på "rätt" sätt så påminner det allt mer om skriptspråk än om "traditionell" C++ (det vi hade på 90-talet).

En stor fördel för nybörjare är att "modern" C++ är designad så att många vanliga fel fångas redan av kompilatorn medan motsvarande fel i bästa fall upptäcks vid körning i ett skriptspråk.

Programmerar man C++11 och senare på det rekommenderade sättet blir effekten i alla normala fall att minneshanteringen är automatisk. De fall där man måste frångå detta är typiskt de fall där en rimligt lösning skriptspråk överhuvudtaget inte är möjligt.

Nackdelen med C++ är främst att det är ett väldigt stort språk, men rent krasst så är C# på samma komplexitetsnivå här (sett till antal finesser som är del av språket) och även senare versioner av Java har fått rätt mycket nytt i själva språket. Ska man verkligen lära sig alla språkfinesser i Python så inser man rätt snabbat att det också är rätt rejält stort...

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Trädvy Permalänk
Medlem
Plats
Uppsala
Registrerad
Dec 2008

@Skurvi: Ja, det är i alla fall ett bättre alternativ än C. Vilket språk du väljer spelar i det långa loppet mindre roll. När du väl lärt att programmera (själva tänkandet; hur man bryter ner problem i mindre delar och löser del var för sig) är det lätt att lära sig ett nytt språk. Det är lite annan syntax och kanske lite nya finesser.

Trädvy Permalänk
Medlem
Plats
Uppsala
Registrerad
Dec 2008

@Yoshman: Jag vet vad du tycker och du vet vad jag tycker. Ja, C++11/14 har blivit bättre och man kan komma undan en hel del av den manuella minneshanteringen, men syntaxen är inte särskilt smidig. Ja, Python har också en hel del i biblioteken, men jag förordar inte att man skall lära sig allt som Python kan. Jag tycker bara att det är lättare att börja med Python då strängar, listor och tuple hanteras på ett elegantare sätt än i C++. Sen kan det vara en fördel att kunna provevaluera sina uttryck i interpretatorn.

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011

@Ingetledigtnamn: visst finns olika fördelar med olika saker. Ska man använda skriptspråk och har som mål att lära sig objekt orienterad programmering så skulle jag kanske inte välja Python, i min mening är Ruby ett långt bättre val för just OOP.

Python är dock väldigt bra till mycket annat och det går definitivt att lära sig programmera i språket.

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Trädvy Permalänk
Medlem
Plats
Hedekas
Registrerad
Jan 2009

@Zyrale: Har du kollat mr1buyings kanal? Om inte, gör det: https://www.youtube.com/watch?v=ahFONPNt3vY&list=PL3A2026F702...

|CPU: Intel Core i7 2600k | GPU: ASUS GeForce GTX680 |Moderkort: Asus Maximus IV Extreme-B3 | Chassi: Fractal Design XL | PSU: Corsair AX850 | Minne: Corsair Dominator GT 2133MHz | Hårddisk: 1tb Western Digital Caviar Black, 1tb Western Digital Caviar Blue |

Trädvy Permalänk
Medlem
Plats
Borås
Registrerad
Okt 2002
Skrivet av Zyrale:

Så vilka program finns det som är gratis och man kan programmera med? Hade en trial på visual studio men den är slut nu så kan inte programmera med något atm? :/ snälla ge alla förslag/ de bästa

Kör man Linux finns ofta stödet för programmering "out of the box". Men jag tror att om du installerar code::Blocks så får du med allt som behövs även i Windows.

http://www.codeblocks.org/

Började lite med C++ men efter ett tag blev allting jätterörigt. Ska försöka igen och se om det går bättre. Men körde då med code:Blocks på Linux och det funkade bra. Använder GCC som kompilator som är fri programvara. Har även testat litegrann med Qt Creator för att skapa grafiska program med Qt men det var typ bara någon demo. Men Qt Creator som IDE verkade ganska OK ändå.

Trädvy Permalänk
Medlem
Plats
Västerås
Registrerad
Jul 2009
Skrivet av C20N31:

Ett tips är att ladda ner alla videofiler till datorn då han pratat om att ta bort hela kanlen. Jag har själv gjort det då jag har som plan att börja med C++. Finns även guider för java och Python även om de kanske inte är av senaste.

Lycka till

Chassi: Fractal Design Define R3 Black, Mobo: ASUS Z170 Pro Gaming, CPU: Intel i7 6700K, kylning CM Hyper 212 EVO, RAM: 32 GB Hyper X 3000 mhz, GPU: Nvidia MSI 1080 Gaming X, PSU: XFX Core Edition Pro 750W, Mus: Logitech G700, Tgb: Corsair Raptor K30, OS: Win10

Trädvy Permalänk
Medlem
Plats
Götet, typ
Registrerad
Okt 2004
Skrivet av Skurvi:

@Ingetledigtnamn:
Även jag är intresserad av att lära mig programmering. Är Python lika efterfrågat kunskapsmässigt som C++/Java eller är det bara något att lära sig för att i sin tur lära sig annat?

Som vanligt när det gäller inlärning så är det praktiskt att börja med något lätt för att sedan övergå till svårare övningar. Så börja med Python så du kommer in i programmering. Så kan du se om du vill gå vidare med java/c# och eller c++, c, assembler etc sedan...

Annars kan du börja med go(lang) efter python. Specen för golang är 50 sidor medans specen för java och c++ tror jag är någonstans omkring 1000 sidor. Det är ju inget som avgör ens val, men något att tänka lite på

/M

Trädvy Permalänk
Medlem
Registrerad
Maj 2014

Det finns en 11 timmars python video på youtube av Microsoft som heter "zero to hero with python" eller något liknande. Den är väldigt slö och nybörjare vänlig. Det är alltid nåt du kan börja med.

Jag är inte programmera eller utvecklare själv, men grunderna är väldigt lika så du kan gå från ett språk till ett annat utan allt större problem. Därför är kanske python lite lättare att börja med och att man sedan går vidare till något annat.

Trädvy Permalänk
Medlem
Plats
åkersberga, Täby
Registrerad
Jun 2004

Jag började med c++.

Det var ifors i gymnasiet för 6 år sedan, där jag läste programmering A,B & C.

Hade en grym lärare & lärde mig ganska snabbt. Har därefter gjort olika projekt på egen hand med diverse grafikbibliotek o.s.v...

Jag tycker du kan börja med c++.

Att övergå sedan till java, eller andra språk är ganska simpelt.

Dock blir man aldrig fullärd inom programmering Vilket är kul!

Dator 1.
FX 8350 4.7Ghz | 24GB ram | MSI Radeon RX 480 | Kingston SSD | Fractal design R2.0 | PSU : Fractal 650W
Dator 2 (Bärbar). HP Folio 9470m

Trädvy Permalänk
Medlem
Plats
Sthlm
Registrerad
Mar 2011
Skrivet av Zyrale:

Hmm, har lekt lite med C++ förut och nu när jag ska börja civilingenjör i datateknik om nån vecka så tänkte jag komma igång lite med programmering igen så att jag är redo, men aa jag har ingen aning om vilket språk skolan kommer använde/ vad jag vill lära mig mer av

Datateknik i Lund lär ut Java (iaf för 4 år sedan). Python har jag för mig är stort på KTH. Men det är bara att surfa in på skolans hemsida och läsa, det står garanterat vilket språk de använder sig av.

|Define XL | AX850W | P8P67 EVO | 2600K | NH-C14 | GTX 980 | Vengeance 2x4GB | 520 240 GB + VelociRaptor 160gb+ F1 1TB + Green 2TB + 2xWD Black 4TB | ROG SWIFT PG279Q | Essence STX | DT880 PRO @ 250 ohm + Modmic V4| MK-85 Pro (Brown)|5K Laser|

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Mar 2011
Skrivet av Ingetledigtnamn:

@Yoshman: Jag vet vad du tycker och du vet vad jag tycker. Ja, C++11/14 har blivit bättre och man kan komma undan en hel del av den manuella minneshanteringen, men syntaxen är inte särskilt smidig. Ja, Python har också en hel del i biblioteken, men jag förordar inte att man skall lära sig allt som Python kan. Jag tycker bara att det är lättare att börja med Python då strängar, listor och tuple hanteras på ett elegantare sätt än i C++. Sen kan det vara en fördel att kunna provevaluera sina uttryck i interpretatorn.

Jo, jag skulle säga att den största fördelen med att börja med python är att man har en interpreter. Det blir smidigare att testa och att debugga till viss mån. Gör man fel ofta, vilket man gör som nybörjare, är det drygt att behöva kompilera hela tiden. Blir även väldigt smidigt i python att visualisera sina resultat med något plottingbibliotek om man skulle behöva det.

Jag utvecklar i C++ och CUDA, men gör nästan alltid prototyplösningar och proof-of-concept i python som första steg. Inte applicerbart för alla problem såklart, men är ofta väldigt produktivt.

Varför inte lära sig både python och C++ parallellt? Om man bara tittar på ett språk finns det kanske risk att man ser många saker hos det språket som "sanning", när det egentligen bara är ett sätt att göra något. Nackdelen är väl att det kan bli lite mycket på en gång och förvirrande.

Trädvy Permalänk
Datavetare
Plats
Stockholm
Registrerad
Jun 2011

@Mikael07: Om man tycker problemet är kompileringstid så är Go (språket), som t.ex. @Marowak förslog, ett utmärkt val.

I Go har man fördelarna av statisk (och extremt stark) typning, ändå går det att behandla väldigt likt ett skriptspråk när man jobbar med det då kompileringstiderna är så korta att man lagt till stöd likt detta

go run hello.go

där känslan är att det körs direkt men rent tekniskt kompileras allt.

Go har också designats från start att vara väldigt lätt att test, i nuvarande version är stöd för unit-test och benchmarking standardfunktioner. Finns även bibliotek, gofuzz, som "automatisk" skapar tester lämpligt för kod där man på något sätt hanterar input från okänd part (typiskt nätverk).

Go har också saker som race-detectors och andra hjälpmedel som standardfunktioner, dessa verktyg hjälper till att eliminera buggar som typiskt är väldigt svåra att hitta i kod som kör på flera trådar/cpu-kärnor samtidigt.

Go är lite nischat mot back-end och system med potentiellt extrema I/O-krav. Vill man jobba med sådant så är det typiskt rejält mycket enklare att designa effektiva och korrekta system i Go än det är i "traditionella" språk som C++, C# och Java.

Allt det skrivet: tycker ändå folk ofta har kvar fördomar om C++ som inte längre är sant. Jobbar man i C++11/14 på "rätt" sätt så kan jag inte se hur det skulle vara mer komplicerat än Python. Och är man intresserad i OOP (är själv av åsikten att OOP är brutalt överanvänt, men det är fortfarande väldigt efterfrågat) så bör man vara medveten om att Python lämnar en hel del att önska inom detta område, Ruby är i det läget ett långt bättre val. C++ är också ett bättre val.

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Mar 2011
Skrivet av Yoshman:

@Mikael07: Om man tycker problemet är kompileringstid så är Go (språket), som t.ex. @Marowak förslog, ett utmärkt val.

I Go har man fördelarna av statisk (och extremt stark) typning, ändå går det att behandla väldigt likt ett skriptspråk när man jobbar med det då kompileringstiderna är så korta att man lagt till stöd likt detta

go run hello.go

där känslan är att det körs direkt men rent tekniskt kompileras allt.

Go har också designats från start att vara väldigt lätt att test, i nuvarande version är stöd för unit-test och benchmarking standardfunktioner. Finns även bibliotek, gofuzz, som "automatisk" skapar tester lämpligt för kod där man på något sätt hanterar input från okänd part (typiskt nätverk).

Go har också saker som race-detectors och andra hjälpmedel som standardfunktioner, dessa verktyg hjälper till att eliminera buggar som typiskt är väldigt svåra att hitta i kod som kör på flera trådar/cpu-kärnor samtidigt.

Go är lite nischat mot back-end och system med potentiellt extrema I/O-krav. Vill man jobba med sådant så är det typiskt rejält mycket enklare att designa effektiva och korrekta system i Go än det är i "traditionella" språk som C++, C# och Java.

Allt det skrivet: tycker ändå folk ofta har kvar fördomar om C++ som inte längre är sant. Jobbar man i C++11/14 på "rätt" sätt så kan jag inte se hur det skulle vara mer komplicerat än Python. Och är man intresserad i OOP (är själv av åsikten att OOP är brutalt överanvänt, men det är fortfarande väldigt efterfrågat) så bör man vara medveten om att Python lämnar en hel del att önska inom detta område, Ruby är i det läget ett långt bättre val. C++ är också ett bättre val.

Har länge varit lite nyfiken på att kolla in Go, mest för skojs skull. Men det har inte blivit av för att jag inte håller på med såna typer av problem där Go skiner, så jag har hittills valt att lägga min tid på något jag har mer direkt användning av. Någon dag..!

Jag håller definitivt med dig om python kontra C++11, och de fördomar det dras med. Tror fortfarande att det är många som rent utav tänker på C när de pratar om C++.

Men om man, som total nybörjare, vill lära sig grunderna inom programmering som koncept så tror jag att det kan vara enklare att sitta med en interpreter med python och bara trycka F5 när man vill se resultatet, och enkelt kunna se vad alla variabler har för värde etc. När jag säger grunder menar jag verkligen grunderna som att hantera variabler och arrayer, for-loopar, if-satser osv. Bara för att se vad det handlar om, att doppa tårna. (Givetvis finns det fler tolkade språk som skulle passa för detta användningsområde.) Om man sen kommer på att man gillar det så kan man då ta reda på vilket språk som är bäst för att lösa den typen av problem man är intresserad av.

Men vet man med sig att C++ är välanvänt för det man är intresserad av, då är det bara att hoppa på tycker jag! Men, till TS, se för guds skull till att börja med en modern bok/inlärningskälla som använder C++11.

Trädvy Permalänk
Medlem
Plats
KTH, Datateknik
Registrerad
Jun 2011
Skrivet av Zyrale:

Hmm, har lekt lite med C++ förut och nu när jag ska börja civilingenjör i datateknik om nån vecka så tänkte jag komma igång lite med programmering igen så att jag är redo, men aa jag har ingen aning om vilket språk skolan kommer använde/ vad jag vill lära mig mer av

Om det är Datateknik på KTH så är det Java som gäller under första året Så skulle tipsa dig att satsa på ett språk nu i början. När du känner att du behärskar det språket väl är det ofta ett väldigt kort steg till andra språk inom samma paradigm. C++ kan du läsa som valbar kurs i 3:an på KTH, om du hellre känner att du läser det som en kurs än pular med det vid sidan av studierna. Stort lycka till med dina studier (och har du några frågor angående just Datateknik på KTH svarar jag mer än gärna på dem i PM)!

Citera för svar!

Stationär: Fractal Design Arc | Asus P8P67 Pro B3 | Intel i5 2500k @ 3.3 Ghz | Corsair Vengeance 8GB CL9 @ 1600 Mhz | Asus GTX580 Direct CU II | Antec Kühler H20 620 | 5 TB HDD | 128 GB SSD (Crucial M4) | Corsair HX 850W | W7
Bärbar: Sony Vaio Pro 13.3" | i7-4500U | 8GB RAM | 256GB SSD | W8