Er programmering svært?
Dette er et spørgsmål, som mange ikke-programmører stiller mig. Det gør, at det rangerer deroppe sammen med spørgsmål som “arbejder programmører hjemmefra” og “hvilken uddannelse skal man have for at blive programmør?”. Det vil nysgerrige sind gerne vide det.
Men i modsætning til nogle af disse spørgsmål er dette spørgsmål faktisk ret svært. Det er et simpelt spørgsmål, men svaret er meget nuanceret.
Så lad os dykke ned i det, i detaljer, og hjælpe dig med at forstå, om programmering er svært eller ej.
Er det svært at programmere? Det korte svar
Så lad os først og fremmest tage fat på spørgsmålet med et kort og direkte svar. Det vil sætte scenen for resten af indlægget.
Er programmering svært?
Jamen, som konsulenterne ynder at sige, “det kommer an på”. Om programmering er svært eller ej afhænger af mange faktorer, f.eks. den specifikke type programmering, og hvordan du som person tænker. Så det korte svar er, at programmering virkelig spænder fra overraskende let til vanvittigt svært.
Tænk på denne måde. Prøv at svare på nogle af disse spørgsmål ud fra din erfaring:
- Er det svært at spille basketball?
- Er det svært at tale portugisisk?
- Hvad med at køre bil? Er det svært?
Du kan godt se, hvorfor jeg tøver og siger: “ehhh… det kommer an på.”
Mennesker har tendens til at blive overdrevent skræmt af programmering
Jeg vil dog komme med en lidt kvalificerende udtalelse. Specifikt mener jeg, at ikke-programmører har en tendens til at overvurdere, hvor svært det er at programmere.
Har du nogensinde hørt nogen sige noget som dette:
Oh, jeg er bare virkelig ikke et matematikmenneske!
Jamen, det hører jeg meget ofte. Men jeg hører det samme om programmering mere. Og jeg betragter det som ironisk, for selv om nogle områder inden for programmering virkelig kræver matematik, er der mange, der ikke kræver det. Programmering er efter min mening et meget mere varieret sæt af bekymringer end “matematik.”
Jeg tror virkelig, at mange mennesker antager, at de aldrig ville klare sig som programmør, men de tager helt fejl. Det er et meget mere tilgængeligt fag, end den store verden synes at tro.
Lad os aflive nogle myter om programmering, ud over den matematiske myte
For virkelig at slå pointen fast, lad os se på nogle yderligere misforståelser om programmering, ud over myten om, at programmører skal være rigtig gode til matematik.
Misforståelse 1: Programmører er elitehackere, som fyren i Mr. Robot
Uanset din alder er der en eller anden film fra din storhedstid, der fremstiller programmører som Bond-lignende (eller Bond-villain-lignende) hackere. I min opvækst var det filmen Sneakers. Hvis du er vokset op lidt senere end mig, har du måske været uheldig nok til at møde Hackers eller Swordfish. I dag er genren blevet bedre, og du kan måske nyde Mr. Robot.
Men uanset om filmen er fantastisk, som Sneakers, eller forfærdelig, som Hackers, har du stadig hacker-protagonister og hacker-antagonister, der både synes at være kvasi-sociopatiske og utroligt geniale programmører.
Det er ikke det virkelige liv. Det er ikke engang rigtig hacking, for slet ikke at tale om almindelig programmering. Så du skal ikke antage, at programmering kræver, at du skal flytte terninger rundt på en skærm, eller hvad Hugh Jackman nu laver i Swordfish. Normalt kræver det bare en masse googling.
Misforståelse 2: Du har brug for en datalogiuddannelse
Vi har dækket dette i mange detaljer, så jeg vil ikke forcere det her. Men nej, du behøver ikke en datalogiuddannelse for at programmere. Du har ikke brug for en handelsuddannelse, og du behøver måske ikke engang at deltage i en bootcamp.
Disse ting vil alle gøre det lettere at få det første job, men de er ikke nødvendige. Så når du spekulerer på, “er det svært at programmere”, blander du formentlig de hoops, du skal hoppe igennem, sammen med aktiviteten. Der er ingen forudsætninger for at programmere ud over en notesblok og downloading af en enkelt fortolker eller compiler.
Misforståelse 3: Programmører har forfærdelige sociale færdigheder
Denne her får dig måske til at klø dig lidt i hovedet. Du tænker sikkert: “Hvad har idéen om, at programmører har forfærdelige sociale færdigheder, at gøre med mig, eller med hvorfor programmering er svært?”
Nå, men den er subtil, men reel. Verden ser tv-serier og film, hvor man kan identificere dygtige programmører gennem deres tendens til at “nørde”.”
Så den omvendte logik sniger sig ind, og du tænker: “Hvis jeg ikke er vanvittigt socialt akavet, kan jeg så nogensinde blive en “rigtig” programmør?”
Ja. Ja, det kan du godt. Programmører deltager i masser af konferencer og meetups, holder foredrag, danner fællesskaber og har et godt, normalt socialt liv.
Misforståelse 4: Programmører er straks gode til alt, hvad der har med computere at gøre
Jeg fik personligt en datalogiuddannelse og derefter et job som programmør. Og da jeg gjorde det, gik alle straks ud fra, at jeg var ekspert i alle ting med computere.
- Erik, min computer laver en underlig lyd – hvad tror du, der er galt?
- Hej, jeg får Fejl #90314, når jeg prøver at lukke MS Word. Hvad betyder det?
- Hvilket af disse grafikkort er det bedste?
Alle disse spørgsmål var den slags spørgsmål, jeg ville høre. Og i bund og grund ville jeg bare google svaret (hvis jeg ikke sagde: “wow, det ved jeg virkelig ikke”). Jeg levede af at skrive software, men det betød ikke, at jeg vidste alt og alle om computere.
Jeg nævner dette, fordi du ikke skal tro, at du skal vide alt og alle om computere for at blive programmør.
Der er meget variation i programmering
Når vi har aflivet nogle myter, skal vi se på virkeligheden inden for programmering. Og virkeligheden er, at den faktisk er ret forskelligartet. Her er blot et lille udpluk af de ting, som folk laver under den generelle paraply af “programmering”:
- Design af layoutet og de visuelle egenskaber af en webside.
- Skabelse af algoritmer for kunstig intelligens.
- Scripting af manuelle opgaver for at automatisere dem.
- Kompleks statistisk modellering.
- Bygning af enkle, gentagelige mobilapps.
Og det er blot et lille udpluk af de forskellige former for programmering. Det omhandler ikke engang alle de forskellige roller, du kan indtage, som bidrager til disse bestræbelser.
Der er lige så stor variation i “at være programmør” som i “at være forretningsmand”.”
Nogle programmeringsroller er mere tilgængelige
I betragtning af denne variation vil jeg gerne grave lidt i, hvilke roller der kan virke mere tilgængelige.
Jeg vil trække mig lidt tilbage fra “let til svært”-spektret, kun fordi det er så afhængigt af, hvad du som individ finder svært. Jeg har f.eks. altid klaret mig godt med matematik og algoritmer, men jeg er ærlig talt forfærdelig dårlig til design og layout. Du kan have modsatte tilbøjeligheder og synes, at det er latterligt at sige, at “det er let at programmere en sorteringsalgoritme”, og modsætte dig med noget, som jeg ville finde lige så latterligt: “Det er let at lave en smuk webside.”
Så forstå, at jeg ikke kategorisk kalder ting lette eller svære. I stedet påpeger jeg ting, som du måske ikke havde overvejet, hvis du kun havde tænkt på programmering som noget meget matematisk.
- Nogle mennesker i programmeringsroller fokuserer i høj grad på layout og brugeroplevelse. Det betyder, at de i høj grad beskæftiger sig med applikationens æstetik og med, hvordan brugerne interagerer med den.
- Andre programmører fokuserer i høj grad på data og databaser. I stedet for at bygge store stykker software ved hjælp af komplekse instruktioner fokuserer de i langt højere grad på de faktiske data og ræsonnementer om disse data.
- En anden disciplin er tættere på drift og support. Nogle mennesker arbejder en god del med computere som “power users” og lærer at programmere ved her og der at lære, hvordan man kan automatisere og effektivisere det, de gør manuelt.
Og det er blot nogle få eksempler. Så forstå, at selv om programmering virker svært for dig, kan der være roller inden for det, som faktisk virker mere tilgængelige.
Programmering er imidlertid fremmedartet, hvilket kan betyde, at programmering er svært
På dette tidspunkt vil jeg gerne skifte gear bare en smule. Jeg føler, at jeg har brugt en god del tid på temaet “hey, programmering er ikke så svært som du tror”. Og det er sandt. Jeg tror, at mange mennesker ville besvare spørgsmålet “er programmering svært” med et “ja”, simpelthen fordi de ikke ved, hvad programmering indebærer.
Men det vil jeg nu moderere en smule her. Programmering er svært i den forstand, at det kræver, at du tænker på en måde, som du ikke er vant til.
For at forstå, hvad jeg mener, så tænk på at håndtere Alexa.
Alexa kan besvare en masse taktiske spørgsmål, og hun vil glæde og overraske dig til tider. Men hun er også virkelig frustrerende. Hendes computer-agtighed viser sig til tider, når hun på komisk vis misforstår grundlæggende menneskelig interaktion.
Tænk nu på, at Alexa, hvad angår computerprogrammer, er fuldstændig optimeret til at gøre sit bedste for at forstå dig. Du skal være ekstremt præcis, bogstavelig og stum, mens du taler til hende, og hun er der for at forstå dig.
Compileren (den ting, der oversætter din kode til handling) er ligesom Alexa, men den er ikke designet til at gøre dit liv let. Den er designet til at maksimere nytteværdien. Så hvis du skal være præcis når du har med Alexa at gøre, er præcis ikke engang en begyndelse til at beskrive, hvad compileren ønsker. Forveksl et semikolon med et kolon, og du kan få en computer til at crashe.
Så er programmering svært? Ja, i den forstand, at det kræver, at du tænker på en måde, som de fleste mennesker normalt ikke tænker på.
Programmering er lovligt svært
For at fortsætte med temaet “ja, programmering er svært”, lad os overveje, at der er lommer af programmeringsverdenen, som kræver en masse færdigheder og øvelse for at komme ind i. Du skal ikke overtænke det. Nogle gange er programmering virkelig svært.
At lave avancerede ting med robotteknologi, block chain, kunstig intelligens, handelsalgoritmer osv. kræver en masse færdigheder, øvelse, talent og konkurrencestyrke. Nogle af de store Silicon Valley-firmaer betaler enorme lønninger til softwareudviklere, og det gør de ikke for alle, der tilfældigvis kommer forbi.
Der er specialer i programmeringsverdenen, der kræver lynnedslag, i den forstand, at man har brug for øvelse, talent, kløgt og held. Og ud over det er der roller, stillinger, udfordringer og situationer, som ikke ret mange mennesker kan udfylde på tilfredsstillende vis. Programmering kan være ret svært.
Som alt andet, så kører det hele vejen rundt
Men i sidste ende er det virkelig forskelligt. Tænk tilbage på det, jeg sagde i starten.
Er basketball svært? Nej, hvis du mener “kan nogen samle en bold op og kaste den mod en kurv?”. Ja, hvis du mener: “Hvad er chancerne for, at Golden State skriver kontrakt med mig for at spille sammen med Steph Curry?”
Er det svært at tale portugisisk? Tja, sandsynligvis ikke, hvis du er født i Brasilien eller Portugal. Men sandsynligvis ja, hvis du er 70 år gammel og aldrig har talt andet end japansk.
Så, er det svært at programmere? Ja og nej. Ja, det er svært at gøre det på et eliteniveau eller inden for et højt specialiseret og konkurrencepræget område. Men nej, det er ikke svært at komme i gang. Og det er bestemt ikke uden for din rækkevidde.
Dette indlæg er skrevet af Erik Dietrich. Erik er en veteran i softwareverdenen og har beklædt stort set alle positioner i den: udvikler, arkitekt, leder, CIO og til sidst selvstændig ledelses- og strategikonsulent. Denne brede erfaring har givet ham mulighed for at tale til alle personligheder i branchen og for at skrive flere bøger og utallige blogindlæg på snesevis af websteder.