Ett sprÄk för att reglera allt

Dölja under ett lager av kod ligger ett sprÄk som lÀngtar efter att bli lÀrt.

Ett sprÄk för att reglera allt

Vid tidpunkten för att skriva denna artikel ger sökningen "vilket programmeringssprÄk ska man lÀra sig först" 517 miljoner sökresultat. Varje webbplats kommer att hylla ett specifikt sprÄk, och 90 % av dem kommer i slutÀndan att rekommendera Python eller JavaScript.

Utan nÄgra lÀngre förspel skulle jag vilja officiellt deklarera att alla dessa 517 miljoner webbplatser har fel och pÄstÄ att sprÄket som bör lÀras ut först Àr fundamental logik.

Att bara veta hur man kodar Àr inte tillrÀckligt. Marknaden Àr sÄ mÀttad av utexaminerade frÄn universitet och kurser att positionen som junior praktiskt taget har upphört att existera*. För att lyckas i dagens vÀrld mÄste man bÄde kunna koda och ha avancerat grundlÀggande logiskt tÀnkande.

* hĂ€r och framĂ„t, vĂ€nligen kom ihĂ„g att detta Ă€r en översĂ€ttning och situationen pĂ„ arbetsmarknaden för författaren och i ditt land kan variera (liksom andra detaljer), vilket dock inte gör den ursprungliga artikeln sĂ€mre — anm. övers.

Min första lektion i datavetenskap

Min första bekantskap med datavetenskap var en valkurs som jag tog i Ärskurs 10. PÄ den första dagen, nÀr jag gick in i klassrummet, blev jag fascinerad över att se ett stort antal glasshinkar och olika toppings framför mig. Efter att alla hade satt sig ner förklarade lÀraren:

«Idag ska vi smaka pÄ sjÀlvgjorda glassar. Men med ett villkor: ni mÄste göra en lista med specifika instruktioner om hur man gör efterrÀtten, och jag kommer att följa dem»

«Inga problem, tÀnkte jag, den hÀr lektionen kommer inte att vara lÄng». Efter ungefÀr en minut hade jag skissat pÄ ett fantastisk recept för min drömglass:

  1. Ta och lÀgg tre skopor hallonglass i en skÄl
  2. Öppna chokladsĂ„sen och tillsĂ€tt tvĂ„ matskedar i samma skĂ„l
  3. TillsÀtt vispad grÀdde i skÄlen
  4. Strö över sockerstÀnger och lÀgg en körsbÀr pÄ toppen

Min lĂ€rare – "datorn" i den hĂ€r söta metaforen – gav en mer sarkastisk och bokstavlig uppvisning Ă€n jag nĂ„gonsin har sett tidigare. Hon började ivrigt sticka en glasshink med en glasskopa utan att ens röra vid locket.

«Okej okej, men först mÄste den öppnas!» utbrast jag, i ett försök att fÄ godiset 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 hoppa fram till försök nummer 2

  1. Öppna hallonglassen genom att ta bort locket
  2. Ta och lÀgg tre skopor hallonglass i en skÄl
  3. Öppna chokladsĂ„sen och tillsĂ€tt tvĂ„ matskedar i samma skĂ„l
  4. TillsÀtt vispad grÀdde i skÄlen
  5. Strö över alla dessa sockerpinnar och lÀgg en körsbÀr ovanpÄ

Nu borde det verkligen inte vara nÄgra problem. Jag har till och med dubbelkollat att alla ingredienser för att skapa mitt kulinariska mÀsterverk Àr öppna.

LĂ€rarinnan tog bort locket, skopade upp tre bollar glass i skĂ„len. «Äntligen börjar min vackra glass bli verklighet!» Sedan öppnade hon chokladsĂ„sen och hĂ€llde i tvĂ„ matskedar i skĂ„len. Inte «la till chokladsĂ„s frĂ„n tvĂ„ matskedar» — tro inte det — hon la givetvis skedar i skĂ„len. Utan sĂ„s i dem. Jag orkade Ă„terigen inte skriva allt exakt. Efter att allt annat utfördes pĂ„ samma sĂ€tt, fick jag en skĂ„l med glass och tvĂ„ skedar, knappt synliga under ett hav av vispad grĂ€dde. OvanpĂ„ lĂ„g ett par sockerpinnar.

Det verkar som om det i det ögonblicket Àntligen gick upp för mig: datorn Àr logik i vakuum. Den vet inte om omgivande omstÀndigheter och gör inga antaganden. Den följer endast tydligt formulerade instruktioner och följer dem ord för ord.

Mitt slutresultat var en sammanstÀllning av en lÄng men nödvÀndig serie av försök och misstag:

  1. Öppna, om det inte redan Ă€r gjort, varje av de följande förpackningarna: hallonglass, chokladsĂ„s, vispad grĂ€dde, sockerpinnar.
  2. Ta fram en skÄl och stÀll den framför dig
  3. Ta en glasskopa och lÀgg en efter en tre bollar hallonglass i skÄlen. LÀgg glasskopa pÄ plats.
  4. Ta burken med chokladsÄs, skopa upp sÄs och hÀll innehÄllet i skÄlen frÄn matsked. Upprepa handlingen med att skopa och hÀlla sÄs en gÄng till. SÀtt skeden och burken pÄ plats.
  5. Ta burken med vispad grÀdde och vÀnd den upp och ner, hÄll den över skÄlen och hÀll över glassen i 3 sekunder, lÀgg sedan tillbaka burken.
  6. Ta burken med sockerpinnar, hÀll ut ungefÀr fyrtio pinnar i skÄlen och lÀgg burken pÄ plats.
  7. Ta ett körsbÀr frÄn körsbÀrsskÄlen och lÀgg det ovanpÄ glassen.
  8. Överhandla skĂ„len med den fĂ€rdiga glassen och skeden till eleven.

