Vad är programmering?

En kort förklaring av programmering

Programmering är generellt formuleringen av tydliga instruktioner för någon eller något att följa.

När vi pratar om programmering är det allt som oftast datorer det handlar om men rent principiellt så är det inte någon fundamental skillnad mellan att säga åt en dator att rita en graf över vattentemperaturer på badplatser än att förklara för en människa hur den ska göra det. Skillnaden är att datorn är dum, fantasilös och väldigt snabb.

Varför går det då inte att bara säga till datorer ”rita en graf över vattentemperaturerna på sveriges största badplatser” och så gör den det? Svaret är att det gör det, men man måste se till att datorn vet vad rita innebär, vad en graf är och att den vet både vilka badplatserna är, hur temperatur betecknas och att du antagligen vill att den andra delen av stapeln är tid.

Om det tycks väldigt krångligt så kan du ju fundera över hur många år det tog dig att lära dig att rita en graf från grunden. Hur gammal var du när du först förstod vad läraren menade? Troligen en bit in i tonåren. Så datorn är egentligen väldigt väldigt snabb på att lära sig, men den kan väldigt lite från början.

Lite historik

Faktum är att bilden vi har av de första datorerna som stora rum av radiorör som blinkar och har mindre beräkningskraft än din första mobiltelefon är en sanning med modifikation. De första datorerna betecknades inte som ”computers” utan som ”electronic computers” och däri ligger en idag föga känd faktoid. Begreppet ”computer” har nämligen funnits åtminstone sedan 1600-talet då det benämnde en person som sysslade med att utföra beräkningar och då inte nödvändigtvis en högt utbildad forskare utan ofta någon som bara fått grundläggande instruktioner i hur den skulle utföra vissa repetitiva uppgifter.

Varför då? Jo, redan långt innan elektroniken var med på kartan hade man stora behov av tabeller för att kunna göra vissa uppskattningar till exempel i samband med beräkningar av försäkringspremier eller navigation. Försäkringsbolaget Lloyds of London som någon kanske hört talas om grundades till exempel 1688 vilket innebär att de fått förlita sig på handberäknade tabeller i nästan tre hundra år.

Fortfarande långt in på mitten av 1900talet utfördes en stor del av de beräkningar som samhället behövde (ekonomisk statistik, ballistiska beräkningar osv osv) av stora mängder människor som satt antingen med papper och penna eller med mekaniska räknehjälpmedel. När ni ser en film från andra världskriget där folk går igenom stora rum med mestadels kvinnor framför saker som ser ut som skrivmaskiner kan det tänkas att det rätt ofta är just ”computers” ni ser. Fascinerande inte sant?

Programmering har med andra ord funnits rätt länge. Om man vill vara väldigt generös så minst från 1600talet. Både i formen av instruktioner till mänskliga räknemaskiner och några hundra år senanare i form av hålkort som användes för att styra mönster i automatiserade vävmaskiner. Till och med om vi vill vara snålare och säga att vi med programmering bara räknar formulering av algoritmer för inmatning i en generaliserad beräkningsmaskin så hamnar vi en bit bak i tiden. Nej, vi pratar inte Turing nu utan hundra år tidigare runt 1840 då countess Ada Lovelace beskrev hur Charles Babbages analytiska maskin skulle kunna instrueras att utföra avancerade matematiska beräkningar.

För de flesta som är intresserade av att lära sig programmering är detta dock endast kuriosa. Programmering så som vi tänker på den idag började först bli intressant utanför akademiska cirklar en bit in på andra halvan av 1900talet och egentligen något som klev in på den stora scenen som något som förekommer i vårt vardagsliv runt millenieskiftet i samband med persondatorrevolutionen och den explosionsartade tillväxten av internet och webben.

Programmering idag

På det stora hela kan man säga att programmering idag är ett väldigt brett område som berör rätt många i vardagen. Allt ifrån folk som livnär sig på att skriva komplicerade affärssystem eller chatprogram till folk som vill få saker att röra på sig på sin hemsida eller vill få excel att räkna ut hur mycket pengar de spenderat den här månaden.

Det kan tyckas som väldigt olika saker men i grund och botten är det väldigt lika saker.

Allt som oftast ges instruktionerna till datorn i en textform formulerad för att vara så otvetydig som möjligt (datorer är inte så bra på tvetydighet) men samtidigt så läsbar som möjligt för människor. Den här formen av programmet som är läsbar och skrivbar av människor brukar generellt kallas källkod. Denna källkod består i princip av tre olika beståndsdelar: instruktioner, data samt olika former av punktuation och andra kontrolltecken för att göra det lätt för datorn att förstå gruppering och indelning av våra instruktioner. Om syftningsfel är förvirrande för människor så kan de vara helt katastrofala för en dator.

Tänk dig den där människan på kontoret som verkar ha någon form av störning som gör att han alltid tolkar dig så bokstavligt att det blir jättefel. Visst är det frustrerande? Datorer är värre med en faktor hundra ungefär. Nu kanske det är lättare att förstå varför den stackars IT-killen ansvarig för ert ekonomisystem sitter och ser så sliten ut framför sin skärm full av konstiga tecken och varnings-rutor. Han har troligtvis spenderat de senaste timmarna med motsvarigheten till att försöka lära en autistisk apa inte bara trycka på en knapp för att få en banan utan sen också använda bananen för att laga flygande jakob åt hela avdelningen.

Programmering bara för nördar?

Så är det bara att ge upp då och inse att livet inte behöver göras mer komplicerat än det är? Man kanske ska lämna programmerandet till de masochistiska personerna som väljer att viga sitt liv åt såna här övningar i futilitet?

Nej, inte nödvändigtvis.

Det fina i kråksången är nämligen att man inte behöver ge sig på hela kakan på en gång.

Man kan nämligen göra rätt mycket roligt utan att lära sig allt för mycket. Att skriva en konkurrent till Microsoft Word kräver eventuellt att du offrar ett antal kor till någon ohelig gudom men för att få excel att rita dina grafer utifrån dina datatabeller eller att få din webbläsare att göra något roligt när du klickar på en knapp kräver på sin höjd en tillräcklig förståelse för hur programmering fungerar för att veta vad du ska googla på och vilken källkods-stump du ska klippa och klistra var.

Min plan är att om du fortsätter läsa kommande inlägg i den här artikelserien så ska du åtminstone ha tillräcklig hum om hur man gör för att vara farlig och om jag gör mitt jobb bra så ska du till och med kunna göra någon nytta.

Och om inte annat så har jag förhoppningsvis åtminstone roat någon på vägen.

Nästa gång så tror jag att vi ger oss på antingen skillnaden mellan programmeringsspråk eller algoritmer, data och/eller funktioner beroende på i vilken ordning jag tror jag kan förklara koncepten på tydligast sätt. Häng med

  • Share/Bookmark
Det här inlägget postades i Artiklar, Programmering. Bokmärk permalänken.

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *

*

Följande HTML-taggar och attribut är tillåtna: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>