Dette er de bedste datalogiske begreber, du bør vide, hvis du er ny til programmering

Afgørende CS-terminologier og begreber forklaret på enkel engelsk

Da mange venner og familie fra ikke-CS-baggrunde spørger mig om forskellige terminologier og begreber, vil jeg forsøge at forklare følgende datalogikoncepter på det mest enkle sprog.

I denne hurtige guide lærer du om, hvad hvert begreb / ​​koncept betyder , og hvorfor det betyder noget :

  • Bagudvikling
  • Frontend Udvikling
  • Programmeringssprog
  • Algoritmer
  • API
  • Insekt
  • Open Source
  • Crowdsource

I slutningen af ​​denne artikel deler jeg også nogle ressourcer, så du kan lære mere!

Bagudvikling

Du har måske hørt udtrykket “Backend Development” smidt rundt ganske lidt. Især hvis du har hængt rundt på LinkedIn.

"Backend" henviser i dette tilfælde til et lag af teknologistakken. Dette involverer for det meste at skrive eller vedligeholde en webservice med en database til opbevaring af data.

Ofte er backend-udvikling forbundet med teknologier som Java, Scala, Python, DynamoDB, MongoDB, nodeJS, MySQL, MapReduce og mange, mange flere.

Dette er i modsætning til front-end-udvikling, som ofte henviser til brugergrænsefladeslaget (UI) eller den kundevendte side af en funktion.

Hvorfor er det vigtigt?

At forstå forskellene mellem frontend og backend-udvikling lader dig vide, hvilke komponenter du skal tænke på, før du begynder at udvikle en app i fremtiden.

Frontend Udvikling

Frontend-udvikling indebærer ofte at arbejde med kundefokuserede funktioner, såsom en webside eller en iOS / Android-app.

Der er forskellige typer teknologier involveret her, såsom HTML, CSS, JavaScript, jQuery, React, Angular, Swift osv.

Grunden til, at jeg kalder dem teknologier og ikke programmeringssprog, er, at nogle af disse er rammer, der hjælper dig med at oprette dine baser og styre den måde, du programmerer på, men de er ikke programmeringssprog i sig selv. Eksempler på disse er React og Angular.

Et programmeringssprog er simpelthen en måde for mennesker at kommunikere med computere på. Nogle hævder måske, at HTML er et programmeringssprog ... Jeg tror, ​​det er et emne for en anden dag. ?

Hvorfor er det vigtigt

Frontend-udvikling plejede kun at være HTML, CSS og JavaScript. I dag er det et helt udyr i sig selv med sin egen teknologiestak og opbygningsværktøjer. Frontend-teknologien skrider frem med lynets hastighed. Jeg opfordrer stærkt til at lære frontend-værktøjer, så du kan forstå, hvad der sker i nutidens programmeringsverden.

Programmeringssprog

En computer er meget god til at udføre de kommandoer, den får at vide. For at vi mennesker kan kommunikere med en computer, har vi brug for et fælles sæt forståelige sprog - et sæt instruktioner, som både mennesker og computere kan blive enige om og kommunikere med.

I den menneskelige verden bruger vi sprog som engelsk, mandarin, spansk osv. Til at kommunikere.

Når det kommer til computere, kalder vi det et programmeringssprog . Et programmeringssprog giver mennesker og computere mulighed for at kommunikere . Eksempler på programmeringssprog er Java, C ++, Python og mange flere.

Hvorfor er det vigtigt

At lære et programmeringssprog giver dig mulighed for at forstå, hvordan noget du ser på Internettet fungerer under emhætten - det er som at vide, hvordan og hvorfor din bil kører. Med noget albuefedt vil du være i stand til at oprette dine egne apps, som Candy Crush eller Twitter også.

Algoritmer

En proces eller et sæt regler, der skal følges i beregninger eller andre problemløsningsoperationer, især af en computer. - Google :)

Computere er gode til at udføre instruktioner, og som softwareingeniører skriver vi instruktioner, som computere skal udføre. En algoritme er en liste over trin eller instruktioner, der kan udføres med eller uden en computer for at løse et specifikt problem.

Et af de første problemer, vi lærer som datalogistuderende, er problemet med sortering. Essensen af ​​det er at sortere et sæt eller en samling af varer på den mest effektive måde.

Der er mange måder at sortere på. En populær er Bubble Sort, ellers kendt som “sammenligningssortering”. Det indebærer at sammenligne og vælge det største af to emner og gentage for alle andre elementer, indtil alt til sidst er sorteret. Andre inkluderer Insertion Sort, Merge Sort og mange, mange flere!

Jeg opfordrer dig stærkt til at udforske dem, da det er en fascinerende introduktion til algoritmer. Her er en Youtube-video for at lære mere om sorteringsalgoritmer.

Hvorfor er det vigtigt

Algoritmer er kernen i datalogi - at forstå, hvad algoritmer er, og hvordan de fungerer, gør dig til en bedre softwareingeniør. Periode.

API

API, aka applikationsprogrammeringsgrænseflade, aka en kilde til information. Forestil dig mere konkret, at du havde en limonade godt derhjemme. Dine naboer vil have en slurk af din limonade godt, men du vil ikke have, at brønden bliver forurenet. Hvad gør man så?

Du besluttede at bygge en slange, der forbinder en lille slange uden for dit hus. Alle dine naboer, der ønsker en smag af din magiske limonade, stiller sig op og åbner slangen for at få adgang til din limonade. Alt dette uden nogensinde at komme tæt på din brønd, og du kan også styre, hvornår du skal pumpe limonade, bytte limonade ud, hvis din brønd går tørt en dag eller måske opkræve folk, der drikker meget limonade.

