Jeg vil tale med dig om, hvorfor vi oftere reparerer VVS end vi skriver afhandlinger om det, om forskellige tilgange til at lære programmering, og hvordan vi prøver at anvende en af dem i vores nye produkt Hyperskill.
Hvis du ikke er til lange indledninger, kan du gå direkte til afsnittet om programmering. Men det bliver mindre sjovt.
Lyrisk afstikker
Lad os forestille os en ung kvinde ved navn Masha. I dag havde Masha planlagt at spise nogle frugter og se en film i fred, men uheldigvis opdagede hun, at vasken i køkkenet var stoppet til. Hvad skal hun gøre ved det — det er endnu uklart. Man kan udskyde spørgsmålet på ubestemt tid, men da hun har noget fritid nu, beslutter Masha at tage fat på problemet med det samme. Sund fornuft foreslår to muligheder: a) kalde en VVS'er b) klare det selv. Den unge kvinde vælger det andet alternativ og begynder at studere instruktionerne på YouTube. Efter råd fra brugeren Vasya_the_plumber kigger Masha under vasken og ser en snoet plastikrør bestående af flere dele. Forsigtigt løsner hun en del ved bunden af vasken og finder intet. Et stykke rør længere nede er dog totalt tilstoppet med en ukendt substans, og selv en gaffel, hun fandt på bordet, kan ikke klare stoppet. Eksperter fra internettet giver ikke så lovende udsigter: delen skal skiftes. Masha finder den nærmeste butik på kortet, tager det uheldige stykke rør med sig og køber en tilsvarende, men ny. Efter sælgerens råd tager Masha også en ny si med til forebyggelse. Quest'en er fuldført: vasken fungerer igen som den skal, og dens hovedperson har imens lært følgende:
- Rørene under vasken kan man selv skrue løs og til igen;
- Den nærmeste VVS-butik er en og en halv kilometer fra Mashas lejlighed.
Masha bemærkede sandsynligvis ikke, hvor meget nyt hun lærte og hvad hun fik erfaring med, for hun var optaget af sin egen komfort i fremtiden, samt at se film og spise et rent æble. Næste gang hun står over for et lignende problem, vil hun løse det hurtigere. Faktisk var Masha ikke kun ved at genoprette verden til dens sædvanlige tilstand; hun lærte induktivt, altså ved hjælp af specifikke tilfælde, og praktisk orienteret, det vil sige at gøre tingene i stedet for at studere dem grundigt og på forhånd.
Alt kunne have været anderledes. Lad os forestille os, at Masha sidder i sin stol om aftenen og pludselig indser, at hun hverken mentalt eller fysisk er klar til en tilstopning i vasken. Hun skynder sig at tilmelde sig en VVS-akademi, studerer typer af vaske, rør og mulige forbindelser, klassificering af VVS-problemer og mulige løsninger. Masha sover ikke om natten og husker terminologien og navnene. Måske skriver hun endda en kandidatopgave om teoretisk rørfaget, hvor hun diskuterer gummipakninger. Endelig, efter at have fået sit certifikat, ser Masha stolt på sit køkken med fuld tillid til, at selv et lille problem med vasken nu vil blive løst ved et fingerknips. I dette scenarie lærte pigen deduktivt, og gik fra det generelle til det specifikke, og hun orienterede sig mere imod teorien.
Hvilken tilgang er så bedst? I tilfælde af vasken og tilstopningen — den første, og her er grundene:
- Hvis det kun er en fungerende vask, der er vigtig, er det nok kun at vide, hvad der vedrører dette område. Når Masha indser, at hun mangler viden, vil hun helt sikkert finde en måde at lære mere på.
- Encyklopædisk viden er måske ikke nyttig i en reell situation, fordi vanen ikke er øvet. For at lære sekvenserne af handlinger giver det mening at udføre dem i stedet for blot at læse om dem.
Lad os forlade den stakkels Masha og gå videre til selve læringsprocessen.
Programmering: Skal man lære eller gøre?
Vi er vant til at tænke, at for at udvikle os og blive eksperter inden for et ukendt område, skal man først og fremmest tage på universitetet eller i det mindste tilmelde sig kurser. Vi lytter flittigt til det, der bliver fortalt, og udfører opgaverne. Når vi så har det eftertragtede diplom eller certifikat i hånden, bliver vi straks forvirrede, fordi vi ikke har forstået, hvorfor vi har fået så meget information, og hvordan vi konkret skal anvende den. Det er ikke et problem, hvis det næste skridt er at skrive videnskabelige artikler og tage til konferencer med dem. I andre tilfælde bør man stræbe efter færdigheder, dvs. gøre og gøre igen specifikke ting, prøve og fejle, for bedre at huske, hvordan man ikke skal handle.
Et af de områder, hvor en "trænet hånd" eller "øje for detaljer" kombineres med bred viden — er programmering. Hvis du taler med erfarne udviklere, vil du høre stolte historier om personer, der fra en ung alder har beskæftiget sig med matematik/fysik/undervisning, og som derefter blev trætte og skiftede til backend. Der findes også programmører uden videregående uddannelse! Først og fremmest værdsætter man ikke certifikater eller eksamensbeviser hos udviklere, men antallet og kvaliteten af de programmer, scripts og hjemmesider, de har lavet.
"Men vent!", vil du indvende, "Det lyder smukt — bare gør det! Jeg kan ikke bare skrive et program, hvis jeg aldrig har programmeret før! Jeg skal forstå, hvor jeg skal skrive, og hvordan jeg generelt taler med kompilerings-sproget. Det er ikke så let at finde en blikkenslager via Google."
Der er en bitter sandhed i dette. Et ukendt aspekt trækker et andet med sig, og det tredje følger, og snart bliver denne proces til en tryllekunstners show, der fortsætter med at trække forbundne tørklæder ud af sin cylinder. Processen er, ærligt talt, ubehagelig; på det femte "tørklæde" virker det som om dybden af uvidenhed er tæt på den Marianergrav. Alternativet til dette er de samme forelæsninger om 10 typer af variable, 3 typer af løkker og 150 potentielt nyttige biblioteker. Trist.
Hyperskill: vi byggede, byggede, og endelig byggede vi.
Vi har tænkt længe over dette problem. Hvor længe vi har tænkt på det, siger datoen for det seneste indlæg på vores blog tydeligt. Efter alle diskussioner og forsøg på at integrere den nye tilgang på Stepik, endte vi med… en anden hjemmeside. Måske har du allerede hørt om den som en del af JetBrains Academy. Vi kaldte den Hyperskill, integrerede projektbaseret læring, knyttede den til en vidensbase om Java, og fik støtte fra EduTools-teamet. Og nu mere detaljeret.
Det konkrete mål. Vi tilbyder et "menu" af projekter, dvs. programmer, som du kan skrive med vores hjælp. Blandt dem er kryds og bolle, personlig assistent, blockchain, søgemaskine osv. Projekterne består af 5-6 stadier; resultatet af hvert stadium er et færdigt program. "Hvorfor så de andre stadier, hvis jeg allerede har fået det til at fungere i første?" Tak for spørgsmålet. For hvert skridt bliver programmet mere funktionelt eller hurtigere. I starten fylder koden 10 linjer, til sidst kan den tage op til 500.
Lidt teori. Det er umuligt at sætte sig ned og, uden at vide et ord om programmering, skrive selv et Hello World. Derfor kan du på hvert trin i projektet se, hvilke teoretiske grundlæggelser du skal lære, og vigtigst af alt, hvor du kan finde dem. Grundlæggelserne findes også på Hyperskill i sektionen “Videnskort” (Knowledge Map). I den første fase af projektet er det ikke nødvendigt for eleverne at læse data fra en fil, de lærer det senere, for deres generelle udvikling, eller hvis det bliver nødvendigt i næste fase.
Videnskort. På det kan du se, hvilke emner du allerede har studeret, og hvordan de er relateret til hinanden. Åbn et hvilket som helst interessant emne. Du kan hurtigt skimming gennem det, men vi anbefaler at løse et par små opgaver for at sikre, at informationen er faldet på plads. I starten vil platformen give dig tests, efter dem — et par programmeringsopgaver. Hvis koden kompilerer og klarer testene, så sammenlign den med et eksempel på løsning (reference solution), nogle gange hjælper det med at finde en mere optimal måde at implementere det på. Eller at sikre dig, at din løsning er helt i orden.
Ingen overflødighed. Vi henter både “grønne” brugere og erfarne udviklere. Hvis du allerede har skrevet programmer, er det ikke et problem, vi vil ikke tvinge dig til at regne 2+2 eller vende en sætning. For straks at komme ind på det rigtige niveau, angiv hvad du allerede kender ved registreringen, og vælg et mere udfordrende projekt. Tøv ikke med at overvurdere dine evner: hvis det er nødvendigt, kan du altid gå tilbage til et glemt emne i videnskortet.
Værktøjer. Det er fantastisk at skrive små bidder af kode i et specielt vindue på hjemmesiden, men virkelig programmering begynder med arbejdet i et udviklingsmiljø (Indraget Development EErfarne programmører ved, hvordan man ikke bare skriver kode, men også konstruerer grafiske brugerflader, samler forskellige filer i et projekt, bruger ekstra udviklingsværktøjer, og en del af disse processer håndterer IDE'en. Hvorfor ikke lære disse færdigheder, mens du lærer at programmere? Her kommer JetBrains og den specielle version af IntelliJ IDEA Community Educational med den forudinstallerede plugin EduTools til hjælp. I en sådan IDE kan du tage kursusforløb, tjekke løste opgaver og få tips til projektet, hvis du glemmer noget. Bekymr dig ikke, hvis du hører ordet "plugin" eller "IDE" for første gang: vi vil forklare, hvad det er, og hvordan du installerer det på din computer eller bærbare computer med minimale problemer. Forstå teorien, og gå derefter til IDE'en for at afslutte det næste trin i projektet lige der.
Deadlines. De findes ikke! Hvem er vi til at banke på hovedet og angive, i hvilket tempo du skal skrive programmet. Når du nyder at skrive kode og ønsker at færdiggøre det, kan du gøre det, i dag eller i morgen. Nyd udviklingen.
Fejl. Alle laver fejl, og du vil også lave en på et tidspunkt i projektet, og så vil dette trin ikke bestå de automatiske tests. Nå, så må du selv finde ud af, hvad der gik galt. Vi kunne fortælle dig, hvor fejlen ligger, men vil det lære dig at skrive kode omhyggeligt? Læs tipsene fra IDEA eller det teoretiske emne om Bugs, og når programmet endelig fungerer, vil en bølge af dopamin sandsynligvis ikke vente længe.
Synlig resultat. Så du har afsluttet dit første projekt, hvad nu? Nyd frugterne af dit arbejde! Spil kryds og bolle med vennerne, så kan du også prale med dine succeser. Upload dit projekt til GitHub for at vise det til din kommende arbejdsgiver, skriv en beskrivelse selv, og angiv de viden, du har brugt. 4-5 komplekse projekter, og så er et beskedent portfolio for den nye udvikler klar.
Mulighed for vækst. Lad os antage, at du ser på Hyperskill og ikke kan finde en vigtig emne eller et nyttigt projekt. Fortæl os det! Hvis din baggrund er bredere og rigere end videnskortet, så skriv til os via formularen. . Vores team vil dele vores egne tips og tricks, så vi ser frem til at hjælpe dig med at transformere din viden til nyttigt indhold, der er forståeligt for brugere i forskellige aldre og niveauer. Måske betaler vi endda, men det er ikke sikkert.
Velkommen: Kom ind, kig, prøv, foreslå, ros og kritiser. Vi lærer også at lære dig.
Kilde: habr.com