Den sista punkten var sÀrskilt viktig, eftersom lÀrarinnan utan den helt enkelt började Àta min glass en gÄng tidigare.

Men det Àr just programvaruutveckling. Det Àr en intensiv skapelse av noggrant formulerade instruktioner för datorn. I grunden handlar varje programsprÄk om att formulera instruktioner.

KarriÀr inom programmering

Programmering har nÄtt en punkt dÀr det Àr svÄrt att diskutera som en enhetlig industri, precis som det Àr svÄrt att anvÀnda ett enda ord som 'programmerare' för att beskriva en jobbtitel. TvÄ utvecklare kan vara lika eftertraktade av marknaden, men kÀnna till helt olika sprÄk, vilket innebÀr att förmÄgan att utveckla Àr viktigare Àn kunskapen om ett specifikt sprÄk. En universell egenskap som kÀnnetecknar alla framgÄngsrika utvecklare Àr fundamental logik.

Den bÀsta programmeraren Àr nÄgon som kan se pÄ koden ur ett nytt perspektiv. Detta Àr avgörande, eftersom de flesta programvaruprodukter Àr en samling av dÄligt dokumenterade kassar av kod. De behöver konstant sÀttas ihop igen, med hjÀlp av ÄtgÀrder vid behov. Personer som inte kan koppla ihop disparata punkter med en sammanhÀngande linje kommer alltid att hamna i skymundan.

Allt detta leder mig till Ànnu ett pÄstÄende, denna gÄng med fet stil: grundlÀggande kunskaper har alltid varit och kommer alltid att vara av största vikt för en programmerare.

SprĂ„k kommer och gĂ„r. Ramverk blir förĂ„ldrade, och företag reagerar pĂ„ efterfrĂ„gan genom att Ă€ndra den tekniska stacken. Finns det nĂ„got som aldrig förĂ€ndras? Ja — de grundlĂ€ggande kunskaper som kallas just grundlĂ€ggande eftersom de ligger till grund för allt!

Hur man förbÀttrar grundlÀggande kunskaper

Ett sprÄk för att reglera alltFoto av Kristoffer Jeshke till Unsplash

Om du söker 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 av ditt program

ocksÄ kÀnd som Big O Komplexiteten i ett algoritm definieras som beroendet av den tid det tar att köra programmet i förhÄllande till storleken pÄ dess indata (n). Att hÄlla sig informerad om de algoritmer som anvÀnds Àr ett viktigt steg.

KĂ€nn till dina datatyper

Datatyper Àr den grundlÀggande byggstenen i alla moderna program. Att veta vilken struktur som ska anvÀndas i vilket fall Àr en disciplin i sig. Datatyper Àr direkt kopplade till runtime-komplexiteten och valet av fel struktur kan leda till fundamentala prestandaproblem. Att söka efter ett element i en array Àr lika med O(n), vilket visar pÄ kostnaden av att anvÀnda arrayer som indata. Att söka i en hash-tabell Àr O(1), vilket innebÀr att i det hÀr fallet beror söktiden för vÀrdet inte pÄ antalet element.

MĂ€nniskor som kom till mina intervjuer hĂ€vdade att det Ă€r snabbare att söka i en array Ă€n i en hash-tabell. Detta var en tydlig indikator pĂ„ att de inte borde anstĂ€llas – kĂ€nn dina datatyper.

LÀs / titta pÄ / lyssna pÄ

Sajter som Udemy, Pluralsight och CodeAcademy Àr ett utmÀrkt val för att lÀra sig nya programmeringssprÄk. Men för grunderna, vÀnd dig till böcker om allmÀnna principer, praxis och kodningsstilar. De mest rekommenderade böckerna Àr "Designmönster", "Refactoring. FörbÀttring av befintlig kod", "The Pragmatic Programmer", "Clean Code" och "Code Complete". Slutligen bör varje utvecklare ha en kopia av "Algoritmer" till hands.

Öva!

Du kan inte göra en Àggröra utan att krossa Àgg. Sajter som HackerRank, CodeWars, CoderByte, TopCoder och LeetCode erbjuder tusentals intressanta uppgifter för att testas kunskaper om datatyper och algoritmer. Pröva lyckan med att lösa ett problem du gillar, ladda upp din lösning pÄ Github och se sedan hur andra har angripit det. Detta för oss till den sista punkten:

LĂ€s andras kod

Det största misstaget du kan göra nÀr du gÄr igenom utvecklingsvÀgen Àr att göra det ensam. Mjukvaruutveckling Àr till stor del ett lagarbete. Tillsammans sÀtter vi standarder, vi gör misstag tillsammans, och trots alla motgÄngar blir vi tillsammans bÀttre. Den tid som spenderas pÄ att lÀsa andras kod kommer att betala sig mÄngdubbelt. Se bara till att det Àr bra kod.

Det bÀsta rÄd jag kan ge Àr att aldrig skÀmmas för att du inte vet nÄgot Ànnu. Som redan nÀmnts Àr vÄr bransch enorm och mÀngden teknologi oöverskÄdlig. Det tar mycket tid och anstrÀngning att bygga en helhetsbild, Ànnu mer att bli professionell inom nÄgot specifikt, och betydligt mer för att finslipa sina fÀrdigheter inom sitt omrÄde. Jag meddelar dig nÀr jag sjÀlv nÄr dit.

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster