Ett språk som styr dem alla

Dolt under ett lager av kod tynar ett språk, längtar efter att bli lärt.

Ett språk som styr dem alla

När detta skrivs returnerar frågan "programmera vilket språk som ska läras först" 517 miljoner sökresultat. Var och en av dessa webbplatser kommer att berömma ett specifikt språk, och 90 % av dem kommer att rekommendera Python eller JavaScript.

Utan vidare vill jag säga att alla dessa 517 miljoner webbplatser är fel och att språket du bör lära dig först är grundläggande logik.

Det räcker inte att bara veta hur man kodar. Marknaden är så mättad med utexaminerade från institut och kurser att juniorpositionen praktiskt taget har upphört att existera*. För att lyckas i dagens värld måste du både koda och ha avancerat grundläggande logiskt tänkande.

*hädanefter, kom ihåg att detta är en översättning, och situationen på arbetsmarknaden för författaren och i ditt land kan vara annorlunda (liksom andra nyanser), vilket dock i sig inte gör originalartikeln sämre - cirka. översättning

Min första datavetenskapslektion

Min första exponering för datavetenskap var ett valfritt ämne som jag tog i 10:e klass. Redan första dagen, när jag kom in i klassrummet, var jag glad över att se framför mig ett stort antal hinkar med glass och olika pålägg. När alla satt sig, meddelade läraren:

”Idag ska vi smaka på egengjorda glassar. Men med ett villkor: du måste göra en lista med specifika instruktioner om hur du förbereder desserten, och jag kommer att följa dem.”

"Inga problem," tänkte jag, "den här lektionen kommer inte att vara lång." Inom någon minut hade jag skrivit ner det perfekta receptet på mina drömglass:

  1. Skopa och lägg tre kulor hallonglass i en skål
  2. Öppna chokladsåsen och lägg två matskedar i samma skål
  3. Tillsätt vispad grädde i skålen
  4. Strö över det hela med sockerstavar och lägg ett körsbär ovanpå

Min lärare – "datorn" i den söta metaforen – gjorde en mer sarkastisk, bokstavlig föreställning än jag någonsin sett tidigare. Hon började nitiskt peta i glasshinken med en skopa utan att ens röra locket.

"Okej, okej, men först måste du öppna den!" – utbrast jag och försökte få godbiten så snabbt som möjligt.

"Du skrev inte detta i instruktionerna, och jag kunde inte göra glass till dig. NÄSTA!"

Låt oss spola framåt till försök #2

  1. Öppna hallonglass genom att ta av locket
  2. Skopa och lägg tre kulor hallonglass i en skål
  3. Öppna chokladsåsen och lägg två matskedar i samma skål
  4. Tillsätt vispad grädde i skålen
  5. Strö över det hela med sockerstavar och lägg ett körsbär ovanpå

Nåväl, nu borde det definitivt inte vara några problem. För säkerhets skull såg jag till att alla ingredienser för att göra mitt kulinariska mästerverk var öppna.

Läraren tog bort locket, öste och placerade tre kulor glass i en skål. "Äntligen har min vackra glass börjat bli verklighet!" Hon öppnade sedan chokladsåsen och lade till två matskedar i skålen. Hon "tillsatte inte chokladsås från två matskedar" - tror inte det - hon satte naturligtvis själva skedarna i skålen. Ingen sås i dem. Återigen, jag brydde mig inte om att skriva ner allt exakt. Efter att resten var gjord i samma anda fick jag en skål med glass och två matskedar, knappt märkbar under havet av vispad grädde. Ovanpå låg ett par sockerstavar.

Det verkar som att det i detta ögonblick äntligen gick upp för mig: en dator är logik i ett vakuum. Han är omedveten om omgivande omständigheter och gör inga antaganden. Han utför endast tydligt formulerade instruktioner och följer dem ord för ord.

Mitt slutresultat var resultatet av en lång men nödvändig serie av försök och misstag:

  1. Om du inte redan har gjort det, öppna vart och ett av följande förpackningar: hallonglass, chokladsås, vispgrädde, sockerstavar.
  2. Ta fram en skål och ställ den framför dig
  3. Ta en glasskula och lägg tre kulor hallonglass en efter en i en skål. Sätt tillbaka glasskulan på plats.
  4. Ta en burk chokladsås, ös upp såsen och häll innehållet i en matsked i en skål. Upprepa ösning och hällning en gång till. Sätt tillbaka sked och burk på plats.
  5. Ta paketet med vispgrädde upp och ner och håll det över skålen, häll det över glassen i 3 sekunder och sätt sedan tillbaka paketet på sin plats.
  6. Ta en burk sockerstavar, häll ett fyrtiotal pinnar i en skål och sätt tillbaka burken.
  7. Ta ett körsbär från skålen med körsbär och lägg det ovanpå glassen.
  8. Ge eleven en skål med den färdiga glassen och en sked.

