Én sprog til at styre dem alle

Gem skjult under lag af kode ligger et sprog, der længes efter at blive lært.

Én sprog til at styre dem alle

Ved udgivelsen af denne artikel giver søgningen "hvilket programmeringssprog skal man lære først" 517 millioner resultater. Hver af disse sider vil rose et bestemt sprog, og 90% af dem vil i sidste ende anbefale Python eller JavaScript.

Uden lange forord vil jeg gerne officielt erklære, at alle disse 517 millioner sider tager fejl, og sige, at det sprog, man bør lære først — fundamental logik.

At vide, hvordan man koder, er ikke nok. Markedet er så mættet med kandidater fra universiteter og kurser, at stillingen som junior praktisk talt er forsvundet*. For at få succes i dagens verden skal du både kunne kode og have avanceret fundamental logisk tænkning.

* Her og fremover, vær venlig at huske, at dette er en oversættelse, og situationen på arbejdsmarkedet for forfatteren og i dit land kan være forskellig (lige som andre nuancer), hvilket dog i sig selv ikke gør den originale artikel ringere — bemærkning fra oversætteren.

Min første informationslære undervisning

Mit første møde med informationslære var et valgfag, jeg tog i 10. klasse. På den første dag, da jeg trådte ind i lokalet, blev jeg begejstret ved at se mange isbakker og forskellige toppings. Efter alle var blevet placeret, udtalte læreren:

„I dag skal vi smage på selvtilberedte is. Men med én betingelse: I skal lave en liste med specifikke instruktioner om, hvordan man laver desserten, og jeg — vil følge dem“

„Ingen problemer,‟ tænkte jeg, — denne lektion bliver ikke lang“. Efter et minut havde jeg skitseret en fantastisk opskrift på min drømmeis:

  1. Scoop tre kugler hindbæris i skålen
  2. Åbn chokolade sauce og tilsæt to spiseskefulde til den samme skål
  3. Tilsæt flødeskum til skålen
  4. Drys det hele med sukkerrør og læg et kirsebær ovenpå

Min lærer — „computeren“ i denne søde metafor — optrådte mere sarkastisk-bogstaveligt, end jeg nogensinde før havde set. Hun begyndte ivrigt at stikke i isbakken med en kugleske, uden at røre ved låget.

„Okay, okay, men først skal den åbnes!“ — udbrød jeg, og forsøgte at få godbidderne hurtigere.

«Du skrev ikke dette i instrukserne, og jeg kunne ikke lave is til dig. NÆSTE!»

Lad os spole tiden frem til forsøg nummer 2

  1. Åbn hindbærisen ved at fjerne låget
  2. Scoop tre kugler hindbæris i skålen
  3. Åbn chokolade sauce og tilsæt to spiseskefulde til den samme skål
  4. Tilsæt flødeskum til skålen
  5. Drys alt dette med sukkerrør og læg et kirsebær ovenpå

Nu burde der helt sikkert ikke være problemer. Jeg sørgede endda for, at alle ingredienserne til mit kulinariske mesterværk er åbnet.

Lærerinden fjernede låget, øste tre kugler is op i skålen. "Endelig blev min dejlige flødeis til virkelighed!" Derefter åbnede hun chokolade saucen og tilsatte to spiseskefulde til skålen. Hun "tilsatte chokolade sauce fra to spiseskefulde" — ikke at misforstå — hun lagde selvfølgelig selve skeerne i skålen. Uden saucen i dem. Jeg glemte at beskrive alt præcist igen. Efter at alt andet var udført på samme måde, fik jeg en skål med is og to spiseskefulde, der knap kunne ses under et hav af flødeskum. Ovenpå lå et par sukkerrør.

Det virker som om, det i dette øjeblik endelig gik op for mig: Computeren er logik i vakuum. Den kender ikke omstændighederne omkring den og laver ikke antagelser. Den udfører kun klart formulerede instrukser og følger dem ord for ord.

Mit endelige resultat var et resultat af en lang, men nødvendig række af forsøg og fejl:

  1. Åbn, hvis dette ikke allerede er gjort, hver af de følgende pakker: hindbæris, chokolade sauce, flødeskum, sukkerrør.
  2. Tag en skål og sæt den foran dig
  3. Tag en is-ske og læg tre kugler hindbæris i skålen en ad gangen. Læg is-skeen tilbage.
  4. Tag bøtten med chokolade sauce, øs saucen ud og hæld indholdet af spiseskeden i skålen. Gentag handlingen med at øse og hælde saucen en gang til. Læg skeen og bøtten tilbage.
  5. Tag bøtten med flødeskum, vend den om og hold den over skålen, hæld flødeskum over isen i 3 sekunder, hvorefter du lægger bøtten tilbage.
  6. Tag bøtten med sukkerrør, hæld cirka fyrre sukkerrør i skålen og læg bøtten tilbage.
  7. Tag et kirsebær fra kirsebærskålen og læg det ovenpå isen.
  8. Giv skålen med den færdige flødeis og skeen til eleven.

Det sidste punkt var især vigtigt, for uden det begyndte læreren bare at spise min is for næstsidste gang.

Men det er netop programmering. En anstrengende skabelse af en omhyggelig samling instrukser til computeren. I bund og grund er det, hvad hvert programmeringssprog kommer ned til - at formulere instrukser.

Karriere inden for programmering

Programmering er nået til et punkt, hvor det er svært at diskutere det som en enkelt industri, ligesom det også er svært at bruge det ene ord 'programmør' som beskrivelse af en stilling. To udviklere kan være lige eftertragtede af markedet, selvom de kender helt forskellige sprog, og det betyder, at evnen til at udvikle er vigtigere end at kende et bestemt sprog. En universel egenskab, der kendetegner alle succesfulde udviklere - fundamental logik.

Den bedste programmør er i stand til at se på koden fra en ny vinkel. Og det er altafgørende, fordi de fleste softwareprodukter er et sæt af u-dokumenterede stykker af dårlig kode. De skal konstant samles, mens man lukker huller efter behov. Folk, der ikke formår at forbinde de spredte punkter med en samlet linje, vil altid være på anden plads.

Alt dette fører mig til endnu en erklæring, denne gang med fed skrift: fundamentale viden har altid været og vil altid være primært for programmøren.

Sprog kommer og går. Rammer bliver forældede, og virksomheder reagerer på efterspørgslen ved at ændre den teknologi, de bruger. Er der noget, der aldrig ændrer sig? Ja - den fundamentale viden, der netop kaldes fundamental, fordi den ligger til grund for alt!

Hvordan man forbedrer fundamentale viden

Én sprog til at styre dem alleBillede af Christopher Yeske og få en fungerende kommando. Unsplash

Hvis du leder efter et udgangspunkt for at forbedre dit fundamentale logiske tænkning, så prøv at starte her:

Kend kompleksiteten af dit program

Også kaldet Big O Kompleksiteten af en algoritme beskriver afhængigheden af den tid, det tager at udføre programmet, i forhold til størrelsen af dens inputdata (n). At holde fingeren på pulsen af de anvendte algoritmer er et vigtigt skridt.

Kend dine datastrukturer

Datagrundlag er kernen i enhver moderne software. At vide, hvilken struktur der skal bruges i hvilke situationer, er en discipliner for sig selv. Datagrundlag er direkte relateret til runtime-kompleksitet, og valg af en forkert struktur kan føre til fundamentale performanceproblemer. Søgning efter et element i et array er lig med O(n), hvilket indikerer den høje omkostning ved at bruge arrays som inputdata. Søgning i en hash-tabel er O(1), hvilket betyder, at søgetiden for værdien ikke afhænger af antallet af elementer.

Jeg har haft kandidater til samtaler, som hævdede, at det var hurtigere at søge i et array end i en hash-tabel. Dette var et tydeligt tegn på, at det ikke var værd at ansætte dem — kend dine datagrundlag.

Læs / se / lyt

Websteder som Udemy, Pluralsight og CodeAcademy er fremragende valg til at lære nye programmeringssprog. Men til grundlæggende viden bør du henvende dig til bøger om generelle principper, praksisser og kodestilarter. De mest anbefalede bøger inkluderer "Designmønstre", "Refactoring. Forbedring af eksisterende kode", "Den perfekte kode", "Ren kode" og "Den pragmatiske programmør". Endelig bør hver udvikler have en kopi af "Algoritmer" lige ved hånden.

Øv dig!

Du kan ikke lave en omelet uden at knække æg. Websteder som HackerRank, CodeWars, CoderByte, TopCoder og LeetCode tilbyder tusindvis af interessante opgaver til at teste din viden om datagrundlag og algoritmer. Prøv at løse en opgave, du finder interessant, upload dit løsningsforslag på Github, og se derefter, hvordan andre har grebet den an. Dette fører os til den sidste punk:

Læs andres kode

Den største fejl, man kan lave på udviklingsvejen, er at gå den alene. Softwareudvikling er i høj grad et teamwork. Vi skaber standarder sammen, laver fejl sammen og, på trods af alle tilbageslag, bliver vi bedre sammen. Tiden brugt på at læse andres kode, vil betale sig mange gange. Sørg for, at det er god kode.

Den bedste råd, jeg kan give dig, er aldrig at skamme dig over, hvad du endnu ikke ved. Som allerede nævnt er vores branche enorm, og mængden af teknologier er uendelig. Det kræver meget tid og indsats at danne et overblik, endnu mere at blive professionel inden for et specifikt område, og mange gange mere at forfine sit håndværk. Jeg vil give dig besked, når jeg selv opnår det.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster