Fem utraditionelle råd til nybegynderprogrammører

12. maj 2016 kl. 13:3124
Python, F# eller Java? Og hvad skal jeg kaste mig over efter 'Hello World'? For nybegyndere i programmering er der et par råd, som ikke står i lærebøgerne.
Artiklen er ældre end 30 dage
Manglende links i teksten kan sandsynligvis findes i bunden af artiklen.

Måske er du ung og kigger frem mod studievalget, eller måske vil du gerne lære et nyt fag. Eller måske er du bare nysgerrig. Der findes mange gode lærebøger og online-vejledninger, der kan hjælpe nybegyndere i gang med at lære at programmere, men især for dem, der går i gang på egen hånd uden en mentor, så her er en håndfuld råd, som du ikke finder i lærebøgerne.

Hvad skal jeg programmere?

Du har skrevet 'Hello world' og har måske også gennemført et par programmeringsøvelser. Nu har du styr på grundlæggende syntaks og kender dit udviklingsværktøj, men føler måske, at du har brug for at lave noget, der kan noget rigtigt, før du bare øver videre.

Her er det let at gå i stå, fordi du tænker, at dit program skal kunne ét eller andet nyt. Men det behøver det slet ikke. Som dette blogindlæg påpeger, så er det helt i orden at genopfinde den dybe tallerken, hvis man er ved at øve sig på at blive keramiker.

Denne journalist, som selv er i færd med at genopfriske sine særdeles rustne programmeringsfærdigheder, skriver eksempelvis forskellige udgaver af en simpel terningrulsapplikation, hver gang et nyt sprog skal læres. En simpel lommeregner er også et godt eksempel.

Artiklen fortsætter efter annoncen

Ingen af disse applikationer er noget, verden har brug for, men det er enkle projekter, der giver mulighed for at prøve sine spæde færdigheder af på at bygge en færdig applikation, der er et vigtigt skridt videre fra programmeringsøvelserne.

Sprog bliver forældede

Valget af programmeringssprog er nærmest religion blandt udviklere, og det gælder ikke mindst, når spørgsmålet lyder, hvilket sprog der egner sig til nybegyndere. Men det er vigtigt at være opmærksom på, at der kan være mange forskellige grunde til, at man begynder at programmere.

Ligesom nogle kaster sig over faget, fordi de gerne vil have et job som softwareudvikler, så ender andre med at blive selvlærte programmører, fordi programmering er et nødvendigt gør-det-selv-redskab i et andet projekt - som eksempelvis at få en hjemmeside op at stå.

Det vigtigste er imidlertid ikke, om du begynder med C++ eller PHP, men at du lærer de grundlæggende principper, for hvis du står foran 30-40 års softwareudvikling, så skal du være klar til at sadle om undervejs.

Artiklen fortsætter efter annoncen

Sprog og værktøjer bliver nemlig forældede eller går af mode, som det påpeges i dette blogindlæg om Ruby on Rails.

Derfor er dit valg lige nu ikke så vigtigt, som at du senere er parat til at lægge sproget bag dig og gå videre med noget nyt, når det er dét, der er brug for. I gør-det-selv-verdenen kan et svingbor stadig bore fine huller, men hvis du vil være tømrer, så vil kunderne nok foretrække, at du stiller op med en elektrisk boremaskine.

Så lær hvad som helst

Af samme grund er det heller ikke vigtigt, om du vælger lige det ene eller det andet sprog. Det vigtigste er, at du vælger et sprog, hvor vejledninger, dokumentation, værktøjer og muligheden for at få hjælp passer til dit temperament.

Hvis du vil ud og arbejde med softwareudvikling, så er der nemlig ikke ét eller to gyldne programmeringssprog, der sikrer dig beskæftigelse. Det skifter hele tiden, og sprogene går ofte gennem et forløb fra up-and-coming til mainstream dominans videre til løbende vedligeholdelse og endelig til obskur 'vi håber, det virker længe nok til, at vi har noget nyt klar'.

Som sagt handler det at være udvikler ikke om at kunne C++ eller C#. Det vigtige er eksempelvis at kunne finde ud af, hvordan en problemstilling i den virkelige verden kan løses med objektorienteret programmering, og hvordan det vil se ud med et funktionelt sprog i stedet.

