10hp programmering i C++ vs. Python

Permalänk
Inaktiv

10hp programmering i C++ vs. Python

Hej!

Jag har blivit antagen till 10hp grundläggande programmering, distans. Jag håller primärt på med nätverksteknik och IT-säkerhet, och har kommit fram till att jag vill lära mig Python. Kursen jag ska läsa är i C++.

Min fråga är nu då till er som programmerar och kanske till och med använt både python och C++. Har jag nytta av kunskaperna jag får från att lära mig C++ när jag sedan kör igång med python? Eller kastar jag bort min tid? Jag vill också se om programmering öht är min grej, men det är en annan fråga.

Om man läser kursplanen så känns det ändå som att många moment är relevanta oavsett språk. Eller?

Såhär står det i kursplanen:
"Efter godkänd kurs ska studenten kunna:

använda programmeringsspråket C++ genom att
- förklara vad ett givet program utför
- skriva program med grundläggande språkkonstruktioner inklusive klasser och objekt;
förklara grundläggande begrepp som algoritmformulering, källkod, editor, kompilator, kompilering, maskinkod, exekvering, kompileringsfel och logiska fel;
använda en programutvecklingsmiljö;
testa och felsöka program;
redogöra för principerna för objektorienterad programmering;"

Länk till kursen: http://www.uu.se/utbildning/utbildningar/selma/kurser/?kKod=1...

Permalänk
99:e percentilen

Python och C++ skiljer sig åt på en rad punkter men har också flera likheter. Svaret på din fråga är troligtvis ja: Om du aldrig har programmerat förut kommer det sannolikt vara lättare för dig att lära dig Python med 10 hp grundläggande programmering i C++ bakom dig än utan någon erfarenhet alls.

Varför jag skriver "troligtvis" och "sannolikt" är för att det inte nödvändigtvis alltid är fullt så enkelt. I allmänhet kan erfarenheter från ett visst språk faktiskt i viss utsträckning utgöra en bromskloss för att lära sig ett annat språk. Så var det för mig när jag läste funktionell programmering som första kurs på högskolan. Jag hade då tidigare skrivit mycket JavaScript, men bara med (oftast överdrivet) imperativ stil, så jag hade initialt svårt att förstå hur man skulle kunna åstadkomma något i Haskell. Hjulspåren jag satt fast i var tämligen djupa.

Nu är både Python och C++ imperativa och likheterna dem emellan är ändå såpass stora att jag tror att fördelarna med att kunna grundläggande programmering överväger nackdelarna med att vara van vid C++ när du sedan ska lära dig Python. Det är dessutom mycket bra att kunna flera olika språk – gärna så olika som möjligt!

Visa signatur

Skrivet med hjälp av Better SweClockers

Permalänk
Medlem

Som vanligt ett utmärkt inlägg av Alling.

Dessutom är ju C det vanligaste språket för exploitkod och nätverksstackar, så där får du en del gratis om du lär dig C++.

Permalänk
Inaktiv

Tack både @KAD och @Alling för svaren!

Edit: HAHA vad fan är detta https://www.youtube.com/watch?v=7byaZjvk5To

Permalänk
Medlem

*Obs, min åsikt här*

Precis som Alling har skrivit så är det med största sannolikhet bättre att ha en programmeringsgrund när man ska lära vilket språk som helst, än att inte ha nån grund alls. Men min egna åsikt är att om det handlar om att generellt lära sig hur man blir en bra programmerare snarare än att bara lära sig hur man programmerar, så är C++ bland de bästa platserna att börja på. Språket ger dig ganska lite gratis (jämförelse med andra populära språk) och du måste lära dig mer underliggande hur det funkar för att faktiskt få dina egna program att funka bra. Det ger en bättre förståelse och gör dig till en bättre programmerare oavsett vilket språk du skriver i senare.

Något jag exempelvis hade avrått från är att börja med att lära sig Javascript om man nu inte är bombsäker på att det är bara Javascript man vill använda. Där kan du mer eller mindre göra precis vad du vill och Javascriptet kommer köras ändå, inte bra för att lära sig programmera om du frågar mig.

Permalänk
Medlem

Men värt att tillägga, när du väl kan programmera bra i något språk så är det ingen stor grej att byta till ett annat språk.

Men det är lättare att byta mellan vissa språk än andra, och inte alltid lika lätt åt båda håll. Är helt övertygad om att en C++ utvecklare hade haft mycket lättare att byta till Python än vice versa till exempel.

Permalänk
Inaktiv

@Jackbob stort tack för din input!

