En mildere introduktion til programmering

Illustration af John Adesanya

Denne opskrivning fanger det, jeg lærer, når jeg får coaching-anmodninger. Jeg springer ikke ind i koden eller en opsætning af nogen art. Jeg vil undervise i koncepter.

Hvis du arbejder i en softwareudviklingsvirksomhed som ikke-programmerer, kan du undre dig over, hvad programmererne gør. Og du hører nye buzzwords hver dag. Dette indlæg blev skrevet med dig i tankerne. Uanset om du er en salgsperson, en læge, en advokat, en forretningsførende eller en revisor, hvis du nogensinde har haft det i tankerne at lære at kode, er dette et godt sted at starte.

Hvordan denne artikel er organiseret

Denne opskrivning er opdelt i 4 dele. Når du har læst gennem hver del, finder du et quizafsnit, der hjælper dig med bedre at huske det, du har læst. Så finder du et afsnit "fremad" og svar på quizzen.

Bemærk, at hvert buzzword, der introduceres i denne serie, er med fed skrift, såsom algoritme.

Illustration af John Adesanya

Del 1 - Hvad er programmering?

Et simpelt svar ville være, "Programmering er handlingen ved at instruere computere til at udføre opgaver." Det kaldes ofte for kodning.

Så hvad er et computerprogram? Et computerprogram er en sekvens af instruktioner, som computeren udfører.

Computer i definitionen ovenfor er enhver enhed, der er i stand til at behandle kode. Dette kan være smartphones, pengeautomater, Raspberry Pi, servere for at nævne nogle få.

En god analogi til programmering

For det første er der mønstre i vores hverdagsliv. Universet fungerer på en noget forudsigelig måde; For eksempel - dag og nat, årstider, solopgang og solnedgang. Folk gennemgår rutiner som at rejse sig om morgenen, gå i skole eller arbejde. Vi får instruktioner fra andre mennesker såsom vores overordnede på arbejdet. Hvordan vi tilbereder bestemte opskrifter, kan forklares i begrænsede trin.

For det andet, hver gang vi bruger smarte enheder, kører en eller anden kode i baggrunden. At flytte en musemarkør fra den ene del af computerskærmen til den anden kan virke som en simpel opgave, men i virkeligheden løb så mange kodelinjer bare. En handling, der er så enkel som at skrive bogstaver i Google Dokumenter, fører til, at kodelinjer udføres i baggrunden. Det hele er kode overalt.

Computerprogrammer kaldes også kode. Brug ikke ordet 'koder' (kode skal bruges som et utalligt substantiv). Okay, dette er ikke en engelsk klasse, lad os komme tilbage til virksomheden.

Computerens naturlige sprog

Maskiner har deres naturlige sprog, som mennesker gør. Computere forstår ikke det menneskelige sprog. Det naturlige sprog for computere er den binære kode - 1 og 0. Disse repræsenterer to tilstande: tændt (1) og slukket (0).

Det er det naturlige sprog for elektronisk udstyr. Det ville være hektisk for os som mennesker at kommunikere med computeren binært.

Indtast programmeringssprog

For at kommunikere med maskiner, der taler binært, gør vi det på et sprog, der er tættere på vores eget naturlige sprog. Såsom engelsk, fransk, swahili eller arabisk. Programmeringssprog er tæt på vores naturlige sprog. Men de er mere strukturerede og skal læres grundigt.

De kan være sprog på højt niveau eller lavt niveau. Programmeringssprog på højt niveau er længere væk fra maskinsproget end sprog på lavt niveau. Denne "længere væk" kaldes normalt en abstraktion, men det vil vi ikke gå nærmere ind på i denne serie. Lad os ikke blive distraherede :)

Computeren har brug for en måde at forstå vores menneskelige sprog på. For at gøre dette, har vi brug for en oversætter.

Hvad er oversættere

Kildekode henviser til kode skrevet på et bestemt programmeringssprog. Mere af dette i del 2.

Oversættere har ansvaret for at konvertere din kildekode til maskinsproget. Dette er også kendt som binært. Husk dem og nuller. Vi kan muligvis referere til binærerne som Object Code, Programmet eller et almindeligt ord i dag: App.

Oversættere kan være en af:

  • tolke
  • compilere
  • En hybrid af tolke og kompilatorer
  • montører

tolke

Nogle sprog tolkes. Oversætteren behandler kildekoden linje for linje og kører hver linje i det endelige program eller app. Dette betyder, at den fortolkede kildekode begynder at køre, indtil den støder på en fejl. Derefter stopper tolken for at rapportere sådanne fejl. Mere af dette detaljeret i del 3.

Python er et godt eksempel på et tolket programmeringssprog.

compilere

Kompilatorer fungerer forskelligt. De konverterer kildekoden i sin helhed via en kompilationsproces til binær. Den binære udføres derefter. Hvis der var fejl i kildekoden, registreres de i løbet af kompileringstiden og markeres. Dette afbryder kompilationsprocessen, og der genereres ingen binær.