Læs dette blogindlæg for et godt argument for, at dit valg af sprog ikke er vigtigt, men at der selvfølgelig er sprog, der lige her og nu kan give bedre chancer for at begynde en karriere som softwareudvikler.

Selv de dårlige sprog

Bortset fra nogle få sprog, der udelukkende er skabt for at frustrere dataloger, så er der ingen sprog, der er rigtigt dårlige. I dette blogindlæg argumenteres for, at QBASIC stadig holder.

BASIC var ét af 80'ernes mest populære begyndersprog, men det er også et sprog, som virkelig indeholder nogle af de ting, der er decideret fy-fy i dag. Man kan endda argumentere for, at BASIC lærer dig at programmere på en forkert måde.

Artiklen fortsætter efter annoncen

Men det vigtigste er at komme i gang og kunne holde begejstringen ved lige. Det kan være svært, hvis hver ny idé kræver et mindre slagsmål med at oprette en grafisk brugerflade. Så hvis BASIC er dét, der får dig i gang med at skrive mere end 'Hello world', så er det ikke et rigtig dårligt sprog, hvis man ser det som et skridt på en længere rejse.

Ignorér dem, der siger, dit valg er forkert

Der findes mange softwareudviklere, der er tålmodige og gerne vil lære fra sig på forummer eller code camps. Men der findes også mange, der ikke orker endnu en nybegynder, der spørger om noget, der blev besvaret i femte lektion på første semester af datalogistudiet.

På Reddits underforum for nybegynderprogrammører dukker trådene med jævne mellemrum op om tonen, visse erfarne programmører bruger over for nybegyndere. Det er især dem, der søger hjælp online på forummer som Stack Overflow, der oplever at blive irettesat på en knapt så pædagogisk vis.

Det skal man ikke tage så tungt. Ja, det er en god idé at stikke en finger i jorden og prøve at blive fortrolig med søgefunktioner på disse forummer og lige læse retningslinjerne igennem. Ofte er der særlige underforummer for spørgsmål fra begyndere. Og lad være med at bede om svaret på de opgaver, du får udleveret på studiet.

En klassisk trigger for de erfarne programmører, er valget af sprog (se ovenfor). Det er de erfarne programmører, der bør lære at tale pænt, for begynderen er slet ikke nået dertil i sin læreproces, hvor valget af sprog eller platform er baseret på erfaring, men snarere på tilfældigheder. Så til de erfarne: Bid sprogdebatten i jer og giv en hjælpende hånd eller find på en undskyldning for at lade være. Ingen får noget ud af at skræmme en begynder væk med en lang rant om, hvorfor PHP er det helt forkerte valg.

Eller lad helt vær!

Der er stor efterspørgsel på softwareudviklere, men bid mærke i, at det handler om at udvikle software, og det omfatter mere end blot at kunne implementere 10 forskellige sorteringsalgoritmer i C++. I denne artikel fra Techcrunch lyder anbefalingen, at man ikke skal lære at programmere.

Der tales ganske vist meget om, at alle burde lære programmering i skolen, og hvordan vi mangler folk til Java, eller hvad der nu lige er efterspørgsel på for tiden.

Men branchen har først og fremmest brug for folk, der - som skrevet oven for - kan omsætte virkelighedens problemer til noget, der kan løses med en computer. Det er dog noget, branchen selv kan have lidt svært ved at indse, og derfor bliver der lige nu mest spurgt efter programmører og ikke problemanalytikere.

24 kommentarer.  Hop til debatten
Denne artikel er gratis...

...men det er dyrt at lave god journalistik. Derfor beder vi dig overveje at tegne abonnement på Version2.

Digitaliseringen buldrer derudaf, og it-folkene tegner fremtidens Danmark. Derfor er det vigtigere end nogensinde med et kvalificeret bud på, hvordan it bedst kan være med til at udvikle det danske samfund og erhvervsliv.

Og der har aldrig været mere akut brug for en kritisk vagthund, der råber op, når der tages forkerte it-beslutninger.

Den rolle har Version2 indtaget siden 2006 - og det bliver vi ved med.

Debatten
Log ind eller opret en bruger for at deltage i debatten.
settingsDebatindstillinger
24
18. maj 2016 kl. 10:09

Derudover plejer jeg at forholde mig til Tiobe indekset - se <a href="https://www.tiobe.com/tiobe_index">https://www.tiobe.com/tiobe_index</a…; - der over en 15-årig periode har peget på Java.