Permalänk
Inaktiv

Jag tyckte att programmera i C++ som ny var frustrerande. Så bli inte avskräckt från att programmera om kursen inte är kul rakt igenom. Det är väldigt bra att göra en sån kurs innan Python, då får du flera perspektiv på programmering.

Skickades från m.sweclockers.com

Permalänk
Medlem
Skrivet av anon99339:

Jag tyckte att programmera i C++ som ny var frustrerande. Så bli inte avskräckt från att programmera om kursen inte är kul rakt igenom. Det är väldigt bra att göra en sån kurs innan Python, då får du flera perspektiv på programmering.

Jo, ett problem nybörjare ofta har med C++ är att C++ har pekare och referenser, vilket kan vara lite svårt att greppa i början (här är en gammal klassiker om pekare i C, det fungerar på samma sätt i C++ förutom att man oftast använder new istället för malloc och C saknar referenser).

Fördelen med att börja med C++ är att de flesta andra språk också i praktiken har pekare och referenser, men de är oftast implicita istället för explicita som i C++ (funktionsargument i Python skickas t.ex. i praktiken som pekare). Förstår man sig på minneshanteringen i C++ så får man alltså en djupare förståelse för hur andra språk fungerar.

Permalänk
Vila i frid

Innan du vet om programmering är din grej spelar det ingen roll om du först lär dig c++ eller python. Om programmering är din grej kommer du att komma i kontakt med båda dessa - och hopers andra språk.

Permalänk
Medlem

Skulle säga att C++ är mer värdefullt att lära sig än Phyton även om du ska skriva Phyton.
Det är liknande språk, kanske man kan säga att Phyton är nerdummat/simplifierat om man vill kalla det så.

Permalänk
Medlem

Ska du syssla med just nätverksteknik och IT-säkerhet så är C++ att föredra i min mening. Många saker inom de ämnena som är lite mer "lågnivå" och bättre att ha ett mer C-aktigt språk då.

Visa signatur

In the end what separates a man from a slave?
Money? Power? No... A man chooses, a slave obeys.
ASUS Z170M-PLUS || Intel Core i7 6700k @ 4,7GHz || 64GB 2133MHz Corsair RAM || MSI NVIDIA RTX 2070 Gaming Z 8GB || Bifenix Prodigy M || 2x CZ TR150 480GB RAID 0 || BeQuiet DarkRock Pro

Permalänk
Medlem

Det spelar ingen roll vad du läser i en kurs, det viktigare är att börja. Du kommer behöva tusentals timmars kodande ändå för att börja bli hyffsad på tänket bakom det, det så det är bara att sätta igång med något. I de flesta fall kommer du ha nytta av ett språk när du sedan vill/behöver lära dig ett annat.

Permalänk
Inaktiv

Python VS C++ är en fråga som man ska diskutera.
Utbildningsmässigt så skulle jag dock gissa att C++ utbildningen är riktad emot personer som mer vill programmera. Medans Pythonutbildningen kan mer vara riktade åt folk som väljer en kurs för att få mer högskolepoäng.

Observera att självklart kan utbildningarna hålla samma nivå, det finns programmerings-språkmässigt inget hinder för detta.

Permalänk
Medlem

Det kan nog vara bra att lära sig grundbegreppen och hur saker fungerar i ett språk som C++.
Jag kan rekommendera Udacity för ett par python-kurser på samma nivå med bra support att testa direkt i webbläsaren så kan du själv jämföra språken.

Python kanske är mer användbart som verktyg senare, medan C++ kanske kan ge dig mer förståelse för hur saker fungerar under ytan.

Permalänk
Hedersmedlem

*Trådar sammanfogade*

Trådar sammanfogade då vi inte tillåter korspostning (flera trådar om samma ämne). Detta då vi tycker det är viktigt att alla får samma chans att få sina trådar uppmärksammade.

Visa signatur

Danskjävel så krattar som en skrivare...

Permalänk
Medlem

Nu är jag förvisso dålig på att programmera men det som funkat bäst för mig är att nöta flera språk parallellt. 7 languages in 7 weeks av Bruce Tate är riktigt bra för ändamålet.

Fördelen som jag ser det är att man lär sig se bortom syntaxen, vilket är distraherande som nybörjare, och även ser både likheter och olikheter mellan språken.

För att svara på frågan så kastar du absolut inte bort din tid på C++, eller något språk för den delen.

Om jag varit i dina skor hade jag hoppat på kursen och sen gjort alla övningar även i Python.

Skickades från m.sweclockers.com