Hvad skal Frederik lære som første programmeringssprog?

Jeg har en dejlig søn Frederik på 14, som er meget kvik og vi har snakket om at komme i gang med at programmere.
Jeg vil meget gerne høre hvad I mener Frederik skal lære som det første programmeringssprog.

Frederik og har allerede været ude en dag for at programmere Scratch (som I kan læse om her). Det var et hit, og det åbnede klart Frederiks øjne for at det er sjovt at programmere. Scratch er ren grafik programmering og nu tror jeg vi skal se på tekst-baserede programmeringssprog.

Uden at jeg skal konkludere angående valg af programmeringssprog, så har jeg har et par tanker om det.
Jeg synes ikke at det er værd at se på "døde" sprog, såsom Fortran, Pascal og TCL.

Jeg vil gerne give Frederik muligheden for at programmere på en Linux-maskine, da det er nemt for mig at installere compilere, editorer ad libitum.
En anden ting jeg synes er vigtigt er adgang til gode eksempler og god dokumentation, hvilket gør at Python kunne være et godt valg.
Jeg synes at http://www.python.org/doc/ er en ekstrem god ressource.

Selvom jeg ofte selv programmer i Python, TCL, shell, Perl, Awk, C eller C++, så rør det mig ikke hvis der er andre sjove og gode ideer.

Frederik synes også at det kunne været sjovt at programmere aps f.eks til hans Nokia N900 eller hans iPod touch, og jeg har lidt en alternativ plan om at se på Bryan Lundukes Illumination Software Creator.

Et helt andet sted vi kan starte er Arduino programmering, som jeg ved at Casa Kamp har haft sjov med.

Folkens, husk at det er Frederiks første programmeringssprog og at han er 14, men uden over det er jeg MEGET interesseret i jeres indspark.
Keep 'em coming og god jul til jer alle :-)

/pto

Kommentarer (89)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
David Askirk Fotel

Hvis han gerne vil lave lidt spil, så er python med pygames fantastisk.

Hvis det er web ting, så er ruby on rails dejligt.

Hvis han gerne vil kode til ipod touch skal han måske kigge på at lave noget web med noget javascript, så kan han bruge javascript og lave det i det.

Niklas Johansson

Det første programmeringssprog jeg selv lærte var Java.

Hele den objekt orienterede tilgang virkede på mig som en nem måde at lære programmering på, så det kan anbefales som en starter. Hvis ikke Java har interesse kunne C# være en mulighed, hvor syntaxen stort set er den samme som Java men hvor man afvikler på microsofts .NET platform fremfor JVM'en. Du kan køre en C# compiler under Linux vha Mono compileren (http://www.mono-project.com/Main_Page). C# via mono vil også give ham mulighed for at udvikle simple apps til hans iPod Touch uden at skulle have fat i en Mac for at han kan køre XCode og samtidig skulle lære Objective-C, som er meget sværere at lære som nybegynder, og kan ikke anbefales. Har dog ikke selv prøvet det, men Mono påstår at man kan :) http://xamarin.com/monotouch.

Som du selv nævner er Python også en mulighed, som jeg personligt er meget glad for. Især list comprehensions og den simple syntax gør at det er et sprog som fungerer godt i mine øjne, og som er nemt læseligt.

Hvis han godt vil over i den funktionelle verden kan F# anbefales, som ligesom C# kører på .NET og som kan afvikles via Mono, og hvor syntaxen ligeledes er meget ren og pæn.

Som nybegynder vil jeg ikke anbefale C eller andre low level sprog. Kan godt gå hen at blive meget langhåret for en nybegynder.

Christian Nobel

Fortæl lige hvorfor Pascal er dødt?

Free Pascal lever i bedste velgående, Lazarus er et fint cross platform ide, og svjv. så lever Delphi stadig ganske fint.

Og så vil jeg sige, at hvis Frederik gerne vil tilbage til rødderne, så skal man måske træde et skridt ned og lægge åndssnobberiet på hylden og kikke tilbage til hvordan vi andre havde stor glæde og forståelse ved at benytte Basic på en simpel fortolket maskine.

Køb sådan en dims her til ham, og han vil få en aha oplevelse, også fordi han er meget tættere på selve jernet:

http://www.lawicel-shop.se/prod/Maximite-Basic-Board_852527/Duinomite_84...

Peter Müller

Javascript naturligvis.

Du kan køre det i browseren og på din lokale maskine.
Det er et community i rivende udvikling og et særdeles levende sprog som ikke ser ud til at blive udskiftet i det næste årti.
Det er let at gå til da det ikke kræver specielle installationer.
Du har en konsol du kan snakke direkte med i browseren og prøve dig frem.
Du har ikke langt til at lave grafik, der er stor tilfredsstillelse ved at se ting ske når koden køres.
Javascript virker på alle mobilbrowsere og du kan pakke dine hjemmesider ned som apps, hvis man er glad for det buzzword.

