1. Lärande baserat på praktik

Java lärande baserat på praktik

Det finns människor som älskar CodeGym av hela sitt hjärta, och det finns människor som hatar det av hela sitt hjärta. Men även CodeGyms mest ondskefulla kritiker kommer lätt att hålla med om att det har ett imponerande stort antal uppgifter. Och anledningen till att det finns så många av dem är att all CodeGym-utbildning har praktik som grund .

Programmering är en färdighet. Ingen säger "Jag vet hur man programmerar". Varje programmerare säger "Jag kan programmera". Det är en praktisk färdighet, som att simma eller spela schack. Och du kan bara odla färdigheten genom konstant övning.

Därför är hela CodeGym-kursen en sekvens av allt svårare uppgifter. Du börjar med mycket enkla, primitiva uppgifter och avslutar med de svåraste och mest intressanta. Svårigheten växer lite för varje nivå. Det är just den vägen som kommer att leda dig till ditt mål att bli programmerare.


2. Typer av uppgifter

En hel massa olika typer av uppgifter väntar dig på CodeGym. Låt oss lista de viktigaste:

Uppgifter där du skriver kod efter ett exempel

Detta är den enklaste övningen. Syftet med dessa uppgifter är att öva på din förmåga att skriva kod. För att lösa uppgiften måste du skriva kod precis som den finns i exempelkoden. Detta är väldigt användbart, men det blir tråkigt väldigt snabbt. Det finns nästan inga sådana uppgifter kvar: vi har ersatt dem med uppgifter som är mer intressanta för CodeGym-studenter.

Korten för sådana uppgifter är markerade med bokstaven T:

Typer av uppgifter

Uppgifter där du skriver ett program

Det är de viktigaste uppgifterna i kursen. Deras svårighetsgrad varierar kraftigt: från de enklaste uppgifterna till de som du kommer att behöva tänka på mycket.

Målet med dessa uppgifter är att skriva ett program som uppfyller angivna villkor och krav. De flesta uppgifter faller inom denna kategori. För att underlätta för CodeGym-studenter markerar vi dessa uppgifter efter deras svårighetsgrad: LÄTT , MEDIUM , HÅRT och EPISK .

EPIC-uppgifter är ofta baserade på framtida läromedel i lektioner som du ännu inte har låst upp. De är populära bland CodeGym-studenter som tycker att kursen är för lätt för dem. Andra kan helt enkelt hoppa över dessa uppgifter och återvända till dem senare, när de redan har blivit bekanta med den relevanta teorin.

Uppgifter där du skriver ett program

Projekt

Nackdelen med vanliga arbetsuppgifter är att de är små. Gjort och glömt, som man säger. Därför är det sällan möjligt att göra dem högintressanta. Men ett stort program är svårt att testa: det finns helt enkelt för många sätt att implementera det.

Det är CodeGym som introducerade projektuppgifter — stora uppgifter uppdelade i 10-30 vanliga deluppgifter. Du utför alla deluppgifter sekventiellt och du får ett stort program.

I slutet av varje nivå i Multithreading och Collections-uppdrag finns det en stor projektuppgift, som är uppdelad i tjugo deluppgifter. Det finns även ytterligare 6 speluppgifter, som också är projekt. Totalt är det 27 projektuppgifter i hela kursen.

Frågesporter

CodeGym hade länge inga tester eller frågesporter. CodeGyms skapare har åsikten att godkända tester skapar "illusionen av kunskap" hos människor. Folk vet inte riktigt hur man programmerar, men de är helt övertygade om annat, eftersom de klarade proven. Sådana människor slutar lära sig, eftersom "de redan vet allt".

Därefter lades frågesporter till för att låta CodeGym-studenter enkelt identifiera luckor i sitt lärande. Det är användbart för programmerare att känna till nyanserna i de saker de arbetar med dagligen i sitt yrke.

Frågesport Java

videoklipp

Slutligen, den allra sista typen av uppgift är att titta på en video. Många användbara och intressanta videor relaterade till IT-branschen har inkluderats i CodeGym-lektioner.


3. Uppgiftsstatus

Varje uppgift på CodeGym har en speciell status. Statusen kan ändras när du löser uppgifter.

Varje CodeGym-uppgift är associerad med en lektion. Inledningsvis kommer du inte att ha tillgång till några uppgifter, vilket innebär att du inte kommer att kunna lösa dem.