Dette er ideen bag mange virksomheder i disse dage - disse virksomheder bygger en ”brønd” af dyrebare data og sælger den derefter til andre, der ønsker at få adgang til disse data via en API.

Hvorfor er det vigtigt

Internettet i dag er afhængig af problemfri kommunikation mellem forskellige tjenester. Sådan kan vi bygge værktøjer / websteder, der taler med hinanden. API'et er det grundlæggende lag, der gør det muligt for al kommunikation at ske. Derfor er det vigtigt at vide, hvordan og hvad Internettet bruger til at kommunikere.

Insekt ?

Du har måske set følgende meme på websteder på sociale medier og måske ikke har forstået, hvad det virkelig betød.

En fejl er en fejl i et computerprogram, der forhindrer programmet i at køre som forventet.

Lad os for eksempel antage, at du downloadede en iOS-applikation, som er en type computerprogram, der skal vise den lokale vejrtemperatur i Fahrenheit. Imidlertid viser iOS-applikationen muligvis kun temperaturen i Celsius i stedet for den Fahrenheit, du forventede.

I et sådant tilfælde fungerer programmet ikke som forventet (skal vise Fahrenheit, ikke Celsius), og du vil kalde fejlen en fejl.

Dette er så almindeligt i branchen, at softwareingeniører gjorde det til en indvendig vittighed, derfor er meme, "det er ikke en fejl, det er en funktion".

Hvorfor det er vigtigt

Bugs sker hele tiden. At vide dette hjælper dig med at navigere på internettet og påpege ting, når du ser noget, der ikke fungerer korrekt. Næste gang kalder du det en “bug” korrekt snarere end “den ting der svæver ikke rigtigt”.

Open Source

Jeg vil prøve at forklare Open Source med en simpel analogi, jeg tænkte på :)

Forestil dig, at du er ejer af en limonadestand, og at du ejer en særlig opskrift på at lave den bedste limonade i byen. Du deler ikke den hemmelige opskrift med nogen, fordi du er bange for, at en anden måske tager den og stjæler dine kunder. Din hemmelige opskrift betragtes som "lukket kilde" i dette tilfælde, hvor ingen andre end dig har adgang til den.

Alternativt kan du forestille dig, at du deler din limonadeopskrift frit online, og brug internetets kraft til at hjælpe dig med at forbedre den, så alle kan nyde og drage fordel af den bedst mulige limonade. I dette tilfælde betragtes din opskrift som "Open Source", fordi den gøres frit tilgængelig, og andre kan bidrage, bruge og / eller ændre den.

Dette udtryk er blevet meget mere populært med fremkomsten af ​​Facebook og bølgen af ​​teknologivirksomheder, der opmuntrer internetsamfundet til at deltage i udviklingen af ​​nye og spændende teknologier.

Hvorfor er det vigtigt

Internettet har udviklet sig meget hurtigere de sidste par år på grund af open source. Det er en revolution, og alle skal vide, hvorfor det giver mening at lave ting gratis og dele dem med verden.

Crowdsourcing

Crowdsourcing - At få (information eller input til en bestemt opgave eller et projekt) ved at verve et stort antal menneskers tjenester, enten betalt eller ubetalt, typisk via Internettet.

Crowdsource er ideen om at få en stor gruppe mennesker til at bidrage til en fælles sag.

Lad os antage, at du kører den samme limonadestand igen. Dine kunder siger, at din limonade har brug for en ny smag. Du er klar over, at ved hjælp af Internets kraft kan du bede folk om at hjælpe dig med at brainstorme den bedste limonadeopskrift.

Du kan derefter starte en Twitter-konto og begynde at få folk til at bidrage med deres bedste limonadeopskrift fra hele verden. Dette kaldes Crowdsourcing, som er en handling, der får folk til at bidrage til en fælles sag (i dette tilfælde limonadefremstilling).

Hvorfor er det vigtigt

Internettet har gjort det muligt for hele befolkningen at forene sig og lægge sine bedste hjerner bag nogle af de hårdeste udfordringer i verden. Crowdsourcing har tilladt os at gøre det problemfrit via Internettet. Jeg synes, det er et stort skridt fremad for menneskeheden.

Anbefalede ressourcer

  • Stanfords Online CS 101 - kurset giver dig et grundlæggende overblik over CS-terminologier, hvordan Internettet fungerer, hvordan digitale billeder dannes og behandles osv. Bedst af alt er det GRATIS!
  • Python Crash Course - En af de bedste ressourcer til at komme i gang med Python-programmering. Hvis du gerne vil gøre dine hænder beskidte med programmering, anbefaler jeg, at du starter med Python og den følgende bog.
  • Python, praktisk guide - Dette er en interessant bog at få, når du er færdig med Python Crash Course. Jeg forestiller mig, at du kan gøre det meste herinde uden bogen, men det giver dig mere detaljerede trinvise instruktioner om, hvordan du gør det. Fantastisk til folk, der foretrækker at lære med et godt eksempel.
  • Introduktion til algoritmer - Hvis du gerne vil lære mere om algoritmer, som er et grundlæggende princip inden for datalogi, anbefales denne bog stærkt. Dette er DEN lærebog til mange CS-kurser.
  • Acing the Coding Interview - Dette er mit personlige coaching-kursus, hvor jeg viser dig, hvordan jeg forberedte mig på mine interviews, mine tip og tricks til at acing kodingsinterviewet og mange flere.

Zhia Chong er softwareingeniør hos Twitter. Selvom han ikke kaster kode, spiller han tennis, skriver artikler eller laver Youtube-videoer.

Hvis du kunne lide denne artikel og gerne vil have en kopi af denne i PDF, kan du overveje at abonnere på min adresseliste, hvor jeg deler branchens nyheder, programmering af ting, interviewnotater og meget mere!