Uha uha, sidste gang jeg forholdt mig til Tiobe herinde blev jeg hånet helt ned i kælderen af sprogsnobberne - men det var måske fordi at jeg tillod mig at referere til Tiobe omkring at Delphi/Object Pascal stadig bliver brugt i rimeligt omfang.

23
18. maj 2016 kl. 09:55

Den forstår jeg ikke: Det eneste jeg kan se man ikke har lært ved ikke at blive undervist i Java eller C#, er detaljerne i Java eller C#. Og da disse alligevel er forældede om 5-10 år, skal en uddannelse netop ikke spilde studerendes tid med at lære dem den slags, for det skal man alligevel løbende indlære på jobbet.

Min pointe er, at uanset hvad man vælger som eksempelsprog, kan man lære at programmere. At tvinge en indsigt igennem hos den studerende; at sproget ikke hverken kan eller skal betragtes som et endeligt valg, finder jeg arrogant, når man kan nøjes med at fortælle dem det. De fleste erkender det temmelig sikkert helt automatisk båret af den samme nysgerrighed som fik dem til at vælge studiet. Da jeg læste var eksempelsprogene C++ og MASM krydret med en håndfuld specialanvendelses-sprog. Det har da ikke fået mig til at hænge fast dér.

22
16. maj 2016 kl. 14:38

Jeg er enig i at det vigtigste er at komme i gang med 'noget'.

Derudover plejer jeg at forholde mig til Tiobe indekset - se https://www.tiobe.com/tiobe_index - der over en 15-årig periode har peget på Java.

PS. Jeg er bestemt ikke neutral, da jeg har skrevet 3 danske lærebøger i programmering (https://javabog.dk).

21
16. maj 2016 kl. 00:45

Jeg tror ikke at sproget betyder det store, det er nok nærmere vigtigt om man er villig til at bruge tiden det tager at mestre det at programmere. Uddannelse er en stor hjælp men det kan heller ikke stå alene, det kan dog lede en på den rette sti og lære en at have et øje for de vigtigste aspekter og faldgruber.

Personligt hader jeg når der går "programmerings sprog" i den, fokus forsvinder lynhurtigt fra problemet der skal løses. Jeg vil påstå at en kvaliteten af udvikleren betyder alt og sproget indenfor rimelighedens grænser er sekundært.

Jeg savner absolut ikke trykte dokumentation, stackoverflow er da et af det 21 århundredes nye 7 vidundere :)

20
15. maj 2016 kl. 08:37

Rune Jensen:

Der er intet man ikke kan lave, hvis man har dokumentationen.

Det har du ret i - jeg savner i den grad, at man gør sig umage med manualer og dokumentationer på samme måde, som jeg synes, man gjorde "i gamle dage". I de gode gamle windows 3.1-dage kunne jeg oven i købet ud fra en på loppemarked indkøbt DOS-manual foretage mindre indgreb i BIOS og partitioning på egen hånd. Den var helt genial i sin opbygning, virkeligt gennemtænkt, logisk og overskuelig.

Ak ja - det var den gang.

18
14. maj 2016 kl. 09:43

Det ville svare til at tvinge danskstuderende til at praktisere grammatik på islandsk for ikke at de lære den danske udenad.

Da jeg arbejdede i Island, skulle jeg jo lære Islandsk, og så skal sådan lærdom jo bruges. Så jeg gik ud for at købe smøger og bad om "et packa Prince og et packa eldspytir".

Jeg fik en pakke prince og en dåse Egil's Bitter, som iøvrigt er non alkohol øl.

Islandsk er nu ikke så svært. TV hedder f.eks. sjónvarp og computer hedder tolvu og sådan er det hele vejen igennem.

De har han og hun køn, ved hankøn ender ordene på -ur og hun køn ender de gerne på -ir.

Jeg spurgte for sjov en indlænding om ordet ur var hankøn, så man sagde urur, men det hedder faktisk klocka, og det er så hunkøn. Så røg den joke.

Hvorom alting er, så har jeg lært mig, at det absolut første man skal lære på et nyt sprog er "Hvordan siger man dette på [indsæt sprog]". Det gør det nemmere at arbejde sig op fra intet ordforråd, og man får ordet udtalt også.