Lars Tørnes Hansen

Arduino er et fint valg til at starte ud med.
Arduino er ret simpelt, og det at man kan se at der sker noget er helt sikkert et stort hit.

Senere kan man tilføje C for at kunne tilgå hardwaren direkte. Så kan han lære lidt om hvordan digitalelektronik i hardware hænger sammen med software. Meget godt for forståelse af mikroprocessorer.

C viden kan så udvides til Objective C programmering af programmer til Apple iP* enheder.

Til Linux programmer synes jeg Python er et godt valg.

Arduino -> C -> Objective C & Python, eller Arduino -> Python -> C -> Objective C
kunne være mulige rækkefølger på sprog der kunne læres til at starte med.

Lars Tørnes Hansen

Som alternativ til Arduino er der R-Pi + et Gert board.

R-Pi, eller Raspi (Raspberry Pi) Linux computeren, som ikke kan brickes (SD-kort får bare et nyt image lagt ind) er en billigt $35 Linux computer på størrelse med et kreditkort.
Mere om R-Pi her: http://www.raspberrypi.org/faqs

Gert Board til R-Pi: http://www.raspberrypi.org/archives/411

Vil Frederik i gang med R-Pi + Gert Board er C oplagt som første sprog. Python kan sikkert også bruges, men giver ikke samme føling med styresystemet nedenunder på samme måde som C gør.

Henrik Gilvad

For 1 år siden ville jeg have sagt QT QUICK men det ødelagde Mr.Flop.
Nu vil jeg sige:
Unity
eller
Blender + SIO2

Det er imponerende hvor hurtigt 12 årige i dag kan lave avancerede spil incl 3d animationer, level design, scripting, ... med de 2 toolkæder.
Unity og din søn har pludseligt lavet 1 spil til Windows/Mac/Linux/iOS/Android/Wii/PS3/Xbox360 ;-)
Ret uhyggeligt faktisk.

Kim Madsen

Jeg vil foreslå Ruby som er let at gå til, da det er fortoket, dynamisk og læse venligt. Ruby understøtter flere forskellige programmeringsparadigme objektorienteret, imperativ lidt funktionel.

Kom evt. i gang via http://tryruby.org som har inbygget en lille tutorial eller via en bog: http://pragprog.com/book/ltp2/learn-to-program

Rune Fogh

Ja, jeg ved godt, at Qt ikke er et rigtigt sprog, men kig lige på QML og Declarative UI-konceptet. Brug Qt Creator IDE og skriv animerede ting til hans N900. Det må seriøst vække hans kodelyst at se fede animerede ting han selv har lavet køre på hans telefon. Oplagt starter han hurtigt på at lave små spil. Der er også masser af videoer, der viser seje kodeeksempler - dog på engelsk, men det er jo ingen hindring for en 14-årig :)

Jacob Christian Munch-Andersen

For blot 3 år siden havde det været et dårligt valg til en nybegynder, men siden da er browserne blevet langt bedre, de er i langt højere grad enige om hvordan koden skal tolkes, de er hurtigere og har alle fået en Firebug lignende konsol.

Der er stadigvæk uhensigtsmæssigheder i HTML og CSS som trækker ned, det er ikke altid specielt logisk hvorfor skidtet opfører sig som det gør, men i modsætning til tidligere tiders cowboy standarder er det dog i dag for det meste til at finde en løsning uden at skulle skrive specifikt til hver enkelt browser.

Fordelene er dog ganske klare, det er et relevant sprog, det er let at sætte et miljø op og internettet er fyldt med hjælp.

Christian Nobel

Æhh, måske et dumt spørgsmål, men hvor finder man et IDE til at programmere Javascript, gerne med code completion og intuitivt at bruge, således at man direkte kan lave en stump Javascript og afprøve det på samme måde som man f.eks. vil kunne med Delphi?

XXX XXX

Vil jeg mene Python er en god start.

