1. Læring baseret på praksis

Java-læring baseret på praksis

Der er mennesker, der elsker CodeGym af hele deres hjerter, og der er mennesker, der hader det af hele deres hjerte. Men selv CodeGyms mest ondskabsfulde kritiker vil uden videre være enig i, at det har et imponerende stort antal opgaver. Og grunden til, at der er så mange af dem, er, at al CodeGym træning har praksis som grundlag .

Programmering er en færdighed. Ingen siger: "Jeg ved, hvordan man programmerer". Hver programmør siger: "Jeg kan programmere". Det er en praktisk færdighed, som at svømme eller spille skak. Og du kan kun dyrke færdigheden gennem konstant øvelse.

Derfor er hele CodeGym-forløbet en sekvens af stadig sværere opgaver. Du starter med meget lette, primitive opgaver og slutter med de sværeste og mest interessante. Sværhedsgraden vokser lidt for hvert niveau. Dette er netop den vej, der vil føre dig til dit mål om at blive programmør.


2. Opgavetyper

En hel masse forskellige typer opgaver venter dig på CodeGym. Lad os liste de vigtigste:

Opgaver, hvor du skriver et program

Det er de vigtigste opgaver i forløbet. Deres sværhedsgrad varierer meget: fra de enkleste opgaver til dem, du skal tænke meget over.

Målet med disse opgaver er at skrive et program, der opfylder specificerede betingelser og krav. De fleste opgaver falder ind under denne kategori. Af hensyn til CodeGym-studerende markerer vi disse opgaver efter deres sværhedsgrad: LET , MEDIUM , HÅRDT og EPISK .

EPIC opgaver er ofte baseret på fremtidigt læringsmateriale i lektioner, du endnu ikke har låst op. De er populære blandt CodeGym-studerende, som føler, at kurset er for nemt for dem. Andre kan blot springe disse opgaver over og vende tilbage til dem senere, når de allerede er blevet fortrolige med den relevante teori.

Projekter

Ulempen ved almindelige opgaver er, at de er små. Færdig og glemt, som man siger. Derfor er det sjældent muligt at gøre dem særdeles interessante. Men et stort program er svært at teste: Der er simpelthen for mange måder at implementere det på.

Derfor introducerede CodeGym projektopgaver — store opgaver fordelt på 5-35 almindelige delopgaver. Du udfører alle delopgaverne sekventielt, og du ender med et stort program.

I slutningen af ​​hvert niveau efter niveau 20 er der én stor projektopgave, som er opdelt i tyve delopgaver. Der er også yderligere 6 spilopgaver, som også er projekter. Og der er én projektopgave for at blive optaget i en online praktik. I alt er der 27 projektopgaver i hele forløbet.

Quizzer

I lang tid havde CodeGym ingen tests eller quizzer. CodeGyms skaber er af den opfattelse, at beståede tests skaber "illusionen om viden" hos mennesker. Folk ved ikke rigtig, hvordan man programmerer, men de er helt overbeviste om andet, da de har bestået testene. Sådanne mennesker holder op med at lære, da "de allerede ved alt".

Efterfølgende blev der tilføjet quizzer for at give CodeGym-studerende mulighed for nemt at identificere huller i deres læring. Det er nyttigt for programmører at kende nuancerne af de ting, de arbejder med til daglig i deres fag.


3. Opgavestatusser

Hver opgave på CodeGym har en særlig status. Status kan ændre sig, efterhånden som du løser opgaver.

Hver CodeGym-opgave er forbundet med en lektion. I første omgang vil du ikke have adgang til nogen opgaver, hvilket betyder, at du ikke vil være i stand til at løse dem.

Når du åbner næste lektion, bliver alle opgaverne i lektionen tilgængelige til løsning, dvs. deres status ændres til "Tilgængelig".

Hvis du har sendt en opgave til verifikation mindst én gang, ændres dens status fra "Tilgængelig" til "I gang".

Til sidst, når du har opfyldt alle kravene, og validatoren accepterer din indsendelse, ændres opgavens status til "Udført".

Brugere med et Premium Mentor-abonnement har 3 dage mere til at prøve at skrive andre løsninger til opgaven. Når dette ekstra tidsrum er udløbet, flytter opgaven til status "Lukket", og denne status ændres ikke længere.


4. Krav

I de første år af CodeGym, når du verificerede hver opgave, fik du et simpelt resultat: ja eller nej. Programmet bestod enten alle prøverne, eller også gjorde det ikke. Super simpelt, men ikke super nyttigt.

