1. Læring basert på praksis

Java-læring basert på praksis

Det er folk som elsker CodeGym av hele sitt hjerte, og det er folk som hater det av hele sitt hjerte. Men selv CodeGyms mest ondsinnede kritiker vil lett være enig i at den har et imponerende stort antall oppgaver. Og grunnen til at det er så mange av dem er fordi all CodeGym trening har praksis som grunnlag .

Programmering er en ferdighet. Ingen sier: "Jeg vet hvordan jeg programmerer". Hver programmerer sier: "Jeg kan programmere". Det er en praktisk ferdighet, som å svømme eller spille sjakk. Og du kan bare dyrke ferdigheten gjennom konstant øvelse.

Derfor er hele CodeGym-kurset en sekvens av stadig vanskeligere oppgaver. Du starter med veldig enkle, primitive oppgaver, og avslutter med de vanskeligste og mest interessante. Vanskeligheten vokser litt for hvert nivå. Dette er nettopp veien som vil lede deg til målet ditt om å bli programmerer.


2. Typer oppgaver

En hel haug med forskjellige typer oppgaver venter på deg på CodeGym. La oss liste opp de viktigste:

Oppgaver hvor du skriver et program

Dette er de viktigste oppgavene i kurset. Vanskelighetsnivået deres varierer mye: fra de enkleste oppgavene til de du må tenke mye på.

Målet med disse oppgavene er å skrive et program som oppfyller spesifiserte betingelser og krav. De fleste oppgaver faller inn under denne kategorien. For å gjøre det enklere for CodeGym-studenter, merker vi disse oppgavene i henhold til deres vanskelighetsgrad: ENKEL , MIDDELS , HARD og EPISK .

EPISKE oppgaver er ofte basert på fremtidig læremateriell i leksjoner du ennå ikke har låst opp. De er populære blant CodeGym-studenter som føler kurset er for enkelt for dem. Andre kan ganske enkelt hoppe over disse oppgavene og gå tilbake til dem senere, når de allerede har blitt kjent med den aktuelle teorien.

Prosjekter

Ulempen med vanlige oppgaver er at de er små. Gjort og glemt, som de sier. Derfor er det sjelden mulig å gjøre dem svært interessante. Men et stort program er vanskelig å teste: det er rett og slett for mange måter å implementere det på.

Derfor introduserte CodeGym prosjektoppgaver — store oppgaver fordelt på 5-35 ordinære deloppgaver. Du utfører alle deloppgavene sekvensielt, og du ender opp med et stort program.

På slutten av hvert nivå etter nivå 20 er det én stor prosjektoppgave, som er delt inn i tjue deloppgaver. Det er også ytterligere 6 spilloppgaver, som også er prosjekter. Og det er én prosjektoppgave for å bli tatt opp i en online praksisplass. Totalt er det 27 prosjektoppgaver i hele kurset.

Quiz

Lenge hadde CodeGym ingen tester eller quiz. CodeGyms skaper er av den oppfatning at beståtte tester skaper "illusjonen av kunnskap" hos mennesker. Folk vet egentlig ikke hvordan de skal programmere, men de er grundig overbevist om noe annet, siden de besto prøvene. Slike mennesker slutter å lære, siden "de allerede vet alt".

Deretter ble det lagt til quizer for å la CodeGym-studenter enkelt identifisere hull i læringen. Det er nyttig for programmerere å kjenne nyansene til tingene de jobber med til daglig i yrket sitt.


3. Oppgavestatuser

Hver oppgave på CodeGym har en spesiell status. Statusen kan endres etter hvert som du løser oppgaver.

Hver CodeGym-oppgave er knyttet til en leksjon. I utgangspunktet vil du ikke ha tilgang til noen oppgaver, noe som betyr at du ikke kan løse dem.

Når du åpner neste leksjon, blir alle oppgavene i leksjonen tilgjengelige for løsning, dvs. statusen deres endres til "Tilgjengelig".

Hvis du har sendt inn en oppgave for verifisering minst én gang, endres statusen fra "Tilgjengelig" til "Pågår".

Til slutt, når du har oppfylt alle kravene og validatoren godtar innleveringen din, endres oppgavens status til "Fullført".

Brukere med Premium Mentor-abonnement har 3 dager til på å prøve å skrive andre løsninger for oppgaven. Etter at dette ekstra tidsvinduet utløper, flyttes oppgaven til "Lukket"-status, og denne statusen vil ikke lenger endres.


4. Krav

