Ett språk for å styre dem alle

Skjult under et lag med kode, et språk forsvinner, lengter etter å bli lært.

Ett språk for å styre dem alle

Når dette skrives, returnerer spørringen "programmere hvilket språk du skal lære først" 517 millioner søkeresultater. Hver av disse sidene vil prise ett spesifikt språk, og 90 % av dem vil ende opp med å anbefale Python eller JavaScript.

Uten videre vil jeg si at alle disse 517 millioner nettstedene er feil, og at språket du bør lære først er grunnleggende logikk.

Bare det å vite hvordan man koder er ikke nok. Markedet er så mettet av kandidater fra institutter og kurs at juniorstillingen praktisk talt har sluttet å eksistere*. For å lykkes i dagens verden må du både kode og ha avansert grunnleggende logisk tenkning.

*Husk heretter at dette er en oversettelse, og situasjonen på arbeidsmarkedet for forfatteren og i ditt land kan være annerledes (samt andre nyanser), noe som imidlertid ikke i seg selv gjør den originale artikkelen verre - ca. oversettelse

Min første informatikktime

Min første eksponering for informatikk var et valgfag jeg tok i 10. klasse. Allerede den første dagen, da jeg kom inn i klasserommet, gledet jeg meg over å se foran meg et stort antall bøtter med iskrem og diverse pålegg. Etter at alle hadde satt seg, kunngjorde læreren:

«I dag skal vi smake på egentilberedt is. Men med en betingelse: du må lage en liste over spesifikke instruksjoner om hvordan du tilbereder desserten, og jeg vil følge dem.»

"Ikke noe problem," tenkte jeg, "denne leksjonen blir ikke lang." I løpet av et minutt eller så hadde jeg notert ned den perfekte oppskriften på drømmeisen:

  1. Øs og legg tre skjeer bringebæris i en bolle
  2. Åpne sjokoladesausen og tilsett to spiseskjeer i samme bolle
  3. Tilsett kremfløte i bollen
  4. Dryss det hele med sukkerpinner og legg et kirsebær på toppen

Læreren min – «datamaskinen» i den søte metaforen – ga en mer sarkastisk, bokstavelig forestilling enn jeg noen gang hadde sett før. Hun begynte nidkjært å stikke i iskrembøtta med en øseskje uten å røre lokket.

"Ok, ok, men først må du åpne den!" – Jeg utbrøt og prøvde å få godbiten så raskt som mulig.

"Du skrev ikke dette i instruksjonene, og jeg kunne ikke lage is til deg. NESTE!"

La oss spole fremover til forsøk nr. 2

  1. Åpne bringebæris ved å ta av lokket
  2. Øs og legg tre skjeer bringebæris i en bolle
  3. Åpne sjokoladesausen og tilsett to spiseskjeer i samme bolle
  4. Tilsett kremfløte i bollen
  5. Dryss det hele med sukkerpinner og legg et kirsebær på toppen

Vel, nå burde det definitivt ikke være noen problemer. For sikkerhets skyld sørget jeg for at alle ingrediensene for å lage mitt kulinariske mesterverk var åpne.

Læreren tok av lokket, øste og la tre skjeer iskrem i en bolle. "Endelig har den vakre isen min begynt å bli virkelighet!" Hun åpnet deretter sjokoladesausen og tilsatte to spiseskjeer i bollen. Hun "tilsatte ikke sjokoladesaus fra to spiseskjeer" - tror ikke det - hun la selvfølgelig selve skjeene i bollen. Ingen saus i dem. Igjen, jeg gadd ikke å skrive ned alt nøyaktig. Etter at resten var gjort i samme ånd, fikk jeg en bolle med is og to spiseskjeer, knapt merkbar under havet av pisket krem. På toppen lå et par sukkerpinner.

Det ser ut til at det i dette øyeblikket endelig gikk opp for meg: en datamaskin er logikk i et vakuum. Han er uvitende om omstendighetene og gjør ingen antagelser. Han utfører kun klart formulerte instruksjoner og følger dem ord for ord.

Mitt endelige resultat var resultatet av en lang, men nødvendig serie med prøving og feiling:

  1. Hvis du ikke allerede har gjort det, åpne hver av følgende pakker: bringebæris, sjokoladesaus, pisket krem, sukkerpinner.
  2. Ta frem en bolle og plasser den foran deg
  3. Ta en isskje og legg tre kuler bringebæris én etter én i en bolle. Sett iskremskjeen tilbake på plass.
  4. Ta en krukke med sjokoladesaus, øs opp sausen og hell innholdet av en spiseskje i en bolle. Gjenta øse- og helleprosessen en gang til. Sett skjeen og glasset tilbake på plass.
  5. Ta pakken med kremfløte opp ned og hold den over bollen, hell den over iskremen i 3 sekunder, sett deretter pakken tilbake på plass.
  6. Ta en krukke med sukkerpinner, hell rundt førti pinner i en bolle og sett glasset tilbake.
  7. Ta ett kirsebær fra bollen med kirsebær og legg det på toppen av isen.
  8. Gi eleven en bolle med den ferdige isen og en skje.