Når folk lærer, er det meget vigtigt, at de forstår, hvad de gør forkert, og hvordan man begynder at gøre det rigtigt. Derfor giver det perfekt mening, at hvis serveren ikke accepterer din løsning, så spørger du, ja, hvad er der galt med den?

For at få svar på dette spørgsmål har du brug for, at nogen dykker ned i din løsning, analyserer den og fortæller dig, hvad der er galt med den. Dette ville tage lang tid og være dyrt. Skønheden ved øjeblikkelig opgavebekræftelse er, at du kan sætte dig ned for at studere klokken 02.00, og det hele vil fungere ligesom alle andre tidspunkter.

Derfor omskrev vi alle opgaverne på CodeGym. Nu har hver opgave ikke kun opgavebetingelser, men også en liste med 5-10 krav, der konkretiserer betingelserne. Det vigtigste er, at hvert krav verificeres separat.

Det betyder, at når du sender en opgave til verifikation i dag, får du et udvidet svar: ud for hvert opgavekrav vil du se et særligt ikon, der angiver, om dit program opfylder dette krav eller ej. Eksempel:

Krav

Denne tilgang forenkler livet i høj grad, når du arbejder med opgaver, der kræver, at du skriver flere klasser eller metoder. Du vil altid kunne se, hvilke metoder eller klasser du har skrevet korrekt, og hvilke du ikke gjorde.


5. Anbefalinger

Er det muligt at gøre opgaverne endnu bedre på en eller anden måde? Ville det ikke være fantastisk, hvis du efter hvert tjek fik at vide, hvad der præcist er galt i dit program og fik tip om, hvordan du fikser det? Ja, det ville være fedt! Nå, gæt hvad? Det gør vi netop på CodeGym 🙂

Vi fanger snesevis af almindelige fejl ved at kontrollere hver opgave. Hvis dit program laver en fejl, som validatoren kender til, så giver det en anbefaling - et tip til, hvordan du kan rette din løsning, så den opfylder alle kravene.

Tænk over det. Der er nu omkring 1200 opgaver på CodeGym, med i alt cirka 10.000 krav. Og der er flere anbefalinger forbundet med hvert krav. Nogle krav har dusinvis af dem. CodeGyms validator er klar til at komme med over 50.000 anbefalinger til brugerløsninger.

Plus, alt dette sker, mens din løsning er valideret, hvilket i de fleste tilfælde tager mindre end et sekund. Ingen person kunne gøre det. Dette er en rigtig virtuel mentor.

Anbefalinger

6. Fællesskab

CodeGym fokuserer på en hel masse praksis , som udgør mere end 80% af hele læringsprocessen. Vi forvandlede læring til en stor, engagerende mission (faktisk en række quests).

Men alle er forskellige: Nogle mennesker lærer hurtigt, og andre lærer langsommere. Nogle mennesker finder nyt materiale nemt, mens andre finder det sværere. Men vores opgave er, at hver af vores elever kommer i mål. Det er i hvert fald det, vi stræber efter.

I denne verden er programmører ikke kun et par millioner mennesker, der skriver kode på forskellige sprog og skaber startups i deres fritid. De danner et globalt netværk, som konstant deler deres viden med andre, klar til at besvare spørgsmål og hjælpe dig med at forstå komplekse emner.

Verdens største udviklerfællesskab - StackOverflow-webstedet - blev født ud af behovet for, at programmører skulle lære af hinanden. Dets koncept er enkelt: du stiller et spørgsmål, og enhver programmør i verden kan besvare det. Praktisk, ikke? 🙂

Hos CodeGym tror vi på, at udveksling af viden mellem elever er yderst værdifuldt. Når programmører hjælper andre, vokser de selv . Og der er ingen bedre måde at forstå noget på selv end at forklare det til en anden. Derfor har vi lavet særlige sektioner på vores hjemmeside, der er designet til at give alle vores elever mulighed for at dele deres viden og hjælpe hinanden med at lære.

Så hvad gør du, hvis du går i stå med den seneste opgave? At søge efter en færdig løsning på internettet er en dårlig idé. Selvfølgelig får du kredit for opgaven, hvis du bare kopierer en andens løsning eller bruger vores rigtige løsning. Men du lukker ikke dit videnshul, og det vil helt sikkert komme tilbage og bide dig i numsen i fremtiden.


7. Spørgsmål om opgaver