I de første årene av CodeGym, når du verifiserte hver oppgave, fikk du et enkelt resultat: ja eller nei. Programmet besto enten alle testene eller så klarte det ikke. Super enkelt, men ikke super nyttig.

Når folk lærer, er det veldig viktig at de forstår hva de gjør feil og hvordan de kan begynne å gjøre det riktig. Følgelig gir det perfekt mening at hvis serveren ikke godtar løsningen din, vil du spørre, vel, hva er galt med den?

For å få svar på dette spørsmålet trenger du noen til å dykke ned i løsningen din, analysere den og fortelle deg hva som er galt med den. Dette vil ta lang tid og bli dyrt. Det fine med umiddelbar oppgaveverifisering er at du kan sette deg ned for å studere klokken 02.00, og alt vil fungere som alle andre tidspunkter.

Derfor skrev vi om alle oppgavene på CodeGym. Nå har hver oppgave ikke bare oppgavebetingelser, men også en liste med 5-10 krav som konkretiserer betingelsene. Det viktigste er at hvert krav verifiseres separat.

Det betyr at når du sender inn en oppgave for verifisering i dag, vil du få et utvidet svar: ved siden av hvert oppgavekrav vil du se et spesielt ikon som indikerer om programmet ditt tilfredsstiller dette kravet eller ikke. Eksempel:

Krav

Denne tilnærmingen forenkler livet i stor grad når du jobber med oppgaver som krever at du skriver flere klasser eller metoder. Du vil alltid kunne se hvilke metoder eller klasser du skrev riktig og hvilke du ikke gjorde.


5. Anbefalinger

Er det mulig å gjøre oppgavene enda bedre på en eller annen måte? Ville det ikke vært flott om du etter hver sjekk ble fortalt hva som er feil i programmet ditt og fikk tips om hvordan du kan fikse det? Ja, det hadde vært kult! Vel, gjett hva? Vi gjør nettopp det på CodeGym 🙂

Vi fanger dusinvis av vanlige feil ved å sjekke hver oppgavekrav. Hvis programmet ditt gjør en feil som validatoren vet om, gir det en anbefaling – et hint om hvordan du kan fikse løsningen slik at den tilfredsstiller alle kravene.

Tenk på det. Det er nå omtrent 1200 oppgaver på CodeGym, med totalt omtrent 10 000 krav. Og det er flere anbefalinger knyttet til hvert krav. Noen krav har dusinvis av dem. CodeGyms validator er klar til å gi over 50 000 anbefalinger for brukerløsninger.

I tillegg skjer alt dette når løsningen din er validert, noe som i de fleste tilfeller tar mindre enn et sekund. Ingen person kunne gjøre det. Dette er en ekte virtuell mentor.

Anbefalinger

6. Fellesskap

CodeGym fokuserer på mye praksis , som utgjør mer enn 80 % av hele læringsprosessen. Vi gjorde læring til et stort, engasjerende oppdrag (faktisk en serie oppdrag).

Men alle er forskjellige: noen mennesker lærer raskt, og andre lærer saktere. Noen synes nytt materiale er lett, mens andre synes det er vanskeligere. Men jobben vår er at hver av våre elever skal komme i mål. Det er i hvert fall det vi streber etter.

I denne verden er ikke programmerere bare noen få millioner mennesker som skriver kode på ulike språk og oppretter startups på fritiden. De danner et globalt nettverk, som hele tiden deler kunnskapen sin med andre, klare til å svare på spørsmål og hjelpe deg med å forstå komplekse emner.

Verdens største utviklerfellesskap – StackOverflow-nettstedet – ble født ut av behovet for programmerere å lære av hverandre. Konseptet er enkelt: du stiller et spørsmål og enhver programmerer i verden kan svare på det. Praktisk, ikke sant? 🙂

Hos CodeGym tror vi at kunnskapsutveksling mellom studenter er ekstremt verdifullt. Når programmerere hjelper andre, vokser de selv . Og det er ingen bedre måte å forstå noe selv enn å forklare det til noen andre. Derfor har vi laget spesielle seksjoner på nettsiden vår som er laget for å gi alle elevene våre muligheten til å dele sin kunnskap og hjelpe hverandre med å lære.

Så hva gjør du hvis du blir sittende fast på den siste oppgaven? Å søke etter en ferdig løsning på Internett er en dårlig idé. Klart du vil få kreditt for oppgaven hvis du bare kopierer andres løsning eller bruker vår riktige løsning. Men du vil ikke lukke kunnskapsgapet ditt, og det vil sikkert komme tilbake for å bite deg i baken i fremtiden.


7. Spørsmål om oppgaver

