Et sprog til at styre dem alle

Skjult under et kodelag sygner et sprog hen og længes efter at blive lært.

Et sprog til at styre dem alle

Når dette skrives, returnerer forespørgslen "programmering af hvilket sprog der skal læres først" 517 millioner søgeresultater. Hver af disse websteder vil rose et specifikt sprog, og 90 % af dem vil ende med at anbefale Python eller JavaScript.

Uden videre vil jeg gerne fortsætte med at sige, at alle disse 517 millioner websteder er forkerte, og at det sprog, du først skal lære, er grundlæggende logik.

Bare at vide, hvordan man koder, er ikke nok. Markedet er så mættet med kandidater fra institutter og kurser, at juniorstillingen praktisk talt er ophørt med at eksistere*. For at få succes i nutidens verden skal du både kode og have avanceret grundlæggende logisk tænkning.

*Husk herefter, at dette er en oversættelse, og situationen på arbejdsmarkedet for forfatteren og i dit land kan være anderledes (samt andre nuancer), hvilket dog i sig selv ikke gør den originale artikel værre - ca. oversættelse

Min første lektion i datalogi

Min første eksponering for datalogi var et valgfag, jeg tog i 10. klasse. Allerede den første dag, da jeg trådte ind i klasseværelset, glædede jeg mig over at se et stort antal spande is og forskellige pålæg foran mig. Efter at alle havde sat sig, meddelte læreren:

”I dag skal vi smage selvlavede is. Men med én betingelse: du skal lave en liste med specifikke instruktioner om, hvordan du tilbereder desserten, og jeg vil følge dem.”

"Intet problem," tænkte jeg, "denne lektion vil ikke vare lang." Inden for et minut eller deromkring havde jeg noteret den perfekte opskrift på mine drømmeis:

  1. Øs og læg tre kugler hindbæris i en skål
  2. Åbn chokoladesovsen og tilsæt to spiseskefulde i den samme skål
  3. Tilsæt flødeskum til skålen
  4. Drys det hele med sukkerstænger og læg et kirsebær ovenpå

Min lærer - "computeren" i den søde metafor - leverede en mere sarkastisk, bogstavelig forestilling, end jeg nogensinde havde set før. Hun begyndte nidkært at stikke isspanden med en scoop scoop uden selv at røre ved låget.

"Okay, okay, men først skal du åbne den!" - udbrød jeg og forsøgte at få godbidden så hurtigt som muligt.

"Du skrev ikke dette i vejledningen, og jeg kunne ikke lave is til dig. NÆSTE!"

Lad os spole frem til forsøg nr. 2

  1. Åbn hindbæris ved at tage låget af
  2. Øs og læg tre kugler hindbæris i en skål
  3. Åbn chokoladesovsen og tilsæt to spiseskefulde i den samme skål
  4. Tilsæt flødeskum til skålen
  5. Drys det hele med sukkerstænger og læg et kirsebær ovenpå

Nå, nu burde der bestemt ikke være nogen problemer. For en sikkerheds skyld sørgede jeg for, at alle ingredienserne til at lave mit kulinariske mesterværk var åbne.

Læreren fjernede låget, øsede og lagde tre kugler is i en skål. "Endelig er min smukke is begyndt at blive til virkelighed!" Hun åbnede derefter chokoladesovsen og tilføjede to spiseskefulde til skålen. Hun "tilsatte ikke chokoladesauce fra to spiseskefulde" - tro det ikke - hun lagde selvfølgelig selve skeerne i skålen. Ingen sauce i dem. Igen gad jeg ikke skrive alt præcist ned. Efter at resten var gjort i samme ånd, modtog jeg en skål is og to spiseskefulde, knapt mærkbar under havet af flødeskum. På toppen var der et par sukkerstænger.

Det ser ud til, at det i dette øjeblik endelig gik op for mig: en computer er logik i et vakuum. Han er uvidende om omgivende omstændigheder og gør ingen antagelser. Han udfører kun klart formulerede instruktioner og følger dem ord for ord.

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

  1. Hvis du ikke allerede har gjort det, skal du åbne hver af følgende pakker: hindbæris, chokoladesauce, flødeskum, sukkerstænger.
  2. Tag en skål frem og stil den foran dig
  3. Tag en isske og læg tre kugler hindbæris en efter en i en skål. Sæt isskelen på plads igen.
  4. Tag en krukke chokoladesovs, øs saucen og hæld indholdet af en spiseskefuld i en skål. Gentag øse- og hældeprocessen en gang til. Sæt skeen og glasset tilbage på plads.
  5. Tag pakken med flødeskum på hovedet, og hold den over skålen, hæld den over isen i 3 sekunder, og sæt derefter pakken tilbage på plads.
  6. Tag en krukke med sukkerstænger, hæld omkring fyrre stænger i en skål og sæt krukken tilbage.
  7. Tag et kirsebær fra skålen med kirsebær og læg det ovenpå isen.
  8. Giv eleven en skål med den færdige is og en ske.

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

Men det her er programmering. Stresset ved at skabe et omhyggeligt sæt instruktioner til en computer. I bund og grund er dette, hvad ethvert programmeringssprog kommer ned til - at skrive instruktioner.

Karriere inden for programmering

Programmering er nået dertil, hvor det er svært at diskutere som en enkelt branche, ligesom det er svært at bruge det enkelte ord "programmør" som jobbeskrivelse. To udviklere kan være lige efterspurgte af markedet, idet de kan helt forskellige sprog, hvilket betyder, at evnen til at udvikle er vigtigere end viden om et specifikt sprog. En universel egenskab, der deles af alle succesrige udviklere er grundlæggende logik.

Den bedste programmør er den, der er i stand til at se på kode fra en ny vinkel. Og dette er grundlæggende vigtigt, fordi de fleste softwareprodukter er en samling af udokumenterede fragmenter af dårlig kode. De skal hele tiden bringes sammen og udfylde huller efter behov. Folk, der ikke er i stand til at forbinde forskellige prikker med en enkelt linje, skal for altid være på sidelinjen.

Alt dette bringer mig til en anden erklæring, denne gang med fed skrift: grundlæggende viden har altid været og vil være altafgørende for en programmør.

Sprog kommer og går. Rammer er ved at blive forældede, og virksomheder reagerer på efterspørgslen ved at ændre den teknologistak, de bruger. Er der én ting, der aldrig vil ændre sig? Ja – fundamental viden, som kaldes fundamental, fordi den ligger til grund for alt!

Hvordan man forbedrer grundlæggende viden

Et sprog til at styre dem alleFoto af Christopher Jeschke på Unsplash

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

Kend kompleksiteten af ​​dit program

Også kaldet Stor O "algoritmekompleksitet" refererer til afhængigheden af ​​den tid, det tager at udføre et program på størrelsen af ​​dets inputdata (N). At holde fingeren på pulsen på de algoritmer, der bruges, er et vigtigt skridt.

Kend dine datastrukturer

Datastrukturer er kernen i ethvert moderne program. At vide, hvilken struktur der skal bruges i hvilket tilfælde, er en disciplin i sig selv. Datastrukturer er direkte relateret til runtime-kompleksitet, og valg af den forkerte struktur kan føre til grundlæggende ydeevneproblemer. At finde et element i et array er O (n), som angiver de høje omkostninger ved at bruge arrays som inputdata. Hash tabelopslag − O (1), hvilket betyder, at i dette tilfælde afhænger tiden til at søge efter en værdi ikke af antallet af elementer.

Folk kom til mig til et interview og hævdede, at det var hurtigere at søge gennem et array end at søge gennem en hash-tabel. Dette var det sikreste tegn på, at du ikke skulle ansætte dem - kend dine datastrukturer.

Læs / se / lyt

Sites som UdemyPluralsight и CodeAcademy - Et fremragende valg til at lære nye programmeringssprog. Men for det grundlæggende, konsulter bøger om generelle kodningsprincipper, -praksis og -stile. De mest anbefalede bøger er "Design Patterns", "Refactoring". Forbedring af eksisterende kode, "Perfekt kode", "Ren kode" og "Pragmatist-programmør". Endelig bør enhver udvikler beholde en kopi af "Algoritmer" ved hånden.

Øve sig!

Du kan ikke koge røræg uden at knække æg. Sites som Hacker RankCodeWarsCoderByte, TopCoder и LeetCode byd på tusindvis af interessante gåder for at teste din viden om datastrukturer og algoritmer. Prøv lykken med at løse et problem, du kan lide, post din løsning på Github, og se, hvordan andre greb det an. Hvilket bringer os til det sidste punkt:

Læs andres kode

Den største fejl, du kan begå, når du går ned ad udviklingsvejen, er at gå alene. Softwareudvikling er i høj grad en teamindsats. Vi skaber standarder sammen, laver fejl sammen og på trods af alle fiaskoer bliver vi bedre sammen. Den tid, der bruges på at læse andres kode, vil betale sig pænt. Bare sørg for, at det er en god kode.

Nå, det bedste råd, jeg kan give, er aldrig at skamme dig over, at du ikke ved noget endnu. Som det allerede er blevet sagt, er vores industri enorm, og mængden af ​​teknologi er uendelig. Det kræver meget tid og kræfter at opbygge et helhedsbillede, endnu mere at blive professionel inden for noget bestemt, og en størrelsesorden mere at finpudse dine kompetencer inden for dit felt. Jeg giver dig besked, når jeg selv opnår dette.

Kilde: www.habr.com

Tilføj en kommentar