Selv syntes jeg at JavaScript er det mest sjoveste at rode rundt med og udforske, og der er noget der hedder CodeAcademy (http://www.codecademy.com/), med en pædagogisk medhjælp og "achievement" agtig notifikation (Dog er der nogle kapitler med for-løkker, som jeg ikke syntes var ligetil at forstå, hvordan de mener skal løses)

Evt. i kombination med Eclipse og PyDev som IDE, som en pædagogisk medhjælper.

Og så er jeg meget tilhænger af at folk laver Proof-of-concept kode, for at opildne motivationen, derfor har jeg efter mange forskellige guides syntes at "Learn Python The Hard Way" (http://learnpythonthehardway.org/book/) er en god måde at komme rundt forskellige steder, og prøve lidt af hvert for at finde det interesse-område der interessere en.

Jeg har altid syntes Ruby var meget forskellig fra andre sprog i den måde de udtrykker sig på.

Der er også ting såsom "Python Turtle" (http://pythonturtle.org/), der er mere leg-via-programmering ..

Jacob Thrane Lund

Jeg ville starte med et funktionelt sprog og når han mestre det så skife til et OOP orienteret sprog, det skulle ligger en god bund for vidre udfoldelser.

Hvis det skal være mere "sjov og ballade" så findes der diverse script sprog, frameworks og visual editors til at komme hurtigt fra start.

Nicolai Nyberg

Uden at ville lyde fordømmende, synes jeg, der mangler en lille beskrivelse af, hvad der skal laves ? Når det er på plads, synes værktøjet (sproget) så meget mere lettere at vælge. Jeg er meget overbevist om, at når Frederik kan se det større perspektiv med opgaven, så vil han have lettere ved at sætte sig ind i sproget.

En lille anekdote fra mit eget liv; min bror og jeg boede stadig hjemme og han var fascineret af det liv jeg havde med mine demo-venner og Amiga'en. Så selvfølgelig ville jeg lære ham ASM, og vi startede med et main-loop, der exit'ede, når man trykkede højre museknap (bit 6 husker jeg det som på en $Bxxxxx adresse, men...;) ) det var enormt hyggeligt, men det fralærende element forduftede pænt hurtigt -- jeg tror i bakspejlets klare lys, at det var fordi, der ikke var et større formål med opgaven.

Men alt held og lykke til Frederik, og velkommen til coders-world :)

Anonym

Taget alderen i betragtning, så vil jeg mene at vi skal springe "lege" sprogene over (jeg husker med gru tilbage til Myresnak i folkeskolen - ok det er mange år siden .-)), men det lyder også til at I har været der og vil videre.

Python kunne være et godt bud, da man kan lave meget med relativ lidt kode, og koden er nem at overskue.

Php kunne også være et godt bud. Koden syntes jeg dog ikke er så "pæn" som Python, men supportsiderne er (efter min mening) noget af det bedste der eksisterer til udviklere.

Da mine børn ikke er gamle nok (og konen ikke giver lov), så kender jeg ikke alt for meget til Lego Mindstorm, men kan det "hackes" til at blive styret af sprog som f.eks. Python? Hvis det er tilfældet, så kunne det da også være et sjovt projekt, hvor resultatet er mere "konkret" (og du har en undskyldning til at købe noget legetøj :-))

Michael Torp Kaalund

Da jeg var i den alder, var jeg lige begyndt på at lærer at programmere i C og C++. Jeg mener Python er en god måde for ny at lære at programmer i pga. syntaxaen, og da jeg helt vild med embedded software, så synes jeg og helt klart, at du skulle give sønniken et Arduino board (eller at i skulle lave et selv). Eventuellet noget data opsamling og kommunikationen mellem hardware og software. Han har garanteret også en radiostyret bil, eventuellet lav en robot ud af den :D (husk at tage billeder og dokumenter processen her ;) )

By en vej, Arduino er sproget stadig C, den eneste forskel fra almindelige avr-gcc og arduino er når du bruger arduino IDEen er et framework. ;)

Opsummering Python og et arduino board eller ligne, ville jeg give ham hvis jeg var dig :D

Glædelig jul her fra Tilst ;)

Flemming Frandsen

Selv om jeg selv vil mene at man ikke kan programmere hvis man ikke kan mindst C, Java og Perl, så er det ikke der man skal starte, start med noget der er sjovt fra første linje, så skal han nok opdage de rigtige sprog når behovet opstår.

Processing er et framework + Java dialekt der netop er lavet til kunstnere og andre nybegyndere, som er så simpelt at man kan få noget på skærmen med en enkelt linje.

Et eksempel på både program og source kan ses her:
http://www.openprocessing.org/visuals/?visualID=47485

I Open Space Aarhus afholdt vi for nyligt en workshop i Processing: http://gfx.osaa.dk og der var faktisk en god del folk der fik lært at programmere den ad den vej.

Michael Iversen

...ville også selv ha' foreslået Pascal, Basic eller måske endda ruby.
Alternativt, hvis Frederik kan li' lego: Hvad med en Lego Mindstorms ?
Ved godt det ikke lige falder indenfor rammen beskrevet i artiklen; men udover det (meget visuelle) "sprog" der følger med, kan man også programmere NXT-klodsen i mange af de sprog der er nævnt her (C++, Python mm.): http://en.wikipedia.org/wiki/Lego_Mindstorms#Programming_languages_2
Jeg har en knægt på 12, og kommer højst sandsynligt i samme situation som du er inden længe. Så 1000 tak for at rejse et interessant spørgsmål, andre fædre herinde kan nikke genkendende til!

Glædelig jul.

//Michael.

Christian Nobel

Selv om jeg selv vil mene at man ikke kan programmere hvis man ikke kan mindst C, Java og Perl

Og så vil jeg gerne spørge lidt provokerende, hvad er programmering?

På mig virker det altså lidt som om de fleste her hurtigt mister jordforbindelsen og flytter sig op i et højere luftlag, som er fint nok hvis fundamentet er på plads, men man skal altså lære kravle før man kan gå - det er lidt lige som sejlads - selv om man er skipper på en supertanker, så er det meget sjældent man ikke er startet med en sejlbåd.

Palle Simonsen

Hej Peter,

Desværre lukker Google Appinventor for Android d. 31/12, ellers kunne sønnike have brugt sine scratch færdigheder på de Android mobiler, som familien måtte have. (projektet overtages dog af MIT og source bliver tilgængelig, hvis du vil bygge din egen server). Men hvis I har et par Andriods derhjemme, kan i stadig nå at få ret meget sjov ud af Appinventor.

Javascript er allerede foreslået af andre og kan godt betragtes som en slags Lisp med C syntax. Råder til, at downloade bogen 'the good parts' så, da forfatteren heldigvis ikke prøver at trække Java ned over Javascript.

HTML5 i JQuery Mobile forklædning giver 'instant feedback' så I vil opleve at kunne lave nogle fungerende mobilapps ret hurtigt med eller uden Javascript.

Endlig er der DRscheme aka PLTscheme aka Racket, hvor I ret nemt kan lave nogle fungerende applikationer med ret acceptabelt GUI på Linux (eller windows) - igen instant feedback = masser af sjov :)

God Jul her fra - happy coding

Peter Mogensen

... og foreslå Assembler.

Ikke noget kompliceret på en moderne CPU, men gerne på en simpel micro-controller, der kan styre nogle lamper, måske en step-motor eller lignende.
Hvorfor?
Fordi det er en uvurderlig ting i ens fremtidige programmeringsliv at man har bare en smule intuitiv forståelse for hvad der faktisk foregår i den CPU man arbejder med. Man lærer at forstå hvad en pointer er, hvad der kan gå galt med dem, og hvornår en pointer ikke er en pointer, men en højere-liggende abstraktion.

Tim Ahrentløv

Prøv http://www.anscamobile.com/corona/
Sproget er Lua, og ligner det meste andet derude.
Så kan Frederik lege med at lave programmer til sin iPhone, hvilket sikkert er den bedste måde at holde ham begejstret på. På sitet kan han også finde masser af eksempler og skabeloner som han kan tage sit udgangspunkt i.
Frederik kan endvidere træne sit Lua med denne App når han sidder i sofaen: http://twolivesleft.com/Codea/ - men det kræver at han får en iPad. Du kan nå det endnu. Butikerne har stadig åbne :o)

Allan Høiberg

Z80 assembler var rigtig spændende da jeg var 14. :-)

Men mere alvorligt: At kalde Pascal et dødt sprog er synd. Tag et kig på Delphi XE2, der kun er et par måneder gammel for at få et indtryk af hvad platformen kan i dag - det er faktisk ret interessant (f.eks. compile til iOS via en Mac, omend kun i de dyrere udgaver)! For at komme i gang i dén retning kan man altid starte med FreePascal eller Lazarus.

Derudover vil jeg tilslutte mig Arduino - der er noget ekstra ved at få adgang til et mere "fysisk" output, når motivationen til at lære mere skal holdes kørende i starten.

Michael Thomsen

Enig: Det kommer fuldstændig an på HVAD han vil programmere!

Her er mine præferencer:

Hvis han vil lave software til smartphones er valget givet af platform (varianter af C og Java).
Hvis han vil programmere microkontrollere, ARM o.l. er eneste mulighed nærmest C/C++.
Hvis han vil programmere til web-klienter: javascript
Hvis han vil programmere til web-servere er der mange flere valgmuligheder, de pt. mere brugbare er i mine øjne php/python.

Så han må starte med at finde ud af hvilken opgave han vil løse.

Iøvrigt vil jeg mene at Pascal/Delphi er et perfekt begyndersprog/tool. Om man starter med det ene eller andet sprog er ligegyldigt, når man først har lært det ene skifter man ret let til det andet, og Delphi er let at komme igang med.

Baldur Norddahl

... og foreslå Assembler.

På et plan er det rigtigt at man skal kende maskinen som maskine. På et andet plan vil assembler på et tidligt stadie måske låse dig fast i en imperativ tankegang? Hvis man ikke skal kode i C eller C++ forekommer grundviden om pointere ikke så vigtig.

På DIKU starter de med at lære folk SML. Måske fordi det er tættere på den matematiske forståelse eleverne har lært i folkeskolen og gymnasiet. Ja jeg ved godt at knægten stadig er ung, men mon ikke det virker begge veje? Lærer han et funktionsorienteret sprog, så bliver han også god til matematik.

Jeg skal tilstå at jeg selv er opvokset med basic på ZX Spectrum som første sprog og Z80 assembler som andet.

Daniel Madsen

