Hvordan lære å programmere

Her kan du stille spørsmål vedrørende problemer og oppgaver i matematikk for videregående skole og oppover på høyskolenivå. Alle som føler trangen er velkommen til å svare.

Moderatorer: Aleks855, Gustav, Nebuchadnezzar, Janhaa, DennisChristensen, Emilga

Svar
Gjest

Har lyst å lære meg å programmere, men vet ikke hvor og hvordan jeg skal starte?
Akkurat nå har jeg absolutt null peiling og erfaring. Trenger sårt noen tips på hvordan jeg skal begynne? Bør jeg gå til anskaffelse av bøker? Virker kanskje litt rart å ha null bakgrunnserfaring, men har så lyst til å drive litt med dette på fritiden..
All tips tas i mot!
Aleks855
Rasch
Rasch
Innlegg: 6855
Registrert: 19/03-2011 15:19
Sted: Trondheim
Kontakt:

Hei,

Jeg er utdannet dataingeniør, og jobber som programvareutvikler på heltid.

Jeg ville ikke anbefalt å kjøpe bøker riktig enda. Programmering er et felt som endrer seg litt fra år til år, så bøker går kjapt ut på dato. Derimot finnes det masse tutorials på YouTube, så det er ikke nødvendig å bruke penger heller.

Har du sett for deg et spesifikt språk å starte med? Hvis ikke kan det være greit å starte med de mer populære språkene som Java eller Python. Jeg lærte Java først, og brukte TheNewBoston sine videoer med stor fordel: https://thenewboston.com/videos.php?cat=31

Java er et språk som er veldig populært, både for små prosjekter på hobbybasis, og for store prosjekter for bedrifter. Dessuten er de fleste store programmeringsspråkene såpass like at hvis du finner ut at du vil lære et annet senere, så vil det være mye lettere enn det første, fordi du allerede har lært grunnprinsippene.
Bilde
Gjest

Er det mulig for deg, Aleks, å gi oss programmerings interesserte, nybegynnere, opplæring i grunnleggende programmering, hva nå enn det skulle innebære? Hadde vært til stor hjelp om du kunne linke til et par videor fra youtube her, som tar for seg grunnleggende programmering.
Markus
Fermat
Fermat
Innlegg: 767
Registrert: 20/09-2016 13:48
Sted: NTNU

Jeg ville anbefalt deg å starte med Python. Jeg tror selv at Java, og generelt alle andre objektorienterte språk kan bli litt heavy som nybegynner. Python er den desidert letteste introduksjonen man kan få til programmering.

Sjekk ut sentdex og TheNewBoston på youtube.

Hvis du virkelig ønsker en bok kan du se på "Automating the boring stuff with Python".
Aleks855
Rasch
Rasch
Innlegg: 6855
Registrert: 19/03-2011 15:19
Sted: Trondheim
Kontakt:

Python er også et objektorientert språk, i tilfelle det var noen tvil der.

Å si at Java er mer komplisert enn Python blir som å sammenlikne et eple med et eple. Når man skal lære seg de grunnleggende prinsippene for programmering, så er det som regel Java, C#, Python og PHP som står i front, fordi de er både nybegynnervennlige og robuste.

Som nevnt enig i at Python er OK, men jeg vil ikke kalle det bedre. Det er veldig tregt, det er fullstendig avhengig av indentering, det ser ikke forskjell på variabel-deklarasjon og -kall, m.m.

Slike ting gjør at man fort får semantiske feil under kompilering som er veldig vanskelig for en nybegynner å takle.
Bilde
Larsik
Cantor
Cantor
Innlegg: 105
Registrert: 08/09-2015 19:46

Er det vanskelig å henge med på programmeringsdelen når man studerer realfag hvis man har 0 forkunnskaper?
Johan Nes
Fermat
Fermat
Innlegg: 705
Registrert: 23/01-2012 12:56

Kanskje et tåpelig spørsmål, men hvor krevende er det å lære seg å programmere?

