nrk.no

Norge trenger utviklere: Her er fire morsomme måter å lære seg koding

Kategorier: Tips & Tricks & Utdannelse

Stort behov for utviklerkompetanse. Foto og montasje: Eirik Solheim / NRKbeta

Det kan virke som om arbeidslivet har et nesten utømmelig behov for flinke programmerere. Overskrifter og stillingsannonser har pekt i samme retning i flere tiår: Ledige stillinger, høye lønninger, god trivsel og spennende utfordringer.

Og selv om du ikke skal arbeide som programmerer så gjør det forbausende mange jobber enklere om du har litt bedre kunnskap om hvordan datamaskiner fungerer.

Littlebits: Små moduler, mange muligheter. Foto: Eirik Solheim / NRKbeta

Nettet er fullt av ressurser og kurs, men motivasjonen kan likevel være vanskelig å finne. Vi har blitt vant til å se datamaskiner gjøre så uendelig mye mer spennende ting enn det vi klarer når vi tar våre første skritt inn i programmeringens verden.

Da kan løsningen være å heller programmere enkle små datamaskiner som kan gjøre fysiske sprell. Som å få en motor til å starte, lys til å blinke, eller melde fra om temperatur og fuktighet.

Å komme i gang med å lage dine egne små maskiner er morsommere og enklere enn du tror. Her er fire metoder. Sortert etter økende vanskelighetsgrad.

1. LittleBits

Med disse små dingsene kan du starte uten å skrive en eneste linje med kode. Settene består av små moduler som du setter sammen ved hjelp av magneter. Det blir nesten som legoklosser. Men alle klossene har en spesiell funksjon.

Tre klosser. En for strøm, en for å trigge ved lyd og en for å lyse. Foto: Eirik Solheim / NRKbeta

Klossene deles inn i forskjellige kategorier. For eksempel er noen «dersom dette skjer»-klosser. Det kan være så enkelt som en bryter eller en sensor som trigges av lyd eller lys. Etter en slik kloss setter du som oftest på en kloss som faktisk gjør noe. Som å starte en motor, lage en lyd, slå på et lys osv.

Du skal ikke leke så lenge med dem før du har lært en del enkle prinsipper for programmering.

Settene koster fra ca 400 kroner og oppover. Du kan begynne med et enkelt sett og så bygge på etter hvert.

2. Microbit

Denne fine lille datamaskinen er utviklet av BBC og blir brukt i programmeringsopplæring i mange land.

Microbit er spesialdesignet for programmeringsopplæring. Foto: Eirik Solheim / NRKbeta

Microbit er en ganske avansert liten sak med flere innebygde sensorer og lys. Den er også laget slik at du enkelt kan koble til eksterne enheter og motorer. Dermed kan den lille brikken styre både roboter og droner.

Enkel blokkprogrammering på norsk. Skjermbilde fra Microbit.org

Du lager programmene på datamaskinen din og laster enkelt over til Microbit via USB-tilkoblingen.

Med mikrobit kan du starte med enkel blokkprogrammering som er en visuell og fin måte å komme igang. Du kan hele tiden veksle mellom de grafiske og tydelige blokkene og vanlig kode, slik at du får en gradvis overgang til mer avansert programmering.

Bytt enkelt mellom programmeringsblokker og kode. Skjermbilde fra Microbit.org

For blokkprogrammering med mikrobit kan du også velge norsk som språk og dermed komme igang enda tidligere. Her er også NRK Super igang med et prosjekt for å starte programmeringsopplæring ved hjelp av Microbit.

3. M5Stack

Dette er en svært spennende familie av produkter som er under rivende utvikling. Med dette systemet kan du bygge avanserte løsninger på en enkel måte.

M5Stack kommer i flere former og med et godt utvalg sensorer og tilbehør. Foto: Eirik Solheim / NRKbeta

Den opprinnelige M5Stack er en liten datamaskin med skjerm, sensorer og batteri. Du får enkelt koblet den til det trådløse nettet ditt hjemme og kan så komme i gang med å lage programvare i et tydelig grensesnitt på nett.

Med M5Stack kan du på samme måte som med Microbit begynne med enkel og visuell koding med blokker. Skjermbilde fra flow.m5stack.com

Her kan du også starte med blokkprogrammering og så gå over til vanlig kode etter hvert.

En M5Stack som overvåker vannmengde og temperatur i kaffemaskinen. Foto: Eirik Solheim / NRKbeta

Jeg har selv flere M5Stack i bruk hjemme allerede. Som klokker, til overvåkning av kaffemaskin og for å måle støv og luftkvalitet.

Dokumentasjon og stabilitet bærer fremdeles litt preg av at dette er et relativt nytt system, men det er allerede fullt brukbart og i en spennende utvikling.

4. Arduino

Dette er for de mer viderekomne. Men her har du full frihet. Arduinoplattformen har eksistert lenge og nettet er fullt av ressurser og eksempelkode. De kan programmeres på forskjellige måter, men det vanligste er å benytte et eget utviklingsverktøy for Arduino og programmere dem i et språk som kan minne om programmeringsspråket C.

Arduino gir uante muligheter men er mer komplisert å komme igang med. Foto: Eirik Solheim / NRKbeta

Den klassiske Arduino Uno er en moden og særdeles stabil plattform. Men de siste årene har flere små maskiner som kan programmeres på samme måte kommet til. To populære heter ESP8266 og ESP32. De er maskinmessig kraftigere enn en Uno og har også fordel av å ha innebygget trådløst nett.

De fleste enhetene i dette spekteret leveres uten noe operativsystem i bunn. Så her må du selv legge til kode og selv velge innganger og koble på sensorer. Til gjengjeld får du full frihet, lav pris og imponerende stabile enheter når de er ferdig satt opp.