Jeg startede faktisk selv med pascal, men følte jeg havde svært ved at komme igang med det og de ting jeg kunne lave var meget simple (det var før internettet - så information og adgang til tutorials osv. var ret begrænset). På et tidspunkt udkom så Delphi 2.0 og jeg fik noget internet - jeg har været omkring 15 år på det tidspunkt og det kickstartede min karriere.

Jeg husker at noget af det der virkelig var motiverende ved Delphi var at jeg pludselig kunne lave ret avancerede brugergrænseflader der lidt lignede noget af det jeg kendte fra professionelt udviklet software (office og lign.). Samtidig var der en enorm mængde komponenter man kunne anvende, så selvom kodeforståelsen ikke var så god endnu så kunne jeg faktisk lave client/server løsninger og reelt funktionelle programmer. Det gode ved den tilgang er at man får en masse success-oplevelser i starten og det er motiverende til at man har lyst til at gå videre - selvom man godt kan se at det vil tage lang tid at lære selv at skrive nogle af de komponenter man har anvendt for at nå målet. De tidlige success-oplevelser var med til at give mig interessen for også at lære teorien bag.

Så mit råd vil være at uanset hvilket sprog og platform der vælges, så sørg for at han får noget visuelt feedback meget hurtigt - hvis det hele går for meget op i teori i starten i den alder, så kan det hurtigt komme til at minde mere om skolearbejde end sjov og ballade. Så sørg for knægten får sig nogle gode success-oplevelser :-)

Nicolas Guilbert Blogger

I fald han er til strategispil, vil han kunne lære en masse af at skabe og editere baner til Battle for Wesnoth. På den tekniske side er er der hele markup-sproget at lære. Derudover er der en masse perifære elementer såsom at designe kort, units, grafik, lyd, lave story plot'et. Og måske vigtigst af alt er der et community omkring spillet, som man kan udveksle idéer med.

Med en lille indsats vil han kunne høste de første succesoplevelser tidligt, og derefter er der en lang og mangfoldig indlæringskurve at more sig med.

Per Erik Rønne

Ja, mit første programmeringssprog var også Pascal (på datalogi 0 på DIKU), og her bør man lige huske at dette sprog er udviklet som undervisningssprog.

Desværre så på et tidspunkt hvor filer lagredes på magnetbånd, så kun sekventielle filer findes i standarden.

Men - et første programmeringssprog bør være et sprog der er udviklet til undervisningsbrug, og det er C-familien unægtelig ikke.

Samtidig bør det tilhøre Algol-familien, som såvel Pascal som C hører til. Ikke noget med Fortran, COBOL eller symbolske maskinsprog her.

Thomas Løcke

Haskell fordi det er sjovt, relativt let at læse og fordi der findes en genialt god bog til det:

http://www.nostarch.com/lyah.htm

Ada fordi det giver et rigtig godt fundament at bygge på. Man lærer at tænke over sine typer og GNAT oversætteren er en fantastisk hjælp for en nybegynder. Den kommer med brugbare og forståelige meddelelser, og den holder brugeren i ørene fsv. de mest almindelige og irriterende fejl. http://libre.adacore.com

Hvis knægten har flair for programmering, så kan han lære lige præcis de sprog han har lyst til og behov for. Sprogene betyder efter min bedste overbevisning ikke alverden - vis ham lidt af hvert. :)

Jakob Holmelund

Hvis du selv er glad for python er det da helt sikkert vejen at gå.. ! Det fede ved python er at det kan bruges så ufatteligt mange stedder. Det kan bruge til webprogrammering, spilprogrammering, skoleprogrammering. Det er meget meget veldokumenteret til alle førnævnte use cases og hvis du selv er skarp i det, ser jeg ikke rigtigt nogen grund til at vælge andet.. Oven i hatten får du et sprog der er meget let at læse og forstå, selv for en på 14..

Ulrik Gerdes

Det kan godt være at VBA er primitivt, set fra en professionel synsvinkel, men din søn kan lære meget af det helt grundlæggende ved programmering, og kan allerede efter få timer producere noget konkret og brugbart, fx til sit skolearbejde: Det er et godt drive til at blive hooked på at programmere og at udvikle sine kompetencer :o)

Peter Mogensen

På et andet plan vil assembler på et tidligt stadie måske låse dig fast i en imperativ tankegang?

Jeg startede med 6502-assembler. Jeg har nu ikke følt mig låst fast. Jeg har skrevet større programmer i både Miranda, Prolog og Mozart (Oz). Jeg skal da indrømme at det tog nogle uger at vride hjernen omkring hvad der var så smart ved objekt-orientering i sin tid, men det bebrejder jeg nu også delvist en virkelig elendig lærebog.

Hvis man ikke skal kode i C eller C++ forekommer grundviden om pointere ikke så vigtig

