1. Leren vanuit de praktijk

Java leren op basis van de praktijk

Er zijn mensen die met heel hun hart van CodeGym houden, en er zijn mensen die het met heel hun hart haten. Maar zelfs de meest wrede criticus van CodeGym zal het er meteen mee eens zijn dat het een indrukwekkend groot aantal taken heeft. En de reden waarom het er zo veel zijn, is omdat alle CodeGym-trainingen praktijk als basis hebben .

Programmeren is een vaardigheid. Niemand zegt: "Ik weet hoe ik moet programmeren". Elke programmeur zegt: "Ik kan programmeren". Het is een hands-on vaardigheid, zoals zwemmen of schaken. En je kunt de vaardigheid alleen cultiveren door constant te oefenen.

Daarom is de hele CodeGym-cursus een aaneenschakeling van steeds moeilijker wordende taken. Je begint met heel gemakkelijke, primitieve taken en eindigt met de moeilijkste en interessantste. De moeilijkheidsgraad groeit een beetje met elk niveau. Dit is precies het pad dat je zal leiden naar je doel om programmeur te worden.


2. Soorten taken

Er wachten je een heleboel verschillende soorten taken op CodeGym. Laten we de belangrijkste opsommen:

Taken waarbij je code schrijft naar voorbeeld

Dit is de eenvoudigste oefening. Het doel van deze taken is om te oefenen met het schrijven van code. Om de taak op te lossen, moet u code schrijven zoals deze bestaat in de voorbeeldcode. Dit is erg handig, maar het gaat snel vervelen. Dergelijke taken zijn er bijna niet meer: ​​we hebben ze vervangen door taken die interessanter zijn voor CodeGym-studenten.

De kaarten voor dergelijke taken zijn gemarkeerd met de letter T:

Soorten taken

Taken waarbij je een programma schrijft

Dit zijn de belangrijkste taken in de cursus. Hun moeilijkheidsgraad varieert sterk: van de eenvoudigste taken tot taken waar je veel over na moet denken.

Het doel van deze taken is het schrijven van een programma dat voldoet aan gespecificeerde voorwaarden en eisen. De meeste taken vallen in deze categorie. Voor het gemak van CodeGym-studenten markeren we deze taken op basis van hun moeilijkheidsgraad: EASY , MEDIUM , HARD en EPIC .

EPIC-taken zijn vaak gebaseerd op toekomstig leermateriaal in lessen die je nog niet hebt ontgrendeld. Ze zijn populair bij CodeGym-studenten die vinden dat de cursus te gemakkelijk voor ze is. Anderen kunnen deze taken gewoon overslaan en er later op terugkomen, als ze al vertrouwd zijn met de relevante theorie.

Taken waarbij je een programma schrijft

Projecten

Het nadeel van gewone taken is dat ze klein zijn. Gedaan en vergeten, zoals ze zeggen. Daarom is het zelden mogelijk om ze zeer interessant te maken. Maar een groot programma is moeilijk te testen: er zijn simpelweg te veel manieren om het te implementeren.

Dat is CodeGym introduceerde projecttaken - grote taken verdeeld in 10-30 gewone subtaken. Je voert alle deeltaken achtereenvolgens uit en je krijgt een groot programma.

Aan het einde van elk niveau in Multithreading- en Collections-quests is er één grote projecttaak, die is onderverdeeld in twintig subtaken. Er zijn ook nog 6 speltaken, die ook projecten zijn. In totaal zijn er 27 projecttaken in de hele cursus.

Quizzen

Lange tijd had CodeGym geen toetsen of quizzen. De maker van CodeGym is van mening dat geslaagde tests de "illusie van kennis" bij mensen creëren. Mensen weten niet echt hoe ze moeten programmeren, maar ze zijn grondig van het tegendeel overtuigd, omdat ze de tests hebben doorstaan. Zulke mensen stoppen met leren, omdat "ze alles al weten".

Vervolgens werden er quizzen toegevoegd om CodeGym-studenten in staat te stellen gemakkelijk hiaten in hun leerproces te identificeren. Voor programmeurs is het handig om de nuances te kennen van de dingen waar ze in hun beroep dagelijks mee werken.

Quizzen Java

Videos

Ten slotte is het allerlaatste type taak het bekijken van een video. Veel nuttige en interessante video's met betrekking tot de IT-industrie zijn opgenomen in CodeGym-lessen.


3. Taakstatussen

Elke taak op CodeGym heeft een speciale status. De status kan veranderen terwijl u taken oplost.

Elke CodeGym-taak is gekoppeld aan een les. In eerste instantie heb je geen toegang tot taken, wat betekent dat je ze niet kunt oplossen.