Tolke oversætter linje for linje og udfører linjen, før de går videre til den næste linje. Kompilatorer oversætter alle linjer i et program til en fil (binær) og udfører hele filen.

Kan du huske definitionen af ​​computerprogram? Det er en sekvens af instruktioner, der udføres af en computer.

Et eksekverende program kaldes normalt en proces. Sådanne programmer bruger visse ressourcer på computersystemet eller smartphonen, såsom hukommelse, diskplads og filsystemet. Et eksekverende program kan også siges at køre.

Vi bruger ordet 'køre', når vi udfører et computerprogram. Den tid, det tager at køre sådanne programmer, kaldes programmets driftstid.

Det er almindeligt at se programmer, der kaldes Apps. Vi forbinder også programmer med de platforme eller miljø, som de kører, eller er designet til. Der er webapps, der kører på webbrowsere, f.eks. Google Spreadsheet. Der er mobile apps, der kører på smartphones som CandyCrush. Der er også desktop-apps såsom Evernote desktop-appen.

Igen udføres tolket kildekode direkte fra kildefilen. Kompileret kildekode konverteres til en binær fil. Den binære fil udføres derefter. Kompileret kildekode kan mislykkes under kørsel, selv efter vellykket kompilering. Se del 3.

Hybridoversættere

En hybridoversætter er en kombination af tolk og kompilator. Et populært hybrid programmeringssprog er Java. Java kompilerer først din kildekode til et mellemformat kendt som Bytecode.

Bytecoden fortolkes og udføres derefter af en runtime-motor, også kendt som en virtuel maskine. Dette gør det muligt for hybridoversættere at køre bytekoden på forskellige operativsystemer.

montører

Der er også Assembler til at oversætte forsamlingssprog på lavt niveau til binært.

I denne serie vil vi kun fokusere på sprog på højt niveau.

En god måde at se på Translators er at se dem som et program i sig selv. Du skal downloade eller hente dem, installere dem på dit computersystem og forstå deres grundlæggende funktion.

Et ofte stillet spørgsmål

Her er et spørgsmål, som begyndere normalt spørger.

Hvilket sprog lærer jeg først?

Der er hundredvis af programmeringssprog. De rangeres efter popularitet, samfund, langsigtet support, pædagogik, forretningsbrug. De kan også rangeres efter teknisk karakter, såsom om de er funktionelle, bydende, statiske, stærke eller løst indtastede.

Nogle sprog er mere pædagogiske end andre. Nogle sprog er til uddannelsesmæssigt formål og ikke til forretningsbrug. Der er sprog skrevet for eksempel for børn at lære at kode.

Der er meget magtfulde sprog, der er lette at opsætte og lære. Python er et sådant programmeringssprog. Jeg anbefaler det normalt til begyndere.

Hvis du er interesseret i at udforske mere om dine muligheder for "førstesprog", er her en god undersøgelse fra Philip Guo.

Når du vil lære et nyt sprog, ved du nu, at du har brug for den sprogoversætter. Dette er et program, du installerer og opsætter på dit computersystem.

Jeg anbefaler, at du begynder at lære at bruge en CLI (kommandolinjegrænseflade). CLI er terminalen eller skallen. Tænk på terminalen som et alternativ til en GUI (grafisk brugergrænseflade).

I GUI'er interagerer du med computeren gennem musemarkøren. Du er også afhængig af visuelle gengivelser af mapper og om alt hvad du gør.

Men når du bruger en CLI, interagerer du med computeren ved hjælp af kommandoer, som du skriver med prompten eller en blinkende markør

$ _

I Windows er den afsendte terminal kommandoprompten. For Mac- og Linux-brugere har du allerede en standard Bash-terminal. For at få den samme oplevelse på Windows skal du installere Git Bash ELLER PowerShell.

Fremadrettet

Nu hvor du er blevet mildt introduceret til, hvad programmering er. Du skal forberede dig på din første kodelinje :)

For at komme i gang har du brug for følgende:

  • Et computersystem
    På dette tidspunkt behøver du ikke en sofistikeret eller meget dyre, du har kun brug for en computer, der fungerer godt.
  • Installer CLI
    Jeg anbefaler dette crashkursus for at komme i gang med, hvordan du bruger CLI.
  • Installer en teksteditor
    Vi vil vende tilbage til dette i del 2
  • Lær et programmeringssprog
    I denne serie lærer du de grundlæggende elementer, der udgør den grundlæggende viden om de fleste programmeringssprog.

Quiz

  • Hvilke grundlæggende værktøjer har du brug for for at starte programmeringen?
  • Hvilken kommando vil du bruge til følgende i bash (CLI)?
  • Kontroller dit nuværende bibliotek
  • Skift til et bibliotek med navnet 'bin' (bin er i dit aktuelle bibliotek)
  • lav et nyt bibliotek kaldet 'lib'
  • oprette en ny fil kaldet 'book.py'
  • liste alt indholdet i det aktuelle bibliotek

Resumé

Vi har gennemgået det grundlæggende ved programmering med en introduktion til Translators. Ordet "kildekode" er ikke længere mærkeligt for dig. Vi undersøger, hvad en kildekode er detaljeret i næste del.

Svar på quizzen

Hvilke grundlæggende værktøjer har du brug for for at starte programmeringen?
En computer, en teksteditor, shell (terminal) og en compiler / tolk

Hvilken kommando vil du bruge til følgende i bash (CLI)?

  • Kontroller dit nuværende bibliotek: pwd
  • Skift til et bibliotek med navnet 'bin': cd bin
  • oprette et nyt bibliotek kaldet ‘lib’: mkdir lib
  • Opret en ny fil kaldet 'book.py': berør book.py
  • liste alt indholdet i det aktuelle bibliotek: ls
Fra Wikimedia Commons, det gratis medieoplagringssted

Del 2 - Kildekode

Nu hvor du forstår begrebet programmering, vil vi undersøge kildekoden.

En kildekode er dybest set en fil, ligesom en Microsoft (.doc) fil, men lidt anderledes. Det er en rå tekstfil, skrevet på meget enkle redaktører, ligesom Windows Notepad. Du vil huske fra det foregående afsnit, at du har brug for enten tolke eller kompilatorer for at konvertere din kildekode til binær. Kildekoden skal gemmes i en fil, der sendes som en input til oversætteren.

Afhængigt af det sprog, du skriver, er der udpegede udvidelser til at gemme din kildekodefil. Pythons udvidelse er '.py'. Java er '.java'. Php er ‘.php’ og PERL er ‘.pl’ for at nævne nogle få.

Når du er færdig med at skrive din kildekode, skal du køre den gennem oversætteren. Som et eksempel kan du køre din Python-kildekode her ved hjælp af pythoncommand.

Kom godt i gang: Dit første program

  • Følg instruktionerne her for at opsætte Python på dit computersystem.
  • Installer en simpel editor til at indtaste din kildekode. Du kan bruge sublim teksteditor til en start.
  • Åbn en ny fil på din editor, og skriv følgende:
udskriv 'Hello Python!'
  • Husk at gemme filen som main.py
  • Find stien til filen på din CLI, og skriv kommandoen herunder:
$ python main.py

Resultatet skal se sådan ud:

Anatomi af en typisk kildekode

Vi vil nu undersøge indholdet af en typisk kildekodefil. Nedenfor er de almindelige komponenter:

nøgleord

Korte, menneskelige læsbare ord, normalt kendt som nøgleord. De er særegne for det sprog, du lærer, og de er specielle. Vi vil vende tilbage til dette i en jippy. Du skal lære nogle af nøgleordene udefra. Her er det sæt nøgleord, der genkendes og bruges i Python.

https://www.programiz.com/python-programming/keyword-list

identifikatorer

Ord opfundet af dig - Ja dig, programmøren. Disse ord kaldes generelt identifikatorer. De kan oprettes af dig eller andre programmerere. De pakkes i form af plugins, bedre kendt som Biblioteker.

Et eksempel på et bibliotek er Math-biblioteket. Det giver dig adgang til funktioner som kvadratroten (Math.sqrt), der bruges i Javascript.

Mange programmeringssprog leveres med masser af biblioteker. Disse kaldes generelt deres SDK'er (softwareudviklingssæt). Du vil downloade dem sammen med compileren for at begynde at bygge teknologier, apps og projekter. Udover disse er der rammer, der er designet til at hjælpe med at bygge på en bestemt platform såsom web eller mobil.

Nogle identifikatorer er bundet med et sprog, du bruger, og bruges muligvis ikke som en brugernavnet identifikator. Et eksempel er ordstrengen i java. Sådanne identifikatorer sammen med nøgleord kaldes Reserved Words. De er ikke nøgleord, men ligesom nøgleord er de også specielle.

Alle nøgleord er reserverede ord, det inverse er ikke sandt.

De ord, du vælger, skal være meningsfulde for den, der ser dem ved første øjekast.

En almindelig brug af identifikatorer er i navngivning af variabler, vi vil undersøge dette lidt.

Grundlæggende datatyper

Du kan også finde data af forskellige typer i en kildekode, tal (3, 5.7, -100, 3.142) og tegn (M, A). I nogle programmeringssprog opdeles antallet yderligere i deres egne typer, såsom heltal.

Heltal kan være underskrevet eller usigneret, store heltal og små heltal. Stor eller lille afhænger faktisk af mængden af ​​hukommelse, der er reserveret til sådanne numre. Der er tal med decimaler, normalt kaldet dobbelt og flyder, afhængigt af det sprog, du lærer.