Kravene , anbefalingerne og den virtuelle mentor er super seje. Men hvad hvis validatoren stadig ikke vil acceptere din løsning, og du ikke er sikker på, hvad problemet er?

Selv i dette tilfælde er der stadig en vej ud. Mød Hjælp - sektionen. I denne del af hjemmesiden kan CodeGym-studerende stille spørgsmål til opgaver, udforske hinandens løsninger og også give råd og tips. Det er ikke tilladt at sende komplette løsninger!

Det lyder meget simpelt og grundlæggende, men det er faktisk ret sofistikeret.

For det første kan hvert spørgsmål have en tilknyttet opgave . Det betyder, at det ikke nytter noget at gå igennem alle spørgsmålene, hvis du er interesseret i spørgsmål om en bestemt opgave. Du kan altid bruge et filter til nemt kun at se de spørgsmål, der er relateret til den opgave, der interesserer dig. Indtast blot opgavenavnet i søgefeltet:

Spørgsmål om opgaver

For det andet, hvis du klikker på knappen "Fællesskabshjælp", mens du løser en opgave, vil du straks blive ført til Hjælp-sektionen, hvor du kun vil se spørgsmål om den opgave, du arbejder på. Hvis din løsning ikke klarer opgavebekræftelsen, sorteres spørgsmålene på en nyttig måde: De vigtigste spørgsmål vil handle om de utilfredse krav, der fik din løsning til at mislykkes.

Hjælp-knap

For det tredje tilbyder IntelliJ IDEA plugin lignende funktionalitet. Du kan klikke på knappen "Hjælp" eller trykke på tastekombinationen Ctrl+Alt+W, som straks åbner Hjælp-sektionen i din browser. Og selvfølgelig vil filteret kun vise spørgsmål om den opgave, du løser i IntelliJ IDEA .

IntelliJ IDEA hjælp

8. Oprettelse af et spørgsmål

Hvis du ikke finder en god analyse af din fejl i Hjælp-sektionen, så kan du altid oprette dit eget spørgsmål. Dette er ret nemt at gøre - du skal bare klikke på knappen "Stil et spørgsmål" og udfylde de påkrævede felter:

Oprettelse af et spørgsmål

I modsætning til mange andre tjenester, såsom StackOverflow, Code Ranch osv., kræver CodeGym ikke, at du propper alle vigtige oplysninger ind i spørgsmålets titel. Skriv dit spørgsmål, som du vil.

Og i øvrigt behøver du ikke kopiere din kode fra WebIDE eller IntelliJ IDEA og tilføje den til dit spørgsmål. Når du opretter et spørgsmål om en opgave, tilføjes din løsnings kode sammen med statussen for de forskellige opgavekrav automatisk til den , dvs. hvilke krav din løsning i øjeblikket opfylder, og hvilke den ikke gør.

Oprettelse af et spørgsmål 2

Det betyder, at andre CodeGym-elever med det samme ser alle relevante informationer om spørgers løsning, hvilket gør det meget nemmere at give gode råd.


9. Løsningskode

På mange websteder skal du, når du opretter et spørgsmål om kode, enten vedhæfte et arkiv med programfiler til spørgsmålet eller tilføje alle disse filer til selve spørgsmålets tekst. Resultatet er et stort rod, som folk enten er uvillige eller ude af stand til at grave i.

At stille et spørgsmål hurtigt og effektivt er en hel kunstform. På almindelige hjemmesider skal du enten bruge en halv time på at formulere dit spørgsmål, eller acceptere, at ingen kommer til at svare dig. Et godt spørgsmål om en opgave skal absolut indeholde følgende information:

  • Link til opgaven, som spørger løser
  • Opgaven betingelser, så andre ikke behøver at gå på jagt efter dem nogen steder
  • Løsningskode - dette kan omfatte mange filer
  • Status for hvert opgavekrav, dvs. hvad der fungerer i øjeblikket, og hvad der ikke gør.
  • Spørgsmålets tekst: dette er normalt ret klart — min løsning virker ikke, og jeg er ikke sikker på hvorfor.

CodeGym viser denne information ved hjælp af en speciel widget, der minder meget om WebIDE widget. Det er trods alt allerede designet til at vise alle disse oplysninger. Nå, måske med undtagelse af selve spørgsmålet.

Løsningskode

Faktisk skrev vi en speciel widget bare for at gøre det praktisk for dig at studere andre brugeres løsninger. Og for at gøre det nemt og behageligt for andre brugere at undersøge dine løsninger i de spørgsmål, du stiller.