Man kan vel for så vidt også gøre det samme med programmeringssprog. F.eks. spørge hvordan man laver en løkke i X-sprog. Syntaksen er meget forskellig fra basic til assembler til javascript her.

16
14. maj 2016 kl. 00:01

Jeg er ikke enig. Hvis der er nogen som kommer ud fra en uddannelse med den nævnte holdning, er det noget andet de ikke har lært på uddannelsen og ærligt talt synes jeg ikke jeg møder den pågældende form for naivitet ret ofte. Det ville svare til at tvinge danskstuderende til at praktisere grammatik på islandsk for ikke at de lære den danske udenad.

Den forstår jeg ikke: Det eneste jeg kan se man ikke har lært ved ikke at blive undervist i Java eller C#, er detaljerne i Java eller C#. Og da disse alligevel er forældede om 5-10 år, skal en uddannelse netop ikke spilde studerendes tid med at lære dem den slags, for det skal man alligevel løbende indlære på jobbet. Man skal derimod have værktøjerne til at forstå de nye teknikker og bruge dem rigtigt.

Du kan slet ikke sammenligne programmeringssprog med menneske sprog. Din analogi holder derfor ikke. (Derudover beskæftiger dansk-studerende rent faktisk sig også med de andre nordiske sprog.)

15
13. maj 2016 kl. 15:13

Da min ene søn var 6-7 år, havde han pludseligt på egen hånd via sin commodore64 og en båndstation programmeret sit lille lego-tog til at køre frem og tilbage på skinnerne, hvilket han stolt præsenterede for mig. Triumf!

Ingen hjælp fra mig, for det var langt over mit niveau. Jeg kan intet programmering - jeg aner ikke, hvordan han gjorde :-) Men det siger mig, at Basic (for tror jeg, at det var) må være ret velegnet til at lære grundlæggende programmering (hvis jeg nogensinde skulle få sådanne lyster).

13
13. maj 2016 kl. 13:26

Jeg tror uddannelserne begår en stor fejl ved at bruge sprog som Java og C# i undervisningen: Da sprogene bruges i virksomhederne, tror de studerende, at de skal blive gode til netop det sprog, og ikke lære programmeringsteknikker generelt.

Jeg er ikke enig. Hvis der er nogen som kommer ud fra en uddannelse med den nævnte holdning, er det noget andet de ikke har lært på uddannelsen og ærligt talt synes jeg ikke jeg møder den pågældende form for naivitet ret ofte. Det ville svare til at tvinge danskstuderende til at praktisere grammatik på islandsk for ikke at de lære den danske udenad.

12
13. maj 2016 kl. 13:26

Der er ofte rigtig mange nye som er interesserede i at gøre noget med en computer, men ikke gider "spilde tiden" ved at lære et "forkert" programmerings sprog. Og de bliver tit frustreret når man siger at der ikke er et "forkert" sprog.

Og de kan oftest ikke forklare hvad det rent faktisk er de vil med computeren. De har en masse ideer, men kender ikke ordene der skal bruges til at formidle dem.

Så jeg har efter hånden vendt mig til at sige "Python". Og når først de er kommet igang, så finder de hurtigt ud af hvad der rent faktisk interesserer dem. Og løber i den retning i stedet for.

Og netop fordi Python er så "nemt"/"ligetil" så spilder de ikke tiden med vanvittigt tekniske compiler fejl, som bare er demotiverende for at prøve noget nyt.

11
13. maj 2016 kl. 13:16

Synes der er verden til forskel i hvordan du skyder dig selv i foden, om du bruger native-, managed- eller script-sprog. Sjældent at man har uendelig tid til at starte forfra :)

Der menes jo ikke et valg der gøres foran et specifikt projekt, men et valg der gøres foran processen i at lære at programmere. Netop dér har man netop "uendelig" tid. Foran den specifikke opgave, vil jeg tro at få vil være uenige i, at man bør have lært at programmere først og først derefter begynder at kigge på at læse en egentlig opgave. Vælger man imidlertid at lære henad vejen, hvilket bestemt også kan give mening, må man acceptere at starte forfra når den proverbiale hammer ikke længere passer til sømmet eller acceptere det resulterende kompromis, og så i øvrigt være glad for at man jo faktisk lærte at programmere alligevel, selvom produktet ikke blev det man sigtede efter :-).

