Side 1 av 1

Hvordan lære å programmere

Lagt inn: 09/07-2017 14:04
av 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!

Re: Hvordan lære å programmere

Lagt inn: 09/07-2017 14:50
av Aleks855
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.

Re: Hvordan lære å programmere

Lagt inn: 10/07-2017 12:20
av 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.

Re: Hvordan lære å programmere

Lagt inn: 10/07-2017 18:23
av Markus
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".

Re: Hvordan lære å programmere

Lagt inn: 10/07-2017 18:31
av Aleks855
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.

Re: Hvordan lære å programmere

Lagt inn: 10/07-2017 18:37
av Larsik
Er det vanskelig å henge med på programmeringsdelen når man studerer realfag hvis man har 0 forkunnskaper?

Re: Hvordan lære å programmere

Lagt inn: 10/07-2017 18:50
av Johan Nes
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.

Re: Hvordan lære å programmere

Lagt inn: 10/07-2017 20:14
av Markus
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.

Re: Hvordan lære å programmere

Lagt inn: 10/07-2017 20:20
av Markus
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.

Re: Hvordan lære å programmere

Lagt inn: 15/07-2017 17:04
av Gustav
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.)

Re: Hvordan lære å programmere

Lagt inn: 24/11-2020 16:44
av bjorm
Anbefaler at man starter med Starting out with python for nybegynnere. Det er bra bok som gir det grunnleggende i programmering.