Det er jeg uenig i. Det er ikke bare vigtigt at vide hvad en pointer er til C. Det er også vigtigt at vide hvornår ens "reference-typer" (som f.eks. i Java eller Obj-C) IKKE er pointere.
På samme måde mindes jeg at man på IMADA i Odense i sin tid skiftede fra Modula2 til Python i kurset "algoritmer og datastrukturer". Det holdt kun 1 år. Som jeg forstod det var grunden bl.a. at det er helt umuligt for de studerende at få et realistisk forhold til kompleksistet af de algoritmer, der implementerede, når Python ikke havde de basale typer som pointer og arrays. De kunne sagtens implementere funktionaliteten, men de havde ingen mulighed for at se teorien i praksis.

Michael Jørgensen

Hej,

Min egen søn Lucas (som nu er 15) har de sidste par år brugt meget tid på at bruge programmet Game Maker fra YoyoGames. Det er eminent til at lave event-styrede spil. Man kommer hurtigt i gang og man opdager hele tiden nye muligheder. Simple spil kan programmeres udenlukkende med Drag-n-Drop, men mere avancerede spil kræver brug af GML (Game Maker Language) som ligner C til en forveksling.

Fordele:
- Det er nemt at gå til.
- Man lærer event-styret programmering.

Ulemper:
- Det kan være svært at finde på spil, som man også selv gider spille.
- Sproget GML er proprietært og låst til dette program.
- Programmet koster penge.

-Mike.

Michael Jørgensen

En anden mulighed er Java.

Min egen søn (han hedder stadig Lucas) spiller også meget Minecraft. Han vil gerne lave "mods" til Minecraft, og disse laves i Java. Så hvis Frederik også spiller Minecraft (ellers bør han se at komme i gang!), så er Java måske meget relevant.

Fordele:
- Det er en kæmpe gulerod, at kunne bygge videre på et eksisterende spil.

-Mike.

Andreas Poulsen

Jeg er en dreng på 13 år, der bruger JavaScript til rigtig mange ting. Og jeg startede da jeg skulle bidrage til spejdernes hjemmeside, og bad min far "undervise" mig. Derfor mener jeg at man bør have en grund til at begynde. Så hvis han gerne vil lave app's vil jeg anbefale et "app-program". Derefter kan man altid begynde på noget andet hvis man vil.

Jesper Louis Andersen

Det handler i første omgang ikke så meget om hvad man programmerer i som det handler om at man programmerer i det hele taget. Vælg det sprog der sætter dig i stand til at holde din interesse vakt. Og det sprog der sætter dig i stand til at løse de opgaver der nu må ligge for.

Valget af sprog er ligegyldigt hvis du bare kaster dig over endnu et med jævne mellemrum og ikke "går i stå" på at nu du kan et sprog, så er det "godt nok(tm)". Intet sprog kan alene lære dig alle koncepterne, måske med undtagelse af Scheme-dialekten Racket. htdp.org er et bud :)

Men - i stedet for at være fornuftig, så skal knægten lære Coq. Der er ingen vej uden om dependently typed programming :)

Michael Olesen

Ja både og - en tekst-editor gør det simpelt, men ikke altid let (nogen som kan huske Blue J?). Fordelen ved et IDE er at nogle ting "bare" er et klik i stedet for at skrive 50 linjer kode. Og det vile jeg betegne som en af de vigtigste ting for en nybegynder - keep it simple så der hurtigt kommer nogle resultater. Når det grundlæggende er på plads, så er det tid til at dykke ned i de mere avancerede ting.

Jeg vil helt klart anbefale et OOP sprog, med stor udbredelse, som fx Java, C# eller VB.NET(hvis det skal være lidt mere pædagogisk) - eksempelvis er der mange intro-videoer og kode-eksempler til .NET på MSDN og CodeProject.

Skal det være lidt mere langhåret, og har han interessen for programmering, så vil jeg sige C eller C++ af den grund, at det kan bruges til de fleste programmer/platforme.

Anonym

Spurgte lige den "store knægt" her i huset, han startede også selv ca i den alder. Han siger, at kan han lære et sprog og få noget fornuftigt ud af det, så kan han lære dem alle. Så C# er nok ikke et dårligt sted at starte. Her var det VB, men nu er mulighederne jo helt andre end for over 10 år siden.

Peter Holm Jensen