10
13. maj 2016 kl. 11:25

Og selv om det er politisk ukorrekt, så er Basic faktisk ikke helt tosset, især hvis man holder sig til en simpel Basic og det letter også forståelsen hvis man er tættere på jernet, og ikke omklamret af et framework.

Olimex har denne lille dims, som kan tilsluttes en monitor og keyboard, og så programmeres i Basic - og man kan styre porte og tænde og slukke LEDs, dvs. direkte belønning for indsatsen:

https://www.olimex.com/Products/Duino/Duinomite/DUINOMITE-MINI/open-source-hardware

Why Johnny can’t code:https://www.salon.com/2006/09/14/basic_2/

9
13. maj 2016 kl. 10:57

Jeg tror uddannelserne begår en stor fejl ved at bruge sprog som Java og C# i undervisningen: Da sprogene bruges i virksomhederne, tror de studerende, at de skal blive gode til netop det sprog, og ikke lære programmeringsteknikker generelt.

Derfor bør uddannelsesinstitutionerne vælge sprog, som ikke står i job-opslagene.

8
13. maj 2016 kl. 10:09

Beregning af kvadratrod via programkode var et af mine første programmer. Derefter vidste jeg en del om flydende kommatal og manglende præcision samt uendelige løkker.

Når man har opnået kendskab til den manuelle beregning, så er det eneste rigtige selvfølgelig at bruge en standardfunktion, hvis man kan kende forskel på SQR() og SQRT().

Hvis man har problemer med at beregne SQRT(2), så kan man snyde ved at måle et A4-papir med en lineal: 297/210 = SQRT(2)https://www.youtube.com/watch?v=5sKah3pJnHI

7
13. maj 2016 kl. 09:25

Når man vil lære at programmere, kan det være fristende at bruge nogle af de avancerede biblioteker, der tillader grafik eller interaktion. Men efter min mening, bør man ikke bruge biblioteksfunktioner, som man ikke ved præcis, hvad gør. Så det er f.eks. i orden at bruge funktioner såsom kvadratrod, tekstlæsning/skrivning og sågar funktioner, der indlæser et bitmap i et array eller omvendt. Det kan godt være, at dine programmer ikke er specielt sexede, men du skal kunne forklare præcis, hvad der sker i hver linje i din kode. Ellers har du ikke lært at programmere, men blot at kopiere og mutere.

5
12. maj 2016 kl. 21:50

Jeg lærte faktisk en hel del ting om både bash programmering og fandt et par gode tricks efter jeg endevendte en meget gammel apache version, altså version 1.3.0. Så jo, det bedste man kan gøre at kaste sig ud i sindssyge ting. Det lykkedes mig oven i købet at finde et par fejl, hvilket jeg egentlig ikke havde regnet med for nogle af de fejl jeg fandt eksistere åbenbart også i den seneste version som er 1.3.42, hvilket jeg ikke helt havde regnet med, men sikkert er det at det var en oplevelsesrigt projekt.

4
12. maj 2016 kl. 21:18

Tag et eller anden plat Kina ting eller legetøj og få det til at gøre noget sjovt.

https://spritesmods.com/?art=main

Forfærdende* få programmører har nogen ide om hvad det foregår inde bag deres yndlingssprog og alt for mange har masser af intelligens men ikke nok fantasi ;-)

*) Ja, det vil sige - jeg har tjent ret gode penge på Board Support Packages og Linker Options, fordi jeg er fra "dengang der var dinoer" ... men nogen skal jo tage over.

3
12. maj 2016 kl. 17:59

kan du programmere alle sprog

Synes der er verden til forskel i hvordan du skyder dig selv i foden, om du bruger native-, managed- eller script-sprog. Sjældent at man har uendelig tid til at starte forfra :)

2
12. maj 2016 kl. 16:39

En eller anden af de store skrev engang, at folk, der var begyndt med BASIC, var ødelagte for livet. Det er ikke rigtigt. Folk, der er begyndt med BASIC, har i den grad lært behovet for struktur at kende. Til gengæld kan de blive lidt for glade for "bondage-and-disciplin" sprog.

1
12. maj 2016 kl. 15:12

kan du programmere alle sprog (bortset fra LISP), det er kun spørgsmål om et sted at lege med sproget og så 2 formiddage og en manual.