En Arduino Nano som hjerte i det som etter hvert ble en boks for å styre avspilling av lydklipp. Foto: Eirik Solheim / NRKbeta

For akkurat ESP-enhetene har et prosjekt som kalles ESPeasy blitt mer og mer spennende. Dette er et slags operativsystem som du installerer og som så gir deg et enkelt webgrensesnitt for å administrere det hele. ESPeasy støtter mange sensorer, skjermer og enheter direkte. Og selv om du egentlig fjerner deg litt fra selve programmeringen ved å benytte det systemet så vil det gi deg økt forståelse for hvordan både store og små datamaskiner virker.

Flere muligheter

Dette var fire av mange spennende systemer. Gode gamle Lego har sin Mindstormsplattform og om du ikke nødvendigvis vil programmere dingser og sensorer har Scratch har vært inngangsporten til programmering for mange i årevis.

Og dere som allerede er igang, hva er deres beste anbefalinger?

11 kommentarer

  1. Øyvind Matheson Wergeland

    En fin oversikt, og fint å oppdage to for meg ukjente plattformer. Jeg synes det er verd å poengtere at micro:bit også støtter Python, som også kan brukes til langt mer avanserte programmer, og som brukes mye innenfor både forskning og utvikling av bl.a. big data og maskinlæring.

    For enkel spillprogrammering kom jeg over Löve, som ser ut til å slå an i heimen: love2d.org/
    Innføringer (på engelsk): simplegametutorials.github.io/

    Svar på denne kommentaren

  2. Jeg vil STERKT anbefale Lego boost fra 5-99 år. MYE bedre introduksjon til programmering enn tradisjonell Mindstorms. Etter min vurdering det beste produktet fra Lego noensinne, og en helt unik introduksjons til programmering, uten sidestykke.

    Svar på denne kommentaren

    • Audun (svar til Jesper)

      Skulle til å si det samme.
      LEGO Boost er så intuitivt at min 5-åring kan programmere med det.
      Men veldig fint å få en oversikt over hva man kan gå videre til.

  3. Da jeg selv ble «frelst» for programmering var det for den systematikken, ryddigheten, nøyaktigheten som kreves for å få et program til å fungere som det skal. Jeg har alltid senere sett på det som verdifulle egenskaper også i masse annen aktivitet, som gjerne alle kan utvikle, om de programmerer eller gjør noe helt annet.

    Og etter å ha undervist programmering til førsteårs ingeniørspirer på høgskole-nivå setter jeg pris på at det er litt annerledes… Jeg underviste på den tiden da tenåringene hadde fått seg PC og C-kompilator og på egenhånd lært seg å programmere. Her skulle ingen høgskolelektor komme og lære dem noe metodikk og gode prinsipper for utforming av programkode – dette kunne de!

    Det var var bortimot umulig å få «avlært» uvaner og dårlig metodikk fra fjortiser som har blitt 18-19 år og fast bestemt på at deres gutteroms-aktiviteter viser hvordan vi egentlig burde ha undervist programmering, etter det de har plukket opp her og der på internettet.

    At nye studenter har erfaring i å arbeide ryddig og systematisk og nøyaktig er kjempeflott. Gjerne på de plattformene som er presentert her – fordi de er «sine egne». Skal du lære deg programmering på høgskole- eller universitetsnivå er det så annerledes at du ikke trekker med deg uvaner fra gutterommet. (Selv om Arduino programmeres i C er hele apparatet rundt så forskjellig fra f.eks. en «desktop-applikasjon», og selv fra en app, at du er i en helt annen verden.)

    Det er mye lettere å lære opp en fullstendig nybegynner til å bli en god programutvikler enn å lære opp en som tror han kan alt fra før. Men det beste er en som er nybegynner i å skrive «store» programmer, men som kjenner behovet for systematikk og presisjon fra lignede aktiviteter. Og da gjerne gjennom alternativene som presenteres her – mye heller det enn vi, gcc og ubuntu på en PC!

    Svar på denne kommentaren

  4. Tjerand Silde

    Det er verdt å nevne at det finnes mange veiledninger på norsk på oppgaver.kidsakoder.no som kan brukes helt gratis av hvem som helst, og som har vert en viktig ressurs for alle norges skoler og kodeklubber de siste 5 årene.

    Svar på denne kommentaren

  5. Re: LittleBits:
    Du skriver at de koster fra 400,- og oppover. Har du sett disse prisene i Norge, eller er det kun en valutakonvertering av prisene på nettbutikken du har brukt her? For hva jeg kan se så kommer det på $140+ ekstra i sending også (UPS Worldwide Expedited).

    Svar på denne kommentaren

  6. Veldig bra oversikt! Norge trenger mye mer fokus på datadrevne løsninger og data science.

    Raspberry PI burde nevnes. Her kan micro Python fra micro:bit tas videre til virkelig Python. R PI krever riktignok litt kjennskap til Linux, men du verden for tilgjengelig Open Source biblioteker og fritt fram for tredje parts utstyrleverandører innen IoT, robotikk, smarthjem, analyse og mye mer.

    Svar på denne kommentaren

  7. Litt merkelig at du må kjøpe og lære deg elektronikk for å begynne å programmere. Hva med å nevne noe som ikke koster masse penger(?) hva med alt som er heelt gratis? Blir ikke flere programmere av dette

    Svar på denne kommentaren

Legg igjen en kommentar til sondre Avbryt svar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *. Les vår personvernserklæring for informasjon om hvilke data vi lagrer om deg som kommenterer.