Dengang jeg ikke rigtigt kunne få fat i pigerne i 2G (ca 1981) startede jeg med comal på en RC et eller andet, og da det heller ikke rigtigt kunne imponere nogen, fik vi nøglen til computer boxen efter et par måneder og vi fandt hurtigt ud af at lave noget maskinkode på den der RC et eller andet, genialt system man behøvede ikke en gang en assembler da hver bit i koden betød et eller andet genialt, se det blev man klog af, men det gav nu ikke mange point hos pigerne. Næste step var at fuske en Z80 sammen og hvorfor bruge andet end maskinkode, det var jo det hurtigste. Nå efter lidt tid fik vi fusket en bios sammen til CPM og så kunne man jo pludselig køre polypascal, det er jo nok en tid der ikke kommer tilbage, så hvad med idag. Tja personligt synes jeg jo rigtigt godt om python, man kan lære at overskue et program og sproget er på sin måde enkelt, samtidigt med at det er object orienteret. Har man først fået en ide om hvad programmering er, så vil et eller andet embedet legetøj være godt, så lære man helt automatisk c og assembler, husk her at vælge et legetøj der er maskinært så man lære hvad en port og en bit er. Kommer man så langt vil intet sprog fra nu være mere indviklet en 2 uger med manualen og lidt prøven sig frem. ...og husk enten kan man programmere eller også kan man ikke, der hvor jeg læste til ingeniør var det sådan, at enten fik man top karakter eller også dumpede man, alt ind i mellem fandtes ikke, for enten knækker man koden eller også gør man ikke.
PS: det med piger er en anden kode der skal knækkes, det kommer helt af sig selv, og efter hvad jeg kan huske fra Linus biografien sagde hans søster at han ikke programmerede i en uge efter at han havde mødt sin kone, så hun var sikker på at det var seriøst :-)

Per Erik Rønne

Der er en grund til at Basic i årtier har været ugleset. Ordet hedder 'spaghettiprogrammering'.

Et godt begyndersprog skal være velkonstrueret, uden muligheder for vilde gotos. Og det skal have et stærkt typebegreb, og krav om erklæring af alle variable, før de bruges.

Ellers leder en tastefejl uundgåeligt til programmeringsfejl ...

Jacob Christian Munch-Andersen

Der er en grund til at Basic i årtier har været ugleset. Ordet hedder 'spaghettiprogrammering'.

Et godt begyndersprog skal være velkonstrueret, uden muligheder for vilde gotos.


Det forekommer at nogen mennesker har svært ved at adskille sproget og programmøren, hverken Basic eller muligheden for gotos forårsager i sig selv spaghettikode. Til gengæld vil jeg vove at påstå at der er spaghetti garanti for nye programmører uanset valg af sprog, det kan tage sig forskelligt ud alt efter sproget og dets features, men intet programmeringssprog forhindrer det. Og egentlig er det også lidt ligegyldigt, målet er at lære, de resulterende programmer vil næppe have meget praktisk værdi uanset hvor godt de falder ud.

Lige netop VBA ser jeg dog heller ikke umiddelbart som nogen særligt oplagt kandidat.

Jeg vil også generelt mene at stærk typning er en god begynder feature, og en god feature i det hele taget, men ikke i så høj grad at det bør udelukke andre gode kandidater.

Jan Mortensen

Har et par kolleger som har knægte og de har haft gode erfaringer med den oprindelige Lego Mindstorm. De er senere gået videre med C#

Har selv været møllen igennem; startede i 9 klasse med Basic, PolyPascal i gymnasiet. Da jeg under studiet havde fået sparet sammen til den første PC (de kostede penge dengang) blev det TurboPascal og senere ASM, C, C++, JAVA, C#

Per Erik Rønne

@Robert Larsen,

Det ser nu ellers ud til at pascal stadig bruges i sin Delphi-form, der som bekendt er udviklet fra Compas / Turbo Pascal / PolyPascal. Ja, kært barn har tydeligvis mange navne.

Den seneste version af Delphi synes at være fra i år, og giver i dag udviklingsmuligheder til Windows, OS X og iOS. Man sætter blot mål-platformen som en oversætteroption:

http://edn.embarcadero.com/article/41599

Ja, se selv.

Jeg har i øvrigt en bror der stadig udvikler i Delphi, men han ejer nu også sit eget firma. Der ikke har edb som primært arbejdsområde.

Kim Bøndergaard

Jeg tror det er vigtigt at Frederik programmerer noget der giver mening for ham. Fx apps til sin telefon - og så tror jeg ikke sproget er så vigtigt. Min egen søn på 13 fik den ide at lave en minecraft web side og så måtte han jo "studere" lidt html.
Personligt har jeg selv tidligere haft stor fornøjelse af PC Robots i flere varianter. Den jeg brugte mest var til windows og tog .COM filer som input. Om de var lavet i ASM, C eller basic var underordnet. Jeg erindrer også en variant hvor game engine mm var integrereret i en IDE hvori et dedikeret sprog (C lignende) skulle bruges til at styre de små krigsmaskiner. Dette har jeg flere gange i nostalgiske øjeblikke (desværre forgæves) søgt efter med håb om at ungerne ville falde for det.

Andreas Andersen

Det lyder lidt som om, det skal gøres til fars projekt, og det sjove ved udforskning af enhver forunderlig verden forsvinder hurtigt, hvis forældre skal styre vejen. Det kan selvfølgelig være han specifikt har bedt om råd, men så er han da vist en usædvanlig 14-årig.

Jeg lærte mig i øvrigt at programmere på en Commodore 64, da jeg var 12. Ah, det var tider.

Steen Eugen Poulsen

jeg finder de fleste af forslagene her meget dårlige, fordi sproget ikke i sig selv tvinger en person til at lære at gøre tingende ordentligt.