Jeg er selv i den situasjon at jeg har lyst å lære meg å programmere, men vet også at jeg har begrenset med tid... :(

For mine formål har jeg fått anbefalt Python, så tenker i alle tilfeller å starte med det. Om noen her tenker å studere matematikk, så vet jeg at Python er veldig populært i realfagssammenheng og er blant annet en satsing hos UiO.

PS: Har hørt at Udemy sine kurs er gode, men vet ingenting om de selv. Ser dog at de er ganske rimelige. Type 10 dollar (70 kroner omtrent) per kurs.
Markus
Fermat
Fermat
Innlegg: 767
Registrert: 20/09-2016 13:48
Sted: NTNU

Aleks855 skrev:Python er også et objektorientert språk, i tilfelle det var noen tvil der.

Å si at Java er mer komplisert enn Python blir som å sammenlikne et eple med et eple. Når man skal lære seg de grunnleggende prinsippene for programmering, så er det som regel Java, C#, Python og PHP som står i front, fordi de er både nybegynnervennlige og robuste.

Som nevnt enig i at Python er OK, men jeg vil ikke kalle det bedre. Det er veldig tregt, det er fullstendig avhengig av indentering, det ser ikke forskjell på variabel-deklarasjon og -kall, m.m.

Slike ting gjør at man fort får semantiske feil under kompilering som er veldig vanskelig for en nybegynner å takle.
Indentering er generelt en god programmerinsfilosofi, og at Python tvinger deg til det er bare bra for videre programmering spør du meg. Selv om mange språk ikke krever det, ser man selv hvor rotete det blir uten.

Jeg vil fortsatt si at Python er et bedre startspråk, da det tillater prosedyrebasert programmering, selv om Python er objektorientert. Java tillater ikke dette til like stor grad som python. Det aller enkleste eksempelet, "Hello World", viser jo forskjellen på Python og Java.

Java

Kode: Velg alt

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello, World");
    }

}
Python

Kode: Velg alt

print("Hello, World")
For en absolutt nybegynner tror jeg det er enklere å sette seg inn i Python da veien fra a til å inneholder mindre linjer enn i Java. Jeg vil også tørre å påstå at Python er mer lesbart enn Java, spesielt for en nybegynner. Enig i at Python ikke er det kjappeste språket, men er dette det viktigste for en nybegynner? Java tillater selvfølgelig mye mer for å lage programvare da GUI er mye enklere med Java. Pythons tKinter er noe skikkelig møkk.

Konklusjon
Jeg holder fortsatt en knapp på Python som det beste programmeringsspråket for en nybegynner, men er helt enig i at det finnes mange andre programmeringsspråk som er minst like bra om ikke bedre. Når man først har fått inn det grunnleggende bør man lære seg det programmeringsspråket som er mest relevant for det man vil drive med. Er det webutvikling, går man gjerne videre til PHP og Javascript. Er det programvareutvikling er C# og Java et naturlig valg.
Markus
Fermat
Fermat
Innlegg: 767
Registrert: 20/09-2016 13:48
Sted: NTNU

Johan Nes skrev:Kanskje et tåpelig spørsmål, men hvor krevende er det å lære seg å programmere?

Jeg er selv i den situasjon at jeg har lyst å lære meg å programmere, men vet også at jeg har begrenset med tid... :(

For mine formål har jeg fått anbefalt Python, så tenker i alle tilfeller å starte med det. Om noen her tenker å studere matematikk, så vet jeg at Python er veldig populært i realfagssammenheng og er blant annet en satsing hos UiO.

PS: Har hørt at Udemy sine kurs er gode, men vet ingenting om de selv. Ser dog at de er ganske rimelige. Type 10 dollar (70 kroner omtrent) per kurs.
Det er ikke veldig krevende å lære seg å programmere, men vil du bli god må du selvfølgelig legge ned tid - men sånn er det jo med alt man vil bli god i. Jeg tror du skal klare å få den grunnleggende forståelsen av programmering inn ganske fort, da det i bunn og grunn er veldig logisk. Det er dog forskjell på å kunne programmering, og det å være god på det. Man kan løse en oppgave med skikkelig skitten kode som kjører tregt, men hvis man derimot er litt erfaren vet man hvordan koden skal kjøre så fort som mulig, og hvordan man skriver "god" kode.

Python er populært i realfagssammenheng av mange grunner. Blant annet har den godt etablerte mattemoduler som NumPy og SymPy. Jeg tror at den er populær i realfagssammenheng da det er veldig enkel å skrive kort og konsis kode for å utføre en oppgave. Må dog si at hvis man skal drive med seriøs "numbercrunching", og haugevis med kalkulasjoner, er nok C++/C et bedre valg, da disse er MYE kjappere enn Python.
Gustav
Tyrann
Tyrann
Innlegg: 4555
Registrert: 12/12-2008 12:44

Enig med mattemarkus her. Python er det man bør begynne med som første programmeringsspråk. Spesielt for de som studerer matematikk og fysikk. (Mulig det er en annen historie for de som studerer datateknikk.)
bjorm

Anbefaler at man starter med Starting out with python for nybegynnere. Det er bra bok som gir det grunnleggende i programmering.
Svar