Gå til innhold

Hvilket programmeringsspråk bør jeg lære meg? (13 år gammel gutt)


Anbefalte innlegg

Hei, er en 13 år gammel gutt som har lyst å lære meg et programmerings språk. Har titta litt rundt på nettet og sett at Java, C# og C++ er mye brukte språk. Er det riktig? I så fall, hvilke av disse språkene er lettest å begynne med? Har sett at Perl og Python også er brukte språk. Kan forresten være greit at det språket har bøker på norsk, er ikke spesielt god i engelsk....

 

Håper på hjelp litt hjelp ;)

 

Tittelen på denne tråden er blitt endret. Vi anser det er viktig å ha gode titler i forumet her av flere årsaker. Blant annet fordi forumet blir mer ryddig og oversiktig samtidig som det er lettere å få de svarene man er ute etter og de rette personene til å lese tråden med en god tittel.

 

Vanligvis når et emne har en dårlig tittel gir vi en advarsel i tråden for deretter å stenge tråden dersom tittelen ikke endres, men siden jeg ser at du er rimelig ny her på forumet har jeg valgt å endre tittelen for deg denne gangen.

 

Velkommen til forumet

Endret av cyclo
Lenke til kommentar
Videoannonse
Annonse
Hei, er en 13 år gammel gutt som har lyst å lære meg et programmerings språk. Har titta litt rundt på nettet og sett at Java, C# og C++ er mye brukte språk. Er det riktig? I så fall, hvilke av disse språkene er lettest å begynne med? Har sett at Perl og Python også er brukte språk. Kan forresten være greit at det språket har bøker på norsk, er ikke spesielt god i engelsk....

 

Håper på hjelp litt hjelp ;)

 

Tittelen på denne tråden er blitt endret. Vi anser det er viktig å ha gode titler i forumet her av flere årsaker. Blant annet fordi forumet blir mer ryddig og oversiktig samtidig som det er lettere å få de svarene man er ute etter og de rette personene til å lese tråden med en god tittel.

 

Vanligvis når et emne har en dårlig tittel gir vi en advarsel i tråden for deretter å stenge tråden dersom tittelen ikke endres, men siden jeg ser at du er rimelig ny her på forumet har jeg valgt å endre tittelen for deg denne gangen.

 

Velkommen til forumet

 

 

Lærer du deg C++ så vil du nok merke deg at de andre språkene kommer mer eller mindre av seg selv. Synes du disse språkene blir for vanskelige så kan du selvfølgelig prøve deg på visual basic eller noe tilsvarende enkelt noe.

Lenke til kommentar

Et valg du bør ta er om du skal programmere applikasjoner eller webapplikasjoner. Er det applikasjoner ( programfiler som .exe under Windows ) er nok C# eller Python gode plasser å begynne. Dersom det er webapplikasjoner du vil lage står PHP som et veldig enkelt alternativ. Men dersom du velger PHP er det viktig å få med deg at veldig mange PHP-programmerere er dårlige programmerere, så vær kritisk til eksempler du finner på nettet.

Lenke til kommentar

C++ er absolutt et flott sted å starte. Kan nok være vanskelig i starten, men det kommer rimelig av seg selv etter hvert. Mange begynner / begynte jo med Basic og slike ting pga simplisiteten, men det hadde jeg ikke orket. Kan også anbefale Python. Da får du god kjennskap med hva det vil si å programmere og slipper teknikalitetene ved c++.. Er nesten som å skrive pseudokode.. I hvert fall et flott fag om du har lyst til å lære deg algoritmer.

 

Dog: var jeg deg ville jeg nok startet med C++ eller Java.

 

Antar du sitter i Windows: Visual C++ er fin.

Endret av kloffsk
Lenke til kommentar

C++ er ikke et bra sted å begynne når man er 13 år og vil lære seg programmering. Læringskurven er brattere enn nødvendig og du får ikke noe bedre utbytte av c++ enn f.eks. C# eller Java.

 

