Gå til innhold

Anbefalte innlegg

Hei!

 

Jeg er en 15 år gammel gutt og kunne gjerne tenke meg å lære programmeringsspråket C. Jeg har ikke noe erfaring med det fra før av og jeg starter dermed helt fra scratch. Jeg har ikke peiling på det her (foreløpig) og spør derfor her inne hvordan jeg best mulig skal komme i gang. Jeg hadde satt stor pris på om noen kunne kommet med noen gode tips! :)

 

Edit: Og forresten, burde jeg lære C++ først? Hva er egentlig forskjellen? :hmm:

Endret av Havardu
Lenke til kommentar
Videoannonse
Annonse
Gjest Gjest slettet-ld9eg7s96q

Jeg var på alderen din da jeg lærte meg C++ men det er en del abstrakte konsepter som kan være vanskelige å mestre i forhold til andre programmeringspråk. C og C++ er i praksis akkurat det samme, forskjellen er at du har objekter og en del andre fine funksjoner (vektorer for eksempel) i C++ som du ikke har i C. Språket er helt likt så du kan kompilere C kode og C++ kode om hverandre i de fleste kompilatorer.

 

Hvis du vil gjøre det lettere for deg selv lærer du et litt enklere språk først, for eksempel Python og beveger deg videre til C/C++ senere, da blir det enklere for du har allerede mestret konseptene med programmering. Det er i alle fall hva de fleste vil si til deg. Personlig ser jeg ikke den store forskjellen i abstraksjon mellom f.eks C++ og Javascript, men det er vel antageligvis fordi C++ var mitt første programmeringspråk (jeg hadde lekt meg litt med Pascal og Basic før det) jeg lærte meg ordentlig.

Endret av Gjest slettet-ld9eg7s96q
Lenke til kommentar

Jeg vil vel på det sterkest anbefale å starte med C++ i stedet for C. At C og C++ i praksis er det samme, er iallfall i mitt hodet ikke helt sant. Det er store og markante forskjeller, spesielt hvis man tillater seg å bruke litt nyere C++-standard (hørte jeg C++11? :D). I C må du i stor grad håndtere minnet selv og får rask kjennskap til pekere (som du hele tiden må passe på å deallokere). I C++ kan man i stadig større grad lure seg unna pekere ved hjelp av containere, std::string og smartpekere. Dette gjør at man slipper unna endel av det som virkelig forpester C/C++-kode: minnelekasjer.

 

Jeg er vel også av den sorten som ikke helt ser grunnen til å starte med et annet språk. Skal du til syvende og sist skrive C++-kode, så start med det. Konseptene er det samme, og syntaksen er fort den samme, men det føles mer lavnivå enn andre ting og er det også. Skal du lage fancy, kule ting så er C++ ikke den raskeste veien dit, men skal du lære deg å programmere og ser for deg å faktisk ha et spesifikt behov for C/C++, så for all del ikke bli lurt av at det er «enklere» å starte med et annet språk først. Min erfaring er folk som har startet i andre språk sjeldent imponerer meg med C++-kunnskapen. Kort sagt, jeg har sett nok bedriten kode fra utviklere som visstnok skal være proffe og gode, men som i realiteten aldri har lært seg C++ ordentlig og i stedet pøser ut kode som inneholder horrible hack for å omgå mangelen på kunnskap om språket. Bare for å ta et eksempel (for de som kan C++), så er det ikke så lenge siden jeg har sett en dreven C#-utvikler presse ut myIterator._myPtr->_myVal i C++. Avhengig av innstillingene i kompilatoren det gjaldt, så kompilerer det faktisk, men hjelpes meg for en kode :eek: (*myIterator) (ev. myIterator-> for å aksessere ting i objektet) hadde jo holdt lenge…

 

Jeg har dessverre ingen tips i forhold til hva og hvor man lærer seg å programmere. Jeg lærte meg C++ på høgskolen, og det var første gang jeg faktisk lærte meg å programmere ordentlig. Utover det så sper jeg bare på med kurs (via jobben) og online dokumentasjon. Så lenge du kan det grunnleggende og konsepter er det mye man kan lese seg til via dokumentasjon etterpå.

  • Liker 1
Lenke til kommentar
Gjest Gjest slettet-ld9eg7s96q

Ja, missforstå meg rett, når jeg mente det samme mente jeg i betydningen gramatikkmessig. Det er jo det samme språket men med en god del mer tillegg med funksjonalitet i C++

 

Grunnen til at folk messer om at man vil være bedre av med å begynne med et enklere språk er vel motivasjonsfaktoren. Det er lettere å produsere kode som utfører noe man kan nyttegjøre seg av og derfor føler at man oppnår noe raskere med f.eks et interpretbar språk som PHP, Python osv. Jeg skrev en webapplikasjon forleden (som i CGI) i pur C++ og selv om jeg syntes det var like enkelt som å snekre sammen noe i PHP, går man igjennom koden kan det kanskje virke en god del mer obskurt enn PHP hvis man ikke er inneforstått med nyansene i C++. Og for å være ærlig er det vel en god del mer nyanser å plukke av i et språk som C++ enn PHP

 

edit:

 

Jeg ville vel revurdert å starte med C++ fremfor C syntaks. Kapsulering i C for eksempel er i prinsippet enklere både metodemessig og i syntaks og når man har grepet på det kan man gi seg i kast med C++ kapsulering, polymorfisme osv. På grunnleggende nivå er jo C og C++ det samme før man når dette nivået (variabler, kontrollsetninger, operatører, m.m).

Endret av Gjest slettet-ld9eg7s96q
Lenke til kommentar