Der er alt for mange smuthuller I Java, Perl og alle de andre der gør at folk bliver ELENDIGE til at skrive kode fordi de ikke er tvunget til at gøre det ordentligt.

Så start med C eller andre strukturer sprog, så vil personen lære at skrive meget bedre kode I Perl, Java og alle de andre.

Jeg lærte mig selv C til at starte med, tror jeg var yngre end 14 og det har været en hel utrolig hjælp i alt andet jeg har rørt ved siden da.

Henrik Dorf

fortæl mig hvad han gerne vil lave og jeg skal fortælle dig hvilket sprog han skal lære. Det kunne muligvis være smart at starte med at oprette en database og lære sql , for derefter at opleve behovet for at kunne anvende et program til at håndtere disse data. Eller anvende arduino til at tænde lamper og slukke dem igen (formål?). Eller assembler fordi det er sjovt at forstå computerteknologi. Men at lære et sprog for at løse opgaver det ikke er egnet til vil fratage ham lysten til at programmere.....

Christian Nobel

Hvorved vi kommer tilbage til at første opgave også gerne skal blive en succes.

F.eks. drop en knap på en form, lav en input og en output boks, og en eller anden beregning der giver mening i skole sammenhæng (f.eks. noget så klassisk som fahrenheit til celsius), tryk compiler og se det virker.

Til det brug er Lazarus (FreePascal) altså ideelt - der er code completion, strong typing, og en compiler der tager hånd om en, og endelig så munder det hele ud i en binary, herudover kan det bruges cross platform, og som plus er det OSS.
Endvidere har Lazarus et utroligt godt og hjælpsomt forum.

I øvrigt kunne jeg godt tænke mig at vide hvad man rent konkret mener ikke kan laves i Pascal (for at være ærlig så er jeg lidt irriteret over der er en vis form for "sprogsnobberi" der på en hysterisk måde dømmer nogle sprog som gammeldags, på en måde der minder om en catwalk i Paris' modeverden)?

Palle Simonsen

Re. Pascal:
Da Pascal er turing komplet (ligesom de fleste andre programmeringssprog, der er nævnt i denne tråd) er der i princippet intet, der ikke kan laves i Pascal. Når det er sagt er mit råd, at Frederik og far Peter skal skæve til princippet om mindst mulig kompleksitet til at vælge det sprog, hvor Frederik hurtigst og lettest kan få nogle successoplevelser med nogle konkrete opgaver uden at få nogle alt for dårlige vaner fra start. Et godt og hjælpsomt IDE, fortolket vs. oversat og helst ingen typesystem eller anden dekoration, der står i vejen for kreativiteten. Det handler om skaberglæde og gode vaner. Professionelle sprog som C, Pascal, C# og Java kræver simpelthen alt for meget udenoms, før man er i gang.

@Peter: Hvad nåede I frem til?

Per Erik Rønne

Det er netop den stærke typing, der er Pascals store fordel for dem der skal lære at programmere.

Samtidig med at sproget er skabt som indlæringssprog.

Her i øvrigt i modsætning til C-familien, der er præget af meget kryptiske programstrukturer, med alt for mange parenteser og lav-niveau stof. Her er pascals begin-end og klare løkkestrukturer bedre.

I øvrigt findes der da masser af IDE-udviklingsmiljøer til Pascal. Allerede Compas var da af den type, og her i modsætning til Pascal MT+ for cp/m. For slet ikke at tale om det Pascal 1000, vi brugte på datalogi 0. Programkoden skrevet ind på hulkort, og en samlet dat0 kørsel i timen ... på RECKU.

Torben Mogensen Blogger

Du bør undgå objektorienterede sprog, da beregningsmodellen er unødigt uigennemskuelig. Generelt skal det være nemt at følge med i, hvad der sker. Derfor vil jeg foreslå enten et simpelt imperativt sprog såsom Pascal eller et simpelt funktionelt sprog såsom Standard ML eller Scheme. Dernæst vil jeg foreslå, at der bruges en simpel teksteditor i stedet for en IDE -- sidstnævnte kan være rart, når man skal lave et stort system, der bruger masser af moduler og biblioteker, men det er efter min mening hæmmende for indlæringsprocessen.

Jan Hansen

Han skal lære Prolog først, fordi det er meget sværere at lære når først han er fanget i procedurale tankegang fra assembler, C/C++, Java, C# m.fl.
Det er svært at lære prolog hvis man kan Java, men ikke omvendt.

Torben Mogensen Blogger

Selv om der kan være ting, der taler for logiksprog til undervisning i programmering, synes jeg, at beregningsmodellen i Prolog er for kompliceret og uoverskuelig: Man kan ikke nøjes med at tænke på logikniveauet, man bliver meget hurtigt nødt til at bruge kontroloperatorer (cut osv.), som ødelægger den logiske tangegang.

Log ind eller Opret konto for at kommentere