Kravene , anbefalingene og den virtuelle mentoren er superkule. Men hva om validatoren fortsatt ikke vil godta løsningen din og du ikke er sikker på hva problemet er?

Selv i dette tilfellet er det fortsatt en vei ut. Møt Hjelp- delen. I denne delen av nettsiden kan CodeGym-studenter stille spørsmål om oppgaver, utforske hverandres løsninger, og også gi råd og tips. Det er ikke tillatt å legge ut komplette løsninger!

Det høres veldig enkelt og grunnleggende ut, men det er faktisk ganske sofistikert.

For det første kan hvert spørsmål ha en tilknyttet oppgave . Dette betyr at det ikke er noen vits i å gå gjennom alle spørsmålene hvis du er interessert i spørsmål om en spesifikk oppgave. Du kan alltid bruke et filter for enkelt å se bare spørsmålene knyttet til oppgaven som interesserer deg. Bare skriv inn oppgavenavnet i søkefeltet:

Spørsmål om oppgaver

For det andre, hvis du klikker på "Fellesskapshjelp"-knappen mens du løser en oppgave, vil du umiddelbart bli ført til Hjelp-delen, hvor du kun vil se spørsmål om oppgaven du jobber med. Hvis løsningen din mislykkes med oppgaveverifisering, blir spørsmålene sortert på en nyttig måte: de viktigste spørsmålene vil handle om de utilfredse kravene som førte til at løsningen mislyktes.

Hjelp-knapp

For det tredje tilbyr IntelliJ IDEA- plugin lignende funksjonalitet. Du kan klikke på "Hjelp"-knappen eller trykke på tastekombinasjonen Ctrl+Alt+W, som umiddelbart åpner hjelpedelen i nettleseren din. Og selvfølgelig vil filteret kun vise spørsmål om oppgaven du løser i IntelliJ IDEA .

IntelliJ IDEA hjelp

8. Lage et spørsmål

Hvis du ikke finner en god analyse av feilen din i Hjelp-delen, kan du alltid lage ditt eget spørsmål. Dette er ganske enkelt å gjøre - du trenger bare å klikke på "Spør et spørsmål"-knappen og fylle ut de nødvendige feltene:

Oppretter et spørsmål

I motsetning til mange andre tjenester, som StackOverflow, Code Ranch, etc., krever ikke CodeGym at du stapper all viktig informasjon inn i spørsmålets tittel. Skriv spørsmålet ditt slik du vil.

Og forresten, du trenger ikke å kopiere koden fra WebIDE eller IntelliJ IDEA og legge den til spørsmålet ditt. Når du oppretter et spørsmål om en oppgave, blir løsningens kode sammen med statusene til de ulike oppgavekravene automatisk lagt til den, dvs. hvilke krav løsningen din tilfredsstiller for øyeblikket og hvilke den ikke.

Opprette et spørsmål 2

Det betyr at andre CodeGym-studenter umiddelbart ser all relevant informasjon om spørrens løsning, noe som gjør det mye enklere å gi gode råd.


9. Løsningskode

På mange nettsteder, når du oppretter et spørsmål om kode, må du enten legge ved et arkiv med programfiler til spørsmålet, eller legge til alle disse filene i selve spørsmålsteksten. Resultatet er et stort rot som folk enten ikke vil eller ikke kan grave seg ned i.

Å stille et spørsmål raskt og effektivt er en hel kunstform. På vanlige nettsider må du enten bruke en halvtime på å formulere spørsmålet ditt, eller akseptere at ingen kommer til å svare deg. Et godt spørsmål om en oppgave må absolutt inneholde følgende informasjon:

  • Link til oppgaven som spørren løser
  • Oppgaveforholdene slik at andre ikke trenger å jakte på dem hvor som helst
  • Løsningskode - dette kan inkludere mange filer
  • Status for hvert oppgavekrav, dvs. hva som fungerer og hva som ikke fungerer.
  • Teksten til spørsmålet: dette er vanligvis ganske tydelig - løsningen min fungerer ikke, og jeg er ikke sikker på hvorfor.

CodeGym viser denne informasjonen ved hjelp av en spesiell widget som er veldig lik WebIDE -widgeten. Tross alt er den allerede designet for å vise all den informasjonen. Vel, kanskje med unntak av selve spørsmålet.

Løsningskode

Faktisk skrev vi en spesiell widget bare for å gjøre det praktisk for deg å studere andre brukeres løsninger. Og for å gjøre det enkelt og hyggelig for andre brukere å undersøke dine løsninger i spørsmålene du stiller.