Digitaliseringen af verden gennem de sidste tredive år har bragt computerprogrammering tæt på utallige menneskers liv. Med særlig hensyntagen til tingenes internet (IoT) kan vi se, at folk nu konstant interagerer med komplekse computerprogrammer, der giver dem mulighed for at gøre ting som fjerntænde og slukke lys, låse døre eller endda bestille fra Amazon gennem deres smarte bil .
Denne integration mellem elektronik og menneskeliv forekommer ikke blot i vores ydre liv. Faktisk, jo tættere mennesker lever med teknologi, jo mere forstår og interagerer vi med den teknologi på et dybere plan.
Selvfølgelig kan komplekse ideer forblive uden for rækkevidde, som at forstå maskinlæring eller kunstig intelligens. Imidlertid er mange gymnasier og højere læreanstalter begyndt at gøre undervisning om færdigheder som kodning obligatoriske.
Kodning giver kort sagt grundlæggende i computerprogrammering og de tilhørende computerprogrammeringssprog. Det betyder, at kodere opretter sæt instruktioner, der definerer, hvad et computerprogram skal gøre. Mens hvert enkelt computerprogram følger en grundlæggende oversigt over syntaks (betragtet som grammatikken for kodesprog), bruger hvert program et andet sprog, fra de mest almindelige former for HTML og CSS til mere avancerede programsprog som Javascript til Python til C++. Disse kaldes programmeringssprog (PL).
Hvert sprog har en anden applikation. Javascript dækker web-, mobil- og desktop-app-udvikling, mens C++ foker specifikt på spiludvikling, avancerede beregninger og grafik. Disse sprog hjælper en koder med at definere programmeringsmiljøet, datatyper, variabler, nøgleord, sløjfer, funktioner og input- og outputoperationer.
Men for dem, der begynder rejsen til kodning, kan disse begreber og nøgleord være forvirrende og desorienterende. At lære at kode er trods alt som at lære et andet sprog, beslægtet med at flytte fra et latinsk alfabet til kinesiske tegn. Det kan være svært at forstå kodning på dets grundlæggende skabelsesniveau, men også lige hvordan grundlæggende kodning kan anvendes til den virkelige verden gennem applikationer, websteder eller en kombination af begge.
Et godt eksempel er onlinespil, som 'konkurrerer' med sport i det virkelige liv. Som en blomstrende industri, der forventes at have en nettoværdi på næsten 100 milliarder dollars i 2024, er det en værdifuld satsning. Virksomheder knokler for at skabe mere dynamiske spiloplevelser, med førende sider som f.eks FanDuel tilbyder gratis væddemål for nytilkomne. Det er dog utroligt svært at skabe en spiloplevelse set fra et kodningsperspektiv. Det inkluderer ikke kun elementer af design og brugeroplevelse (UX), men også spilspecifikke behov, såsom tilfældige talgeneratorer (RNG'er), samt overholdelse af lokale væddemålslove.
Vi vil dog først gennemgå to mere almindelige iterationer af kodning, før vi går videre til det komplekse eksempel, der er angivet med onlinespil. Begivenheder og opgavestyring er almindelige programmer for kodning, der hjælper med at udvikle grundlæggende færdigheder og kan udføres af begyndere.
Begivenhedssystemer
For vores første eksempel vil vi se på at skabe en aggregator, som trækker eksisterende oplysninger fra andre websteder og organiserer dem. Dette betyder, at en koder ikke vil være ansvarlig for at skabe en platform, der organiserer en række begivenheder, såsom populære websteder Meetup og Eventbrite, men vil i stedet trække strømme af data fra hver.
En koder kan nemt oprette en aggregator, et simpelt program, der søger efter nøgleord i et begivenhedsnavn og en beskrivelse. Koderen vil oprette et system, der vælger, hvilke søgeord der markeres, og hvordan disse begivenheder er listet og organiseret.
Dette vil også introducere en begynderkoder til API'er til websteder som Meetup og Eventbrite. En API er en applikationsprogrammeringsgrænseflade, som er et mellemled mellem separate programmer ('datastrømmen' nævnt ovenfor). Ligesom det sprog, hver koder vælger at lære, skal de også interagere med en række API'er for at få større forståelse og personlig indsigt i de typer systemer, de foretrækker.
Opgavestyringssystemer
I lyset af det seneste boom af alt teknisk relateret, skal selv de mest basale tjenester og produkter nu interagere i en online-indstilling. Det betyder, at kodere er meget efterspurgte selv på det mest basale startniveau. Det betyder også, at der er rigelig online ressourcer for dem, der er interesserede i at begynde deres rejse til kodning.
Tag et websted som KanbanFlow, der opretter opgavetavler og tilbyder flere modulære funktioner. Dette giver kodere en mulighed for virkelig at grave ind og begynde at skabe de komplekse systemer, der er nævnt i introduktionen. I sin kerne skal kodning være et fejlfrit, sekventielt lydsystem baseret på endeligt input.
Opgavestyringssystemer er dybt enkle, men kan blive mere og mere komplekse baseret på mængden af input fra brugeren. Især KanbanFlow og lignende hjemmesider skaber specifikke udfordringer for begyndende kodere, som kun kan løses gennem erfaring og praksis.
Nogle af disse udfordringer inkluderer UI og UX. Selvom kodere normalt ikke er ansvarlige for designrelaterede problemer, er det vigtigt at overveje og integrere disse bekymringer, da kodere udgør grundlaget for store teams.
Kodning til online spil
I betragtning af konkurrencen om at skabe en levedygtig og sjov online spilplatform, vil kodere blive udfordret på alle niveauer af design og ydeevne (husk den førnævnte vægt på UI og UX).
Brugere inden for denne branche vil være på udkig efter problemfri brugernavigering samt et engagerende og spændende design; siden skal levere på spil, samtidig med at den skiller sig ud fra andre konkurrenter, og den skal også følge regler fastsat af regionale regeringer. For eksempel har USA vedtaget en række komplekse love på føderalt og statsligt niveau, der enten forbyder eller tillader specifikke typer spil, hvilket skaber et minefelt for kodere med hensyn til back-end-arbejde.
Derudover adskiller teknologien, der bruges til at regulere onlinespil, sig meget fra begivenhedsaggregation eller opgavestyringsmoduler. Specifikt kræver spil som slots og roulette RNGs, hvilket er en specifik funktion, der skal integreres i programmet. Og i tilfælde af slots skal disse RNG'er relatere til RTP'er, som er Return to Player. Denne RTP opstår efter en vis mængde spil er spillet, men vil kræve en API-overførsel af data, almindeligvis kendt som et 'API-kald'.
Online spillesider har også en tendens til at lide af nedbrud, hvilket kan være et resultat af massiv brugerdeltagelse eller fejlkoder, givet alle de komplekse, bevægelige brikker nævnt ovenfor. Mens arbejdet med at skabe et online spillested er en højt specialiseret form for kodning, giver det begyndere indsigt i computerprogrammeringens komplekse funktion.