op slot

Wanneer u de volgende les opent, worden alle taken in de les beschikbaar om op te lossen, dwz hun status verandert in "Beschikbaar".

Beschikbaar

Als u een taak minstens één keer ter verificatie heeft ingediend, verandert de status van "Beschikbaar" in "In uitvoering".

Bezig

Als u ten slotte aan alle vereisten hebt voldaan en de validator uw inzending accepteert, verandert de status van de taak in "Voltooid".

Voltooid

Gebruikers met een Premium Pro-abonnement hebben nog 3 dagen om te proberen andere oplossingen voor de taak te schrijven. Nadat deze extra tijdsperiode is verstreken, gaat de taak naar de status "Gesloten" en deze status zal niet langer veranderen.Gesloten


4. WebIDE

Om het voor u gemakkelijker te maken om taken op te lossen, hebben we een speciale widget geschreven: WebIDE . Het ziet er ongeveer zo uit:

WebIDE

Aan de linkerkant ziet u de taakvoorwaarden en eisen waaraan uw oplossing moet voldoen. In het midden hebben we de editor, waar je je code moet schrijven . Uw programma heeft wat tekst weergegeven, die u kunt zien in het paneel onderaan.

En bovenaan zie je deze knoppen:

  • Verifiëren : Dien uw oplossing in om te testen.
  • Help : Stel een vraag over uw oplossing in de CodeGym-community.
  • Bespreken : bespreek de taak met andere gebruikers.
  • Reset : Reset uw oplossing, dwz opnieuw beginnen.
  • Uitvoeren : Start het programma zonder het ter verificatie in te dienen (uw verificatieteller wordt niet verhoogd).
  • Code-analyse : ontvang suggesties voor de codestijl van uw oplossing

5. Vereisten

In de beginjaren van CodeGym kreeg je bij het verifiëren van elke taak een eenvoudig resultaat: ja of nee. Het programma slaagde voor alle tests of niet. Super simpel, maar niet super handig.

Naarmate mensen leren, is het erg belangrijk dat ze begrijpen wat ze verkeerd doen en hoe ze het goed kunnen doen. Daarom is het volkomen logisch dat als de server uw oplossing niet accepteert, u zich afvraagt: wat is er mis mee?

Om een ​​antwoord op deze vraag te krijgen, heb je iemand nodig die in je oplossing duikt, deze analyseert en je vertelt wat er mis mee is. Dit zou lang duren en kostbaar zijn. Het mooie van onmiddellijke taakverificatie is dat je om 2 uur 's nachts kunt gaan zitten om te studeren en het werkt allemaal net als elk ander moment.

Daarom hebben we alle taken op CodeGym herschreven . Nu heeft elke taak niet alleen taakvoorwaarden, maar ook een lijst met 5-10 vereisten die de voorwaarden invullen. Het belangrijkste is dat elke vereiste afzonderlijk wordt geverifieerd.

Dat betekent dat als je vandaag een taak ter verificatie indient, je een uitgebreidere reactie krijgt: naast elke taakvereiste zie je een speciaal icoontje dat aangeeft of je programma aan deze eis voldoet of niet. Voorbeeld:

Vereisten

Deze benadering vereenvoudigt het leven enorm terwijl u aan taken werkt waarvoor u verschillende klassen of methoden moet schrijven. U kunt altijd zien welke methoden of klassen u correct hebt geschreven en welke niet.


6. Aanbevelingen

Is het mogelijk om de taken op de een of andere manier nog beter te maken? Zou het niet geweldig zijn als u na elke controle wordt verteld wat er precies mis is in uw programma en hints krijgt over hoe u dit kunt oplossen? Ja, dat zou gaaf zijn! Nou, raad eens? Dat doen we op CodeGym 🙂

We vangen tientallen veelvoorkomende fouten op door elke taakvereiste te controleren. Als uw programma een fout maakt waarvan de validator op de hoogte is, doet het een aanbeveling - een hint over hoe u uw oplossing kunt repareren zodat deze aan alle vereisten voldoet.

Denk er over na. Er zijn nu ongeveer 1200 taken op CodeGym, met in totaal ongeveer 10.000 vereisten. En er zijn verschillende aanbevelingen gekoppeld aan elke vereiste. Sommige vereisten hebben er tientallen. De validator van CodeGym staat klaar om meer dan 50.000 aanbevelingen te doen voor gebruikersoplossingen.

Bovendien gebeurt dit allemaal terwijl uw oplossing wordt gevalideerd, wat in de meeste gevallen minder dan een seconde duurt. Geen mens zou dat kunnen. Dit is een echte virtuele mentor.

Aanbevelingen