Selv ville jeg valgt C#. Flere grunner, bl.a.:

  • Du kan lage både Windows-, konsoll- og web-applikasjoner
  • C-lignende syntaks som deles av mange språk. Gir deg verdi når du skal lære andre språk (f.eks. C++ hvis du skulle få behov for det)
  • Ett solid og kraftig bibliotek med funksjonalitet du kan bruke
  • Gode ressurser på nettet (C# for Sharp Kids er en fin nybegynnerressurs. På engelsk dog, men ikke så veldig avansert)
  • Gratis utviklingsverktøy
  • Ingen begrensninger i hva du ønsker å lage
  • En bra IDE (programmet du skriver programmer i)
  • Lett å komme i gang med, raskt å få resultater

Utover det har jeg hørt mye bra om Python som nybegynnerspråk uten at jeg har prøvd det selv. Det samme med Ruby.

Lenke til kommentar

Å anbefale C++ til en 13-åring er bare slemt. Slemt, slemt, slemt. Jeg vil gjerne høre noen argumenter for C++ bortsett fra "kan du det så er alt annet lett" (et argument som ikke bare er urimelig dårlig men også så til de grader feil).

 

Hvorfor skal en 13-åring som har lyst til å få til ting fort måtte plages med minnehåndtering, deklarasjon vs definisjon, pekere vs referanser med alt det fører med seg? Jeg etterlyser gode argumenter.

 

På Windows er C# med Visual C# Express antagelig det beste valget. Man får resultater raskt, språket er ikke håpløst og man har et stort og fint standardbibliotek.

 

Som et alternativ er Python et godt språk, hvertfall til web og kommandolinje-programmer. Et litt annerledes språk hvor man virkelig kan lære seg forskjellige paradigmer, stort standardbibliotek og en rekke gode rammeverk for web-programmering.

Endret av steingrim
Lenke til kommentar
Å anbefale C++ til en 13-åring er bare slemt. Slemt, slemt, slemt.

:yes:

 

C++ kan være frustrerende å programmere i, selv når en kan det fra før.

 

Mye bedre å starte med noe enklere.

 

Eneste fordelen C++ har i dag synes jeg er at det finnes langt flere biblioteker skrevet for det en noen andre språk. Men for en 13-åring (og de fleste andre for den saks skyld) holder C# i massevis.

Lenke til kommentar
Å anbefale C++ til en 13-åring er bare slemt. Slemt, slemt, slemt. Jeg vil gjerne høre noen argumenter for C++ bortsett fra "kan du det så er alt annet lett" (et argument som ikke bare er urimelig dårlig men også så til de grader feil).

 

Jeg vet såpass mye om 13-åringers evner i dag. De lærer seg vanvittig fort det vi "gamle" sliter med etter å ha lært oss unoter i andre "enklere" programmeringsspråk.

I tillegg tror jeg at dersom man er motivert og ønsker å bli en god programmerer så begynner man der man er nødt til å ende opp. Det bør ikke være mye tvil om at en ved å bruke "enklere" programmeringsspråk lærer seg en del unoter som man må file vekk den dagen man har ønske om å gjøre ting skikkelig. Her snakker jeg av erfaring. Jeg gikk fra basic via maskincode til vb og nå sist C++. Mengde unoter jeg må av-lære den tunge veien er enorme.

Samtidig sitter jeg her med en nevø som programmerer C++ og hele tiden må demonstrere hvor dum onkel er som har glemt den og den vedlikeholdsoppgaven i c++. Min nevø er 14 og har startet direkte på C++ (vel strengt tatt visual C++ først).

 

Til kommentaren med at en lærer andre språk lett dersom man behersker C++ så mener jeg selvfølgelig ikke at man allerede KAN dem, men at man allerede har tankesettet for å få med seg alt som er nødvendig for å programmere. Da går svært ofte overgangen enkelt og greit.

Lenke til kommentar

men at man allerede har tankesettet for å få med seg alt som er nødvendig for å programmere

Dette mener jeg er utrolig viktig. Å lære seg å programmere og ikke bare skrive en kode i en gitt syntaks. Det handler om å lære seg et fag. Men dette har fint lite å gjøre med hvilket språk man lærer seg første gang.

 

De grunnleggende tingene i programmering, det som er viktig, er å begynne å tenke litt på variabler, klasser, funksjoner, løkker, logikk, osv. Alt dette er likt i alle moderne imperative språk (VB.NET/PHP/Python/C++/C#/etc). I alle disse språkene kan man lære seg de grunnleggende teoriene bak programmering, og med disse grunnleggende teoriene kan man lage nesten hva som helst.

 

Så har vi påstanden om at et språk gir deg uvaner, en variant av den velkjente "You can write FORTRAN in any language". Når folk snakker om at man får "uvaner" og "unoter" av et språk lurer jeg på hva det er? Ofte er VB involvert. Siden det ikke blir forklart må jeg tolke fritt. Visual Basic er et språk hvor det er fryktelig lett å skrive helt grusom kode (sammen med f.eks. PHP). Her kan man lett ta snarveier og kutte hjørnene på god programmeringspraksis. Det er klart, kommer man fra VB, med sin nærmest totale mangel på struktur, over på C++ som krever en struktur og masse vedlikeholdsarbeid, men gir deg lite styring og advarsler før programmet kjører, da har man en jobb foran seg. Hvis man kan VB og begynner å skrive VB programmer i C++ kode, da går det til helvete i en håndveske. Men dette handler ikke så mye om språk som det gjør om selve programmereren.

 

Men gode, gamle VB kan ikke sammenlignes med C# (eller VB.NET for den saks skyld), et språk som er sterkt typet, hvor kompilatoren sier i fra når du gjør en del grunnleggende feil, veldig objekt-orientert, etc. Man lærer seg gode vaner, nærmest by default. På den andre siden, man kan skrive forferdelig kode i C# og, på samme måte som man kan drukne i et badekar med 5 cm med vann, men det er vanskeligere.

 

Jeg har noen kriterier for hva som er et bra nybegynnerspråk (i dag):

  • Få eller ingen begrensinger, man skal kunne lage nesten hva som helst med det språket
  • Man skal kunne lære seg de viktigste prinsippene for moderne programmering
  • Verktøyene for å programmere i språket skal være gratis
  • Det skal være rikt med ressurser tilgjengelig på nett
  • Språket skal være imperativt og med objekt-orientering bygget inn fra begynnelsen
  • Man skal kjapt kunne lage nyttige små-programmer for å løse mini-problemer i hverdagen
  • Det skal være enkelt å komme i gang med sitt første program
  • Det skal ikke tvinge deg til å vite masse før du kan begynne å lage noe som ser litt kult ut.

Etter min mening oppfyller C# disse kravene mye bedre enn C++. Å begynne med C++ mener jeg vil forlenge læreprosessen. Det er ingen tvil om at en 13-åring kan lære seg C++, pokker heller, vi skrev assembly når vi var 13, men jeg mener man tjener ikke noe på det og man kommer lenger og får til mer interessante ting med andre språk.

 

En annen ting som ikke har vært nevnt her, hvis man ønsker å bli god til å programmere: lær flere språk. Og gjerne noen totalt forskjellige (et funksjonelt f.eks.). Sapir-Whorf hypotesen mener at språket du kan påvirker måten du ser verden på og hvis man trekker den inn i programmeringsverden blir det tilsvarende at programmeringsspråket du kan gjør at du ser verden på en måte og klarer ikke å se hele bildet. Og det er nok litt sannhet i det, hvis du bare kan et språk (eller en type språk) så er tenkemåten din begrenset. Hvis alt du har er en hammer, ser alt ut som en spiker.

 

I den forbindelse skal det sies at jeg synes C/C++ burde være en del av dannelsesreisen til enhver seriøs programmerer. Det er riktig som noen sier, i grunnleggende C/C++ lærer man en del om hvordan ting henger sammen, og det er nyttig. Men det er ikke det rette stedet å begynne. Krype før man går osv. Det er helt greit å bruke en List<T> i C# før man har laget sin egen lenkede liste i C.

 

(til alle Haskell og lignende fans: jeg har som forutsetning at det er best å begynne med et imperativt språk over et funksjonelt (eller noe annet), rett og slett fordi det er mer mainstream. Å titte på funksjonelle språk senere derimot er bare en fordel)

 

Til avslutning, ta en titt på denne keynoten fra PDC08, http://channel9.msdn.com/pdc2008/KYN04/, fra ca 71 minutter. Der har du et eksempel på et programmeringsmiljø som ikke ligner på noe annet programmeringsmiljø, men som er laget for å gi unger det tankesettet som kreves i programmering.

Lenke til kommentar

Enig med Glenn F. Henriksen egentlig

 

Jeg mener at C++ er for omfattende, det er for vanskelig, og tar for lang tid før det gir resultater for et nybegynner språk. Jeg vil også legge til at STL gjør noen ting som kan gjøre at språket kan virke litt forvirrende hvis en ikke vet hva som ligger bak.

 

De fleste andre språk vil være et bedre utgangspunkt enn C++.

Endret av GeirGrusom
Lenke til kommentar
Så har vi påstanden om at et språk gir deg uvaner, en variant av den velkjente "You can write FORTRAN in any language". Når folk snakker om at man får "uvaner" og "unoter" av et språk lurer jeg på hva det er? Ofte er VB involvert. Siden det ikke blir forklart må jeg tolke fritt.

 

Nå tenker jeg ikke så mye på at man kan skrive grusom kode i VB, det kan man i alle programmeringsspråk. Men i et av Visual-språkene er det jo drøssevis med koder man "slenger med på lasset" som er totalt unødvendig i et program. Man "slipper" å tenke på store deler av et programaspekt og vil da fort bloate et program med kode som ofte er vanvittig omfattende skrevet for oppgaven man reelt trenger. Dette er hva jeg ville kalt unoter. Samtidig går man glipp av mye fin programmering ved at editoren programmerer for deg.

Lenke til kommentar
Så har vi påstanden om at et språk gir deg uvaner, en variant av den velkjente "You can write FORTRAN in any language". Når folk snakker om at man får "uvaner" og "unoter" av et språk lurer jeg på hva det er? Ofte er VB involvert. Siden det ikke blir forklart må jeg tolke fritt.

 

Nå tenker jeg ikke så mye på at man kan skrive grusom kode i VB, det kan man i alle programmeringsspråk. Men i et av Visual-språkene er det jo drøssevis med koder man "slenger med på lasset" som er totalt unødvendig i et program. Man "slipper" å tenke på store deler av et programaspekt og vil da fort bloate et program med kode som ofte er vanvittig omfattende skrevet for oppgaven man reelt trenger. Dette er hva jeg ville kalt unoter. Samtidig går man glipp av mye fin programmering ved at editoren programmerer for deg.

 

Er word completion å "programmere for deg"? :O

Det betyr jo bare at en slipper å sitte å slå opp i dokumentasjon manuelt, fordi dokumentasjonen blir gitt til deg av IDE-en.

Jeg har ikke slått opp i bøker siden jeg drev med Power C på nittitallet.

 

Forøvrig så er man ikke NØDT til å bruke standard biblioteket for å bruke quick sort (Array.Sort) samt at boost og STL har allerede implementert alle de viktigste funksjonene fra før, fordelen med .NET er at også ting som nettverk, 2D og 3D grafikk, GUI, databaser osv. i tillegg er tilgjengelig.

 

Hvis man er virkelig interessert, er pekere (unsafe) og unmanaged minne(Runtime.InteropServices.Marshal) også tilgjengelig i C#.

Tilogmed C biblioteker (som for eksempel Windows Dll-er) er også tilgjengelig i C# gjennom P/Invoke (DllImport attributten)

 

Så hvorfor C++ skulle være et bedre valg, forstår jeg rett og slett ikke.

Lenke til kommentar
Men i et av Visual-språkene er det jo drøssevis med koder man "slenger med på lasset" som er totalt unødvendig i et program.
Hm? Tenker du på bibliotekene? Vel, C++ er jo ikke noe anderledes der, man inkluderer de bibliotekene man har bruk for. Hvis man først skal skrive C++ er man vel temmelig tåpelig hvis man ikke bruker STL (med mindre man har spesielle behov).

 

Man "slipper" å tenke på store deler av et programaspekt og vil da fort bloate et program med kode som ofte er vanvittig omfattende skrevet for oppgaven man reelt trenger.
Igjen ser jeg ikke helt hva du mener, utover at man har en del biblioteker man bruker, men at det skulle være noe galt i å bruke biblioteker, det ser jeg ikke. Ja, hvis man skal bli dyktig i faget programmering har det noe for seg å lage en lenket liste selv. Man lager den, ser hvordan den fungerer, utvider den litt, osv, osv. Så parkerer man den og bruker List<T> heller og ser seg ikke tilbake. Det er en verdi i å vite hvordan ting fungerer og hvordan ting henger sammen. Hvis man bare bruker bibliotekene uten å noen gang tenke på hvordan de fungerer og hvilke konsekvenser det har blir man ingen dyktig programmerer. I noen spesielle tilfeller kan en enkel lenket liste gi fordeler som List<T> ikke gir, men at en nybegynner har behov for det, det ser jeg ikke...

 

Men, man bør ikke begynne der. Det er noe som kommer senere, når man har lært seg å krype, og som GeirGrusom var inne på, det går helt fint å eksperimentere med dette i C# og.

 

Samtidig går man glipp av mye fin programmering ved at editoren programmerer for deg.
Tja, jeg kaller det effektivitet jeg da. Jeg vil gjerne ha mer effektivitet så jeg bruker ReSharper, noe som lar meg slippe å skrive masse kjedelig standard kode. Igjen, det kan ha en verdi å skrive et program i notepad og så kompilere det fra kommandolinjen, men bare så man har gjort det og det er ikke rette plassen å begynne.

 

Som GeirGrusom kan jeg heller ikke se hvorfor C++ skulle være et bedre (eller til og med bra) språk å begynne med.

Lenke til kommentar
Til kommentaren med at en lærer andre språk lett dersom man behersker C++ så mener jeg selvfølgelig ikke at man allerede KAN dem, men at man allerede har tankesettet for å få med seg alt som er nødvendig for å programmere. Da går svært ofte overgangen enkelt og greit.

Poenget mitt er at å bygge opp dette "tankesettet" vil gå vesentlig fortere i et høynivå-språk. Deretter kan man plukke opp C (eller hvis man på død og liv må, C++) og for eksempel et funksjonelt språk.Men først må man bygge opp forståelsen av hva programmering er, om hvordan man omsetter en algoritme til kode osv osv. Og for å lære det trenger man ikke plages med C++.

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