låst

När du öppnar nästa lektion blir alla uppgifter i lektionen tillgängliga att lösa, dvs deras status ändras till "Tillgänglig".

Tillgängliga

Om du har skickat in en uppgift för verifiering minst en gång, ändras dess status från "Tillgänglig" till "Pågår".

Pågående

Slutligen, när du framgångsrikt har uppfyllt alla krav och valideraren accepterar din inlämning, ändras uppgiftens status till "Slutförd".

Avslutad

Användare med ett Premium Pro-abonnemang har 3 dagar på sig att försöka skriva andra lösningar för uppgiften. Efter att denna ytterligare tidsperiod har löpt ut, flyttas uppgiften till "Stängd" status, och denna status kommer inte längre att ändras.Stängd


4. WEBBID

För att göra det lättare för dig att lösa uppgifter har vi skrivit en speciell widget: WebIDE . Det ser ungefär ut så här:

WebIDE

Till vänster ser du de uppgiftsvillkor och krav som din lösning måste uppfylla. I centrum har vi editorn, där du behöver skriva din kod . Ditt program visade lite text, som du kan se i rutan längst ner.

Och högst upp ser du dessa knappar:

  • Verifiera : Skicka in din lösning för testning.
  • Hjälp : Ställ en fråga om din lösning i CodeGym-communityt.
  • Diskutera : Diskutera uppgiften med andra användare.
  • Återställ : Återställ din lösning, dvs börja om.
  • Kör : Starta programmet utan att skicka in det för verifiering (din verifieringsräknare kommer inte att öka).
  • Kodanalys : Få förslag på din lösnings kodstil

5. Krav

Under de första åren av CodeGym, när du verifierade varje uppgift fick du ett enkelt resultat: ja eller nej. Programmet klarade antingen alla tester eller så gjorde det inte det. Superenkelt, men inte supernyttigt.

När människor lär sig är det mycket viktigt att de förstår vad de gör fel och hur de ska börja göra det rätt. Följaktligen är det helt logiskt att om servern inte accepterar din lösning, då skulle du fråga, ja, vad är det för fel på den?

För att få svar på denna fråga behöver du någon som dyker ner i din lösning, analyserar den och berättar vad som är fel med den. Detta skulle ta lång tid och bli dyrt. Det fina med omedelbar uppgiftsverifiering är att du kan sitta ner för att studera klockan 02.00 och det kommer att fungera precis som alla andra tider.

Det var därför vi skrev om alla uppgifter på CodeGym. Nu har varje uppgift inte bara uppgiftsvillkor, utan också en lista med 5-10 krav som konkretiserar villkoren. Det viktigaste är att varje krav verifieras separat.

Det betyder att när du skickar in en uppgift för verifiering idag får du ett utökat svar: bredvid varje uppgiftskrav kommer du att se en speciell ikon som anger om ditt program uppfyller detta krav eller inte. Exempel:

Krav

Detta tillvägagångssätt förenklar livet avsevärt när du arbetar med uppgifter som kräver att du skriver flera klasser eller metoder. Du kommer alltid att kunna se vilka metoder eller klasser du skrev korrekt och vilka du inte gjorde.


6. Rekommendationer

Går det att göra uppgifterna ännu bättre på något sätt? Skulle det inte vara bra om du efter varje kontroll fick veta exakt vad som är fel i ditt program och få tips om hur du åtgärdar det? Ja, det vore kul! Tja, gissa vad? Vi gör just det på CodeGym 🙂

Vi fångar dussintals vanliga misstag genom att kontrollera varje uppgiftskrav. Om ditt program gör ett misstag som valideraren känner till, ger det en rekommendation – en tips om hur du kan fixa din lösning så att den uppfyller alla krav.

Tänk på det. Det finns nu cirka 1200 uppgifter på CodeGym, med totalt cirka 10 000 krav. Och det finns flera rekommendationer kopplade till varje krav. Vissa krav har dussintals av dem. CodeGyms validator är redo att ge över 50 000 rekommendationer för användarlösningar.

Dessutom händer allt detta när din lösning valideras, vilket i de flesta fall tar mindre än en sekund. Ingen människa kunde göra det. Detta är en riktig virtuell mentor.

Rekommendationer