Vi har også boolske datatyper, der vurderer til sandt eller usant.

Komplekse datatyper

Datatyperne beskrevet ovenfor er kendt som de elementære, primære eller basale datatyper. Vi kan bygge mere komplekse datatyper ud fra disse grundlæggende datatyper.

En matrix er den enkleste form for den komplekse datatype. En streng er en række karakterer. Vi kan ikke undvære disse komplekse datatyper og bruger dem ofte, når vi skriver vores kildekode.

En kombination af tegn er en streng. For at bruge en analogi er en streng til en computer, hvad et ord er for et menneske. Ordet 'Termometer' består af 11 karakterer - vi kalder det simpelthen for en streng med tegn. Strengbehandling er et bredt emne i sig selv at lære, og skal studeres af enhver håbefuld programmør.

Komplekse datatyper leveres med de fleste programmeringssprog, du bruger. Der er andre, som vi bygger os selv som programmerere, såsom klassesystemerne. Disse er også kendt som (OOP) objektorienteret programmering.

Variable

Variabler kaldes simpelthen hukommelsesplaceringer. Vi ønsker undertiden at opbevare data i vores kildekode et sted, hvor vi kan huske dataene, til at bruge igen. Dette er normalt et hukommelsessted, som vores kompilator / tolk reserverer os. Vi er nødt til at navngive disse hukommelsesplaceringer for at huske dem senere. Overvej Python-kodestykket nedenfor:

pet_name = 'Hippo'print pet_name

pet_name er et eksempel på en variabel. Fordi den type data, der er gemt i pet_name, er en streng. Det er kendt som en strengvariabel. Der er også numeriske variabler. Variabler er kategoriseret efter deres datatyper.

Konstanter

Konstanter er værdier, der ikke ændres gennem programmets levetid. Vi bruger store bogstaver til at håndhæve, at nogle værdier skal være konstante værdier. Nogle sprog giver en måde at skabe konstante værdier på, mens andre ikke gør det.

Nogle sprog giver den luksus at erklære typer, som variabler skal være. Vi kalder ofte disse stærkt indtastede sprog. Java er et godt eksempel.

Andre leverer ikke disse funktioner. De er løst indtastede eller dynamiske programmeringssprog. Python er et godt eksempel.

Sådan erklæres konstante værdier i JavaScript.

const petName = 'Flodhest'

konstanter

I hver kildekode er der datatyper, du bruger overalt omkring din kode, der kun ændres, hvis du selv redigerer dem. Vi kalder disse bogstaver, som ikke skal forveksles med variabler eller konstanter. Bogstaver kan ses, når du kigger gennem kildekoden. Det kan være strenge, tal, decimaler eller andre datatyper.

I kildekodestykket ovenfor er ordet 'Hippo' en bogstavelig - en streng bogstavelig. Det vil altid være 'Hippo', indtil du redigerer kildekoden. Når du lærer at kode, lærer du, hvordan du administrerer bogstaver i din kildekode på en måde, der er let at vedligeholde uden at ændre meget af din kildekode.

Skilletegn / Symboler

I de fleste kildekoder finder du generelt forskellige tegnsætningstegn afhængigt af programmeringssproget. Java har flere skilletegn, f.eks. End Python.

Almindelige tegnsætningsmærker inkluderer komma (,), halvkolon (;), kolon (:), seler ({}), parenteser (()), firkantede seler ([]), anførselstegn (“”), rør ( |), skråstreg (\), periode (.), spørgsmålstegn (?), caret (^) og procentdel (%).

Velkommen til verden af ​​kodning, hvor tegnsætningstegn er dine bedste venner. Du finder dig selv at skrive dem meget.

Operatører

Chancerne for at du skriver kode for at udføre en operation er meget høje. På den mindste måde udfører du en tildelingsoperation i din kildekode. Vi præsenteres for et stort antal operatører af de programmeringssprog, vi bruger. Eksempler inkluderer tilføjelse (+), division (/) multiplikation (*), subtraktion (-) og større end (>).

Operatører kan generelt klassificeres som følger:

  • Tildelingsoperatører
    Dette er undertiden forkert opfattet som lig. Tilsvarende bruges til at sammenligne to værdier. Tildelingsoperatør sætter en værdi i en variabel, såsom pet_name = 'Hippo'
  • Aritmetiske operatører
    Omfatter operatører til at udføre aritmetiske opgaver såsom tilføjelse og subtraktion. Nogle sprog indeholder nogle aritmetiske operatører, som andre måske ikke har. F.eks. Returnerer moduloperatøren (%) den resterende værdi i divisionsoperationer.
  • Relationsoperatører
    bruges til sammenligning af værdier. De inkluderer større end, mindre end, lige til, ikke-lig med. Deres repræsentation varierer også afhængigt af hvilket programmeringssprog du lærer. <> er ikke lig med nogle sprog, mens andre er! = eller! ==.
  • Logiske operatører
    bruges til at beregne logiske handlinger. De ofte anvendte logiske operatører er og, eller ikke. Nogle sprog repræsenterer disse operatører med symboler som && for og, || for eller, og! for ikke. Værdier for logisk drift evalueres normalt til Boolsk værdistrue eller falsk.

Kommentarer

Dokumentation vil være et vigtigt aspekt af dine kodningsaktiviteter. Det er sådan, du forklarer din kode til andre programmerere. Dette gøres via kommentarer, som lejlighedsvis tilføjes til dele af din kode. Gennem kommentarer kan du guide andre programmerere gennem, hvilken type data din kode fungerer med, og den type output, den genererer.

Normalt ignorerer kompilatoren kodelinjer, der er kommentarer.

Kommentarer varierer på tværs af sprog. #En bruges til at introducere kommentarer i Python.

Her er et eksempel på en kommentar i Python.

# programuddrag til beregning af kortnummer for N-numre

I Java, C og C ++ er der kommentarer til en enkelt linje ligesom # i Python, men // -symbolet bruges i stedet. Der er også kommentarer på flere linjer / *… * /. Du kan læse mere om kommentarer på det sprog, du har valgt at lære.

Hvidafstand og faner

Dette er mellemrum oprettet mellem den kode, du skriver. Dette gøres, når du rammer mellemrumstasten eller fanetasten på dit tastatur.

Fremadrettet

Sørg for, at du korrekt indstiller Python på dit computersystem og kører dit første program.

Quiz

Her er en simpel quiz til dig.
Identificer de forskellige elementer, vi har studeret indtil videre i Java-kildekodestykket nedenfor:

// en rekursiv implementering af Factorial
import java.util.Scanner;
klasse RekursiveFactorial {
  public static void main (String [] args) {
    Scannerindgang = ny scanner (System.in);
    System.out.print ("Find faktoren om:");
    int num = input.nextInt ();
    System.out.println ("Factorial of" + num + "=" + fact (num));
 }
 statisk lang faktum (int n) {
  hvis (n <2) returnerer 1;
  return n * fact (n-1);
 }
}

Resumé

Du er blevet introduceret til, hvad en kildekode er, og har undersøgt indholdet af en typisk kildekode.

Kompileret eller oversat kan din kode muligvis ikke køre af flere årsager. Disse grunde er ofte relateret til fejl i din kildekode. Disse fejl er kendt som bugs.

Handlingen med at finde og fjerne disse bugs kaldes debugging og er en færdighed, du skal lære som programmerer. Vi undersøger, hvilke fejl der er i næste del.

Svar på quizzen

Identificer de forskellige elementer, vi har studeret indtil videre i Java-kildekodestykket nedenfor:

nøgleord:
import, klasse, offentlig, statisk, tom, ny, int, lang, hvis, returnering

identifikatorer:
java, util, Scanner, RekursiveFactorial, main, String, args, input, System, ind, ud, udskriv, println, num, nextInt, fact, n

konstanter:
String Literals - “Factorial of” = “Find factorial of:”
Heltalsbøger - 2, 1

Operatører:
Tildelingsoperatør =
Concatenator + (til sammenføjning af strenge)
mindre end <
formere sig *
trække fra -

Tegnsætning og symboler
{} [] (); .

Kommentar
// en rekursiv implementering af Factorial

Del 3 - Fejlsøgning

Når du begynder at prøve kodestykker, eller du prøver at løse faktiske problemer med kode, vil du snart indse, at der vil være øjeblikke, hvor dit program går i stykker, afbrydes og stopper med at køre.

Dette er ofte forårsaget af fejl, kendt som bugs eller undtagelser i run-time. Handlingen med at finde og fjerne bugs fra vores kode debugging. Du bliver bedre til at fejlsøge kode, når du prøver at gøre det mere. Vi fejler ikke kun vores egen kode, vi kan også fejlsøge kode skrevet af andre programmerere.

For at komme i gang er vi nødt til at identificere de almindelige fejl, der sandsynligvis kommer til at komme i overfladen i vores kildekode.

Syntaktiske fejl

Disse fejl tillader ikke din kildekode at samles på kompilerede programmeringssprog. De registreres på kompileringstidspunktet eller under fortolkningen af ​​din kildekode. De kan også let opdages af linters. Vi lærer lidt mere om linters senere.

De er oftest forårsaget, når du bryder den forventede form eller struktur for det sprog, du koder i. Et eksempel mangler et lukkebeslag i en ligning.

Semantiske fejl

Semantiske fejl, også kendt som logiske fejl, er de mest besværlige af alle fejl. De kan ikke let opdages. Et tegn på, at der er en semantisk fejl, er, når programmet kører med succes, men ikke producerer den ønskede output.