Ja, missforstå meg rett, når jeg mente det samme mente jeg i betydningen gramatikkmessig. Det er jo det samme språket men med en god del mer tillegg med funksjonalitet i C++

 

Grunnen til at folk messer om at man vil være bedre av med å begynne med et enklere språk er vel motivasjonsfaktoren. Det er lettere å produsere kode som utfører noe man kan nyttegjøre seg av og derfor føler at man oppnår noe raskere med f.eks et interpretbar språk som PHP, Python osv. Jeg skrev en webapplikasjon forleden (som i CGI) i pur C++ og selv om jeg syntes det var like enkelt som å snekre sammen noe i PHP, går man igjennom koden kan det kanskje virke en god del mer obskurt enn PHP hvis man ikke er inneforstått med nyansene i C++. Og for å være ærlig er det vel en god del mer nyanser å plukke av i et språk som C++ enn PHP

 

edit:

 

Jeg ville vel revurdert å starte med C++ fremfor C syntaks. Kapsulering i C for eksempel er i prinsippet enklere både metodemessig og i syntaks og når man har grepet på det kan man gi seg i kast med C++ kapsulering, polymorfisme osv. På grunnleggende nivå er jo C og C++ det samme før man når dette nivået (variabler, kontrollsetninger, operatører, m.m).

Ehhh... Hvordan i alle dager skal jeg lage dette tegnet her: { på et vanlig norskt Windows tastatur?
Lenke til kommentar
  • 3 uker senere...

C++ er et veldig komplekst språk som tar lang erfaring å lære. Jeg anbefaler deg på det sterkeste å lære C først, ettersom det har vesentlig færre konsepter. Når du forstår C, anbefaler jeg deg faktisk å prøve Java før du beveger deg over på C++.

 

Jeg anbefaler at du leser C Programming Language (2nd Edition) av Kernigan og Ritchie. Selv om den er gammel, er den fortsatt veldig kurrant, lettlest, og kort.

 

Lykke til!

Endret av LostOblivion
Lenke til kommentar

Jeg ser ikke helt poenget med å lære C, så Java og C++. Det er da ikke noe vanskeligere å lære seg grunnleggende programmeringskonsept i C++ enn i C? Ser man bort fra objektorientering og hvordan I/O fungerer så er jo mye likt i de to. Og hva er poenget med å gå veien innom Java?

  • Liker 2
Lenke til kommentar
Gjest Gjest slettet-ld9eg7s96q

C++ er et veldig komplekst språk som tar lang erfaring å lære. Jeg anbefaler deg på det sterkeste å lære C først, ettersom det har vesentlig færre konsepter. Når du forstår C, anbefaler jeg deg faktisk å prøve Java før du beveger deg over på C++.

 

Jeg anbefaler at du leser C Programming Language (2nd Edition) av Kernigan og Ritchie. Selv om den er gammel, er den fortsatt veldig kurrant, lettlest, og kort.

 

Lykke til!

 

Forslaget ditt gir ingen mening i det hele tatt. Hvorfor i all verden skal vedkommende tvinge seg gjennom C, så Java (av alle ting wtf) og deretter hoppe tilbake til C++ ??? Jeg er veldig spent på forklaringen din hvis du har en eller annen sindig metodikk bak den tilsynelatende galskapen som ingen av oss andre forstår, det hadde vært interessant å vite. For dette er nå litt snodig for å si det mildt.

Endret av Gjest slettet-ld9eg7s96q
Lenke til kommentar
Gjest Gjest slettet-ld9eg7s96q

Java er lett å lære seg og gir en god forståelse av objektorientering. Det er en grunn til at de fleste universiteter bruker dette som foretrukket språk. Egentlig ville jeg anbefalt Java først, så C, og C++ til slutt.

 

Det gir fortsatt ikke noe godt svar på hvorfor du anbefalte trådstarter først å gå veien C - Java - C++

 

Å anbefale Java først er noe helt annet og at du retter deg til å si at du "Egentlig ville anbefalt Java først" understreker vel heller at du ikke har noe god forklaring eller svar på spørsmålet mitt. Det er ingen som diskuterer hvorvidt Java er et godt språk å begynne med eller ikke for de som vil lære seg objektorientering.

Lenke til kommentar

Sammenlignet med python, lisp, C, antagelig smalltalk, tildels perl og deler av C++.

 

Grunnen til at jeg har tatt med C++ her todelt:

 

#1: Det gjør ikke like horrible ting designmessig som Java (heap, I'm looking at you)

#2: Det er ikke one-size-fits-all-OO som i Java.

 

Edit: python er egentlig et litt dårlig eksempel, for det er notorisk dårlig på å gjemme state.

 

Lykke til, OP!

Endret av Lycantrophe
  • Liker 2
Lenke til kommentar

Det gir fortsatt ikke noe godt svar på hvorfor du anbefalte trådstarter først å gå veien C - Java - C++

Fordi han ønsket å lære seg C og C++. C er et flott språk å lære seg først fordi det er såpass enkelt og er tradisjonelt et førstespråk, men samtidig mangler det i stor grad den objektorienterte programmeringsmodellen som er blitt svært viktig, for akademia, men særlig for arbeidslivet. Søker du jobb som utvikler og sier i intervjuet at du ikke vet hva objektorientering er, er du på tynn is.

 

C++ er et svært komplisert språk som har en bratt læringskurve. Derfor anbefalte jeg heller at han startet med f.eks. Java for å lære seg basis objektorientering, og så senere kan begynne med C++. De tre er alle såkalte C-like-språk uansett, så selve syntaksen er nesten identisk.

 

Håper trådstarter har kommet godt i gang.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...