Det siste punktet var spesielt viktig, for uten det, nest siste gang begynte læreren rett og slett å spise isen min.

Men dette er programmering. Stresset med å lage et nøye sett med instruksjoner for en datamaskin. I hovedsak er dette hva hvert programmeringsspråk kommer ned til - å skrive instruksjoner.

Karriere innen programmering

Programmering har nådd det punktet hvor det er vanskelig å diskutere som en enkelt bransje, akkurat som det er vanskelig å bruke enkeltordet "programmerer" som en stillingsbeskrivelse. To utviklere kan være like etterspurt av markedet, som kan helt forskjellige språk, noe som betyr at evnen til å utvikle seg er viktigere enn kunnskap om et spesifikt språk. En universell egenskap som deles av alle vellykkede utviklere er grunnleggende logikk.

Den beste programmereren er den som er i stand til å se på kode fra en ny vinkel. Og dette er grunnleggende viktig, fordi de fleste programvareprodukter er en samling av udokumenterte fragmenter av dårlig kode. De må hele tiden bringes sammen, og fylle hull etter behov. Folk som ikke er i stand til å koble sammen forskjellige prikker med en enkelt linje, må for alltid være på sidelinjen.

Alt dette bringer meg til en annen erklæring, denne gangen i fet skrift: grunnleggende kunnskap har alltid vært og vil være avgjørende for en programmerer.

Språk kommer og går. Rammer er i ferd med å bli foreldet, og bedrifter svarer på etterspørselen ved å endre teknologistabelen de bruker. Er det én ting som aldri vil endre seg? Ja – grunnleggende kunnskap, som kalles fundamental fordi den ligger til grunn for alt!

Hvordan forbedre grunnleggende kunnskap

Ett språk for å styre dem alleFoto av Christopher Jeschke på Unsplash

Hvis du leter etter et utgangspunkt for å forbedre din grunnleggende logiske tenkning, prøv å starte her:

Kjenn kompleksiteten til programmet ditt

Også kalt Stor O "algoritmekompleksitet" refererer til avhengigheten av tiden det tar å kjøre et program på størrelsen på inndataene (N). Å holde fingeren på pulsen til algoritmene som brukes er et viktig skritt.

Kjenn datastrukturene dine

Datastrukturer er kjernen i alle moderne programmer. Å vite hvilken struktur som skal brukes i så fall er en disiplin i seg selv. Datastrukturer er direkte relatert til kjøretidskompleksitet, og å velge feil struktur kan føre til grunnleggende ytelsesproblemer. Å finne et element i en matrise er O (n), som indikerer den høye kostnaden ved å bruke arrays som inngangsdata. Hash-tabelloppslag − O (1), som betyr at i dette tilfellet avhenger ikke tiden for å søke etter en verdi av antall elementer.

Folk kom til meg for et intervju og hevdet at det var raskere å søke gjennom en array enn å søke gjennom en hash-tabell. Dette var det sikreste tegnet på at du ikke burde ansette dem - kjenn datastrukturene dine.

Les / se / lytt

Nettsteder som UdemyPluralsight и CodeAcademy - Et utmerket valg for å lære nye programmeringsspråk. Men for det grunnleggende, se bøker om generelle kodingsprinsipper, praksiser og stiler. De mest anbefalte bøkene er "Design Patterns", "Refactoring". Forbedring av eksisterende kode, "Perfekt kode", "Ren kode" og "Pragmatisk programmerer". Til slutt bør hver utvikler beholde en kopi av "Algoritmer"for hånden.

Øve på!

Du kan ikke koke eggerøre uten å knuse egg. Nettsteder som HackerRankCodeWarsCoderByte, TopCoder и LeetCode tilbyr tusenvis av interessante gåter for å teste kunnskapen din om datastrukturer og algoritmer. Prøv lykken med å løse et problem du liker, legg ut løsningen din på Github, og se hvordan andre nærmet seg det. Som bringer oss til det siste punktet:

Les andres kode

Den største feilen du kan gjøre når du går nedover utviklingsveien, er å gå alene. Programvareutvikling er i stor grad et teamarbeid. Vi skaper standarder sammen, gjør feil sammen og til tross for alle feil blir vi bedre sammen. Tiden brukt på å lese andres kode vil lønne seg godt. Bare sørg for at det er god kode.

Vel, det beste rådet jeg kan gi er å aldri skamme deg over at du ikke vet noe ennå. Som allerede har blitt sagt, er vår bransje enorm og mengden teknologi er uendelig. Det tar mye tid og krefter å bygge et helhetlig bilde, enda mer å bli profesjonell innen noe spesifikt, og en størrelsesorden mer for å finpusse ferdighetene dine på feltet ditt. Jeg gir deg beskjed når jeg oppnår dette selv.

Kilde: www.habr.com

Legg til en kommentar