Den sista punkten var särskilt viktig, för utan den, näst sista gången började läraren helt enkelt äta min glass.

Men det här är programmering. Stressen med att skapa en noggrann uppsättning instruktioner för en dator. I grund och botten är detta vad varje programmeringsspråk handlar om - att skriva instruktioner.

Karriär inom programmering

Programmering har nått den punkt där det är svårt att diskutera som en enskild bransch, precis som det är svårt att använda det enstaka ordet "programmerare" som arbetsbeskrivning. Två utvecklare kan vara lika efterfrågade av marknaden som kan helt olika språk, vilket gör att förmågan att utvecklas är viktigare än kunskaper i ett specifikt språk. En universell egenskap som delas av alla framgångsrika utvecklare är grundläggande logik.

Den bästa programmeraren är den som kan se på kod från en ny vinkel. Och detta är fundamentalt viktigt, eftersom de flesta mjukvaruprodukter är en samling odokumenterade fragment av dålig kod. De måste hela tiden sammanföras och fylla luckor vid behov. Människor som inte kan koppla samman olika punkter med en enda linje måste för alltid vara vid sidan av.

Allt detta leder mig till en annan deklaration, denna gång i fetstil: grundläggande kunskap har alltid varit och kommer att vara avgörande för en programmerare.

Språk kommer och går. Ramverk håller på att bli föråldrade och företag svarar på efterfrågan genom att ändra den teknikstapel de använder. Finns det en sak som aldrig kommer att förändras? Ja – grundläggande kunskap, som kallas grundläggande eftersom den ligger till grund för allt!

Hur man förbättrar grundläggande kunskaper

Ett språk som styr dem allaFoto av Christopher Jeschke på Unsplash

Om du letar efter en utgångspunkt för att förbättra ditt grundläggande logiska tänkande, försök att börja här:

Känn till komplexiteten i ditt program

Även kallad Stor O "algoritmkomplexitet" avser beroendet av den tid det tar att köra ett program på storleken på dess indata (N). Att hålla fingret på pulsen för de algoritmer som används är ett viktigt steg.

Känn till dina datastrukturer

Datastrukturer är kärnan i varje modernt program. Att veta vilken struktur man ska använda i vilket fall är en disciplin i sig. Datastrukturer är direkt relaterade till runtime-komplexitet, och att välja fel struktur kan leda till grundläggande prestandaproblem. Att hitta ett element i en array är O (n), vilket indikerar den höga kostnaden för att använda arrayer som indata. Uppslag i hashtabell − O (1), vilket innebär att i det här fallet beror tiden för att söka efter ett värde inte på antalet element.

Folk kom till mig för en intervju och hävdade att det gick snabbare att söka igenom en array än att söka igenom en hashtabell. Detta var det säkraste tecknet på att du inte borde anställa dem - känna till dina datastrukturer.

Läs / titta / lyssna

Webbplatser som UdemyPluralsight и CodeAcademy - Ett utmärkt val för att lära sig nya programmeringsspråk. Men för grunderna, konsultera böcker om allmänna kodningsprinciper, metoder och stilar. De mest rekommenderade böckerna är "Designmönster", "Refactoring. Förbättring av befintlig kod, "Perfekt kod", "Ren kod" och "Pragmatistisk programmerare". Slutligen bör varje utvecklare behålla en kopia av "Algoritmer" till hands.

Öva!

Du kan inte laga äggröra utan att krossa ägg. Webbplatser som HackerRankCodeWarsCoderByte, Topcoder и LeetCode erbjuda tusentals intressanta pussel för att testa dina kunskaper om datastrukturer och algoritmer. Prova lyckan med att lösa ett problem du gillar, lägg upp din lösning på Github och se sedan hur andra tog sig an det. Vilket för oss till den sista punkten:

Läs andras kod

Det största misstaget du kan göra när du går in på utvecklingsvägen är att gå ensam. Mjukvaruutveckling är till stor del ett lagarbete. Vi skapar standarder tillsammans, gör misstag tillsammans och blir, trots alla misslyckanden, bättre tillsammans. Den tid som ägnas åt att läsa andras kod kommer att löna sig rejält. Se bara till att det är bra kod.

Tja, det bästa rådet jag kan ge är att aldrig skämmas för att du inte vet något ännu. Som redan har sagts är vår bransch enorm och mängden teknik är oändlig. Det tar mycket tid och ansträngning att bygga en helhetsbild, ännu mer att bli professionell inom något specifikt, och en storleksordning mer för att finslipa dina kunskaper inom ditt område. Jag meddelar dig när jag har uppnått detta själv.

Källa: will.com

Lägg en kommentar