Permalänk
Medlem

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!

Permalänk

@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...

Permalänk
Medlem

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.

Permalänk

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.

Permalänk
Medlem

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

Permalänk
Medlem

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

Permalänk
Medlem

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

Visa signatur

Rog Strix B550-i | Ryzen 7 5800X @ 4.3Ghz | Corsair Vengeance LP 2x8gb 3000Mhz | Asus RTX 3060ti |
Pirat Prusa MK2 | Prusa Mini

Permalänk
Medlem

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

Permalänk
Medlem

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

Permalänk
Medlem

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.

Visa signatur

Fractal Design R6 | ASUS ROG STRIX z390-F | Intel i7 9700K | 32GB 3000Mhz Corsair CL15 | GeForce RTX 2080 TI OC | Asus PG278QR | Logitech G Pro X Superlight | Q-Pad MK-85

Permalänk
Medlem

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".

Permalänk

@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.

Permalänk
Medlem

@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?

Permalänk

@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.

Permalänk
Medlem

@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?

Permalänk
Datavetare
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...

Visa signatur

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

Permalänk

@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.

Permalänk

@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.

Permalänk
Datavetare

@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.

Visa signatur

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

Permalänk
Medlem

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

Visa signatur

|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 |

Permalänk
Medlem
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å.

Permalänk
Avstängd
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

Visa signatur

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

Permalänk
Medlem
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å

Visa signatur

/M

Permalänk
Medlem

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.

Permalänk
Medlem

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!

Visa signatur

[IT-Dept]
Ryzen 1700 OC - 32 - 1070

Permalänk
Medlem
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.

Visa signatur

| Corsair Crystal 460X | Z390-F | 9700K | ROG Ryujn 360mm | RTX 3080Ti | ROG Thor 850W | Vengeance Pro 3200mhz 16cl 16GB (2x8) | 970 Pro 2TB + 2xWD Black 4TB | ROG SWIFT PG279Q | Arctis 7 Pro Wireless | ROG Scope Deluxe red silent | ROG Chakram |

Permalänk
Medlem
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.

Permalänk
Datavetare

@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.

Visa signatur

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

Permalänk
Medlem
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.

Permalänk
Medlem
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)!

Visa signatur

Citera för svar!

Stationär: Fractal Design Define R6 | Asus Z370-P | Intel i7 8700k @ 3.7 Ghz | Corsair Vengeance LPX 32GB CL15 @ 3000 Mhz | Asus STRIX GTX960 4GB | Fractal Design Celsius S24 | 5 TB HDD | 250GB SSD (Samsung 850 EVO), 128GB SSD (Crucial M4) | Corsair HX 850W | W10
Bärbar: Sony Vaio Pro 13.3" | i7-4500U | 8GB RAM | 256GB SSD | Ubuntu