Overvej dette eksempel:

3 + 5 * 6

Af præference, populært kaldet BODMAS, i matematik, forventer vi, at multiplikationsdelen først skal evalueres, og derefter bliver det endelige resultat 33. Hvis programmereren ønskede tilføjelsen til at evaluere først i stedet, vil dette give et andet output end det ønskede produktion. Fejl som dette er semantiske fejl, der har mere at gøre med mening end struktur (syntaks).

Parenthesis omkring 3 + 5 giver i stedet det ønskede output på 48.

(3 + 5) * 6

Kørselsfejl

Ligesom semantiske fejl, opdages run-time-fejl aldrig på kompileringstidspunktet. I modsætning til semantiske fejl, afbryder runtime-fejl programmet og forhindrer det i at udføre yderligere. De er normalt forårsaget af uventet resultat af en vis beregning inden for kildekoden.

Her er et godt eksempel:

input = 25x = 0,8 / (Math.sqrt (input) - 5)

Kodestykket ovenfor kompileres med succes, men et input på 25 vil resultere i ZeroDivisionError. Dette er en kørselsfejl. Et andet populært eksempel er StackOverflowError eller IndexOutofBoundError. Det, der virkelig er vigtigt, er, at du identificerer disse fejl og lærer, hvordan du håndterer dem.

Der er fejl forårsaget af, hvordan din kildekode bruger hukommelse og plads på platformen eller miljøet, hvor den køres. De er også fejl i kørslen. Sådanne fejl som OutOfMemoryErrorand HeapError skyldes normalt, hvor meget din kildekode bruger ressourcer. Et godt kendskab til algoritmer vil hjælpe dig med at skrive kode, der bedre bruger ressourcerne.

Processen med at omskrive din kode for bedre ydeevne kaldes optimering, og et ikke-så-relateret ord er refactoring. Når du bruger mere tid på kodning, skal du også have disse i tankerne.

debugging

Her er et par tip til, hvordan du går i gang med at fejlsøge din kode:

  • Brug Linters
    Linters er værktøjer, der hjælper med at læse gennem din kildekode for at kontrollere, om de overholder den forventede standard på det sprog, du koder i. Der er linters til mange programmeringssprog. Sørg for at få et til det sprog, du lærer.
  • IDE'er over enkle redaktører
    Du kan vælge en IDE designet til det sprog, du lærer. IDE står for Integrated Development Environment. De er software bygget til at skrive, debugging, kompilere og køre kode. De leveres normalt med kraftfulde fejlfindingssæt til at se eller gennemgå din kode.
    Jetbrains fremstiller fantastiske IDE'er som Webstorm og IntelliJ. Der er NetBeans, Komodo, Qt-editor, Android Studio, XCode (leveret med Mac) for at nævne nogle få.
  • Læs din kode højt
    Dette er normalt nyttigt, når du leder efter en semantisk fejl. Når du læser din kode højt, er der en stor chance for at du også læser fejlen. Det springer måske mod dig, da hvad der sandsynligvis var galt.
  • Læs fejllogfiler
    Når kompilatoren markerer en fejl, skal du huske at se linjenummeret eller den del af din kode, der er markeret.

Fremadrettet

Som nybegynder lærer du at kode fra bøger, online tutorials eller fra videoer. Du skriver ofte kode ned, som du ser dem.

Her er noget, du skal gøre, når du er færdig med at skrive eller køre en sådan kode, skal du lære at bryde dem. Hvordan gør du det?

Skift noget for at se, hvordan koden opfører sig. Gør dette, så du ikke antager noget som helst, og du er temmelig sikker på, at du forstår, hvad der foregår.

Quiz

1. Hvad er den sandsynlige fejl i Python-kodestykket nedenfor:

varer = [0,1,2,3,4,5]
trykte genstande [8]
// tip: varer her er en matrix med 6 artikler. For at hente den fjerde vare for eksempel bruger du emner [3]. Vi begynder at tælle fra 0.

2. Hvad er den sandsynlige fejl i Python-kodestykket nedenfor:

input = flodhest
hvis input == 'Hippo':
  tryk 'Hej, flodhest'

Afsnit Resume

Tillykke! Fejlordet er ikke længere mærkeligt for dig, og det at vælge bugs nu burde heller ikke være det. Dernæst undersøger vi den fælles strøm af den kode, vi skriver hver dag.

Svar på quizzen

Hvad er den sandsynlige fejl i Python-kodestykket nedenfor:
(1) Kørselsfejl: Indeks uden for rækkevidde
(2) Syntaksfejl: Mangler start citatmærke på linje 1

http://www.publicdomainpictures.net/

Del 4 - Grundlæggende kodningsstrømme

Line of Code, udtryk og udsagn

Enheden for enhver kildekode er LOC (Line of Code). Det enkleste program er en kodelinje. En LOC kan være et nøgleord, et symbol eller en erklæring. Det er en kodelinje, så længe den er på sin egen linje.

Lad os overveje en simpel kodelinje:

areal = 0,5 * base * højde

0,5 * base * højde er et udtryk. Et udtryk er en kombination af operatører og operander. I det her givne eksempel er operanderne 0,5, base, højde. Du vil huske, at 0,5 er et flydende punkt bogstaveligt, base og højde er variabler. Operatøren er * (multiplikation).

Udtryk er måske ikke meningsfulde, hvis de forbliver alene som en LOC. Når vi tildeler værdien af ​​et udtryk til en anden variabel, i tilfældet over området, kaldes det, vi har, en sætning. Det er stadig en erklæring, når vi knytter udtryk til nøgleord, eksempel: returnere 0,5 * base * højde

I resten af ​​dette afsnit repræsenterer vi en sætning som symbolet S. Den niende sætning er Sn blandt en række (eller sæt) sætninger

For at forstå programmeringen hurtigt er et godt udgangspunkt at forstå de grundlæggende kodningsstrømme. Grundlæggende strømme kaldes også kontrolstrømme. Når du har forstået disse strømme, finder du dem på mange af de programmeringssprog, du lærer.

Bemærk, at eksemplerne i denne opskrivning er rent grundlæggende. Du skal henvise til det sprog, du lærer, for at få en indgående kendskab til de nøgleord, den leverer.

Også de grundlæggende strømme, der introduceres her, er forskellige fra designmønstre i programmering. Forstå disse grundlæggende strømme først. Du indhenter senere almindelige designmønstre i programmeringen, når du lærer mere.

Her er de grundlæggende programmeringsstrømme:

  • Sekventiel
  • Betinget / Forgrening
  • Iteration / Repetition / Loops

Sekventiel

Dette er den mest basale strømning, hvor den ene erklæring udføres efter den anden. I den faktiske forstand opløses enhver anden strøm til en rækkefølge (mere om dette senere).

S1
S2
S3
.
.
.
Sn

I nogle programmeringssprog som JavaScript er det muligt for S3 at køre før S1. Dette sker, hvis S1 er blokeret af nogle opgaver, der kan tage mere tid, såsom Data Base eller File-operationer, kendt som asynkrone opgaver. Der er måder omkring sager som dette. Ikke at bekymre dig, det vil være en leg at lære, når du henter programmeringssproget for at lære.

Betinget / Forgrening

Den erklæring, der udføres, bestemmes af betingelser. Det centrale nøgleord her er if-nøgleordet. Det er en af ​​de mest anvendte kodningsstrømme.

Her er det enkleste betingede mønster:

hvis (betingelse) så:
   S1

I eksemplet ovenfor kører enten S1, eller der sker ikke noget. S1 udføres kun, hvis den givne betingelse er sand.

Her er et andet betinget mønster:

hvis (betingelse) så:
  S1
  S2
andet:
  S3
  S4

Dette kan læses som enten kørsel af S1-S2 eller S3-S4 baseret på den givne betingelse. Hvis betingelsen er sand, behandles S1 og S2. Ellers behandles udsagnene S3 og S4. Dette i faktisk forstand er en rækkefølge:

S1
S2

Vi har også den multi-betingede stil:

hvis (betingelse1) så:
  S1
ellers hvis (betingelse2) så:
  S2
andet:
  S3

Her hvis betingelse1 er sandt, behandles S1. Ellers testes tilstand2, og hvis sandt, behandles S2. Dette kan fortsætte og fortsætte.

For den multi-betingede stil giver mange programmeringssprog switchstatement. Her er mønsteret for switch-erklæringen:

skifte værdi:
  sagstilstand1:
    S1
    pause
  
  sagtilstand2:
    S2
    pause
Standard:
    S3

Betingelsen1 og betingelsen2 sammenlignes med værdien i switch-sætningen. Hvis nogen af ​​dem stemmer overens med værdien, udføres udsagnet i sagsblokken.

Der er andre valg for betinget flow. Nogle er specifikke for det sprog, du beslutter at lære, såsom den betingede operatør (:?), Og andre nøgleord, der letter forgrening som cyklus og pause. Sørg for at bruge engang på at forstå betingelsen / forgreningsstrømmen.

Iteration / Repetition / Loops

Iterations- / gentagelsesstrømmen holder udsagn (e) kørende, så længe nogle betingelser er opfyldt, og stopper med at udføre erklæringen, når betingelsen ikke længere er sand.

Her er mønsteret:

mens (betingelse):
  S1
  S2

I eksemplet ovenfor kan udsagn S1 og S2 muligvis udføre en gang, flere gange eller udføres muligvis ikke overhovedet. Hvis den givne betingelse er sand, første gang whilestatementet opstår, behandles S1 og S2. Statustilstanden kontrolleres igen, og S1and S2 udføres, så længe betingelsen er sand.

I det øjeblik betingelsen bliver falsk stopper udførelsen af ​​S1 og S2.

Resultatet af udsagnet ovenfor, hvis betingelsen er sand, skal være:

S1
S2
S1
S2
S1
S2

Hvilken kodningsstrøm er det? Hvis du besvarede sekventielt, er du meget korrekt. Stadig som vi kan se, løses de andre strømme til den sekventielle strøm.

Her er et andet iterationsmønster:

gøre:
  S1
  S2
mens (betingelse)

I dette eksempel udføres S1 og S2 ved leasing en eller flere gange. Dette skyldes, at de udføres, før tilstanden testes.

I mange programmeringssprog leveres nøgleord som do og i mellemtiden til implementering af gentagelsesstrømmen. Et andet almindeligt nøgleord er nøgleordet til. Her er det fælles mønster for for-erklæringen.

for (initialværdi; betingelse; reduktion / inkrement initialværdi):
  S1
  S2

Mange sprog har forespørgsel brugt til at arbejde gennem hvert element i et komplekst objekt som f.eks. En matrix eller struktur.

Quiz

Identificer kodningsstrømmene i følgende Python-kodestykker:

numlist = []
cnt = 0
mens cnt> = 0:
  m = int (raw_input ())
  hvis m <0:
    pause
  numlist.append (m)
  cnt = cnt + 1

Resumé

De her omhandlede strømme er de grundlæggende strømme. Der er en måde at gruppere en flok kode sammen og give dem et navn. På denne måde kan du kalde denne bundt kode, når du har brug for dem på én gang. Dette kaldes en procedure. I det tilfælde, hvor bundkoden udfører en handling og returnerer en værdi, har du en funktion.

Hvordan procedurer og funktioner implementeres, varierer med forskellige sprog. Du kan ikke springe disse over for at få det grundlæggende i et hvilket som helst sprog. De er meget vigtige for at organisere din kode. Faktisk er det her byggestenene til din kode også kaldes modulær programmering.

Der er andre strømme, som du lærer, i det øjeblik du forstår funktioner, en, der kommer til at tænke på er rekursion.

Alligevel vil du opdage, at der inden for procedurer og funktioner stadig er de fantastiske kodningsstrømme, vi har dækket her - sekventiel, betinget og loops / iterativ flow.

Fremadrettet

Nu har du lært de mest basale koncepter ved programmering af din computer. Hvis du ønsker at lære mere eller ønsker at gøre en karriere med softwareudvikling, er alt hvad du skal gøre at dykke dybere ned i de dybere farvande. Der er så mange ressourcer, der kan hjælpe dig med at lære. At vide, hvad man skal hente baseret på dit erfaringsniveau, betyder meget.

Prøv ikke at blive overvældet af de nye ord, du hører fra de mere erfarne programmører i din vennekreds. Du kan holde en pude for at notere disse vilkår, men vær ikke under pres for at finde ud af, hvad de betyder. Du vil indhente, mens du lærer og øver.

Her er et par ressourcer til at hjælpe med at springe igang din kodningskarriere og til at hjælpe med at bygge videre på det fundament, du fik herfra:

  • https://www.codecademy.com/
    Vælg Python-kursus
  • https://app.pluralsight.com/library/courses/what-is-programming/table-of-contents
    Gratis kursus i pluralsight

BEMÆRK: Jeg anbefaler ikke overlæsning om det samme emne. Jeg tror på at handle på det lille, du har lært, det vil sige at øve. Dette er grunden til at jeg ikke dumper for mange links her til din læring. Du er velkommen til at google op eller finde andre baseret på det, du allerede ved, hvis du ikke er en første-timer.

Endelig udfordring

Jeg udfordrer dig hermed til:
Tag nogle af disse udfordringer op:

  • Find enhver enkel app online, og gengiv den på det programmeringssprog, du har lært

ELLER

  • Tænk på enhver idé, selvom den er så enkel som en spandliste-app
    opbyg en app omkring denne idé.

Jeg vil anbefale denne artikel fra codementor for at komme i gang med dette.

Svar på quizzen

Identificer kodningsstrømmene i de følgende Python-kodestykker.

  • Sekventiel strømning
  • iteration
    udsagnet mens
  • Betinget
    if-udsagnet

Særlig tak til Maya Neria, Joshua Ugba og Mohini Ufeli for at have gennemgået denne opskrivning, Surajudeen Akande for at have opfordret mig til at offentliggøre den, det redaktionelle team på Andela for anmeldelserne, John Adesanya for illustrationer og til 'Kunmi - disse lektioner startede med hendes ønske om at lære at kode.

Hvis du kunne lide dette, skal du klikke på klappeikonet, så andre kan se dette her på medium. Hvis du har spørgsmål eller bemærkninger, skal du bruge kommentarafsnittet til at dele dine tanker.