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 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.

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.

Daarom introduceerde CodeGym projecttaken - grote taken verdeeld in 5-35 gewone subtaken. Je voert alle deeltaken achtereenvolgens uit en je krijgt een groot programma.

Aan het einde van elk niveau na niveau 20 is er één grote projecttaak, die is onderverdeeld in twintig subtaken. Er zijn ook nog 6 speltaken, die ook projecten zijn. En er is één projecttaak om toegelaten te worden tot een online stage. 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.


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.

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

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

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

Gebruikers met een Premium Mentor-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.


4. 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.


5. 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

6. Gemeenschap

CodeGym richt zich op heel veel oefenen , wat meer dan 80% van het hele leerproces uitmaakt . We hebben van leren een grote, boeiende zoektocht gemaakt (eigenlijk een reeks zoektochten).

Maar iedereen is anders: sommige mensen leren snel en anderen leren langzamer. Sommige mensen vinden nieuw materiaal gemakkelijk, terwijl anderen het moeilijker vinden. Maar het is onze taak dat al onze studenten de eindstreep halen. Dat is tenminste waar we naar streven.

In deze wereld zijn programmeurs niet zomaar een paar miljoen mensen die code in verschillende talen schrijven en in hun vrije tijd startups opzetten. Ze vormen een wereldwijd netwerk, delen voortdurend hun kennis met anderen, staan ​​klaar om vragen te beantwoorden en u te helpen complexe onderwerpen te begrijpen.

'S Werelds grootste ontwikkelaarscommunity - de StackOverflow-website - is ontstaan ​​uit de behoefte van programmeurs om van elkaar te leren. Het concept is eenvoudig: u stelt een vraag en elke programmeur ter wereld kan deze beantwoorden. Handig toch? 🙂

Bij CodeGym geloven we dat kennisuitwisseling tussen studenten enorm waardevol is. Terwijl programmeurs anderen helpen, groeien ze zelf . En er is geen betere manier om iets zelf te begrijpen dan het aan iemand anders uit te leggen. Daarom hebben we speciale secties op onze website gemaakt die zijn ontworpen om al onze studenten de kans te geven hun kennis te delen en elkaar te helpen leren.

Dus wat doe je als je vastloopt op de laatste taak? Zoeken naar een kant-en-klare oplossing op internet is een slecht idee. Natuurlijk krijg je de eer voor de taak als je gewoon de oplossing van iemand anders kopieert of onze juiste oplossing gebruikt. Maar je gaat je kenniskloof niet dichten en dat zal je in de toekomst zeker terug bijten.


7. Vragen over taken

De vereisten , aanbevelingen en virtuele mentor zijn super cool. Maar wat als de validator uw oplossing nog steeds niet accepteert en u niet zeker weet wat het probleem is?

Zelfs in dit geval is er nog een uitweg. Maak kennis met de Help- sectie. In dit gedeelte van de website kunnen CodeGym-studenten vragen stellen over taken, elkaars oplossingen verkennen en ook advies en tips geven. Volledige oplossingen plaatsen is niet toegestaan!

Het klinkt heel eenvoudig en eenvoudig, maar het is eigenlijk best geavanceerd.

Ten eerste kan elke vraag een bijbehorende taak hebben . Dit betekent dat het geen zin heeft om alle vragen door te spitten, als je geïnteresseerd bent in vragen over een specifieke taak. U kunt altijd een filter gebruiken om eenvoudig alleen de vragen te zien die betrekking hebben op de taak die u interesseert. Voer gewoon de taaknaam in de zoekbalk in:

Vragen over taken

Ten tweede, als u tijdens het oplossen van een taak op de knop "Community-hulp" klikt, wordt u onmiddellijk naar de Help-sectie geleid, waar u alleen vragen ziet over de taak waaraan u werkt. Als uw oplossing niet door de taakverificatie komt, zijn de vragen op een handige manier gesorteerd: de belangrijkste vragen gaan over de niet-voldane vereisten die ervoor zorgden dat uw oplossing faalde.

Help-knop

Ten derde biedt de plug-in IntelliJ IDEA vergelijkbare functionaliteit. U kunt op de "Help"-knop klikken of op de toetsencombinatie Ctrl+Alt+W drukken, waardoor het Help-gedeelte in uw browser onmiddellijk wordt geopend. En natuurlijk geeft het filter alleen vragen weer over de taak die u aan het oplossen bent in IntelliJ IDEA .

IntelliJ IDEA-hulp

8. Een vraag maken

Als u geen goede analyse van uw fout vindt in de Help-sectie, kunt u altijd uw eigen vraag maken. Dit is vrij eenvoudig te doen — u hoeft alleen maar op de knop "Stel een vraag" te klikken en de vereiste velden in te vullen:

Een vraag maken

In tegenstelling tot veel andere services, zoals StackOverflow, Code Ranch, enz., hoeft u bij CodeGym niet alle belangrijke informatie in de titel van de vraag te proppen. Schrijf uw vraag zoals u wilt.

En trouwens, je hoeft je code niet van WebIDE of IntelliJ IDEA te kopiëren en aan je vraag toe te voegen. Wanneer u een vraag over een taak maakt, wordt de code van uw oplossing samen met de statussen van de verschillende taakvereisten automatisch toegevoegd , dwz aan welke vereisten uw oplossing momenteel voldoet en aan welke niet.

Een vraag maken 2

Hierdoor zien andere CodeGym-studenten direct alle relevante informatie over de oplossing van de vragensteller, wat het geven van goed advies een stuk eenvoudiger maakt.


9. Oplossingscode

Op veel sites moet u bij het maken van een vraag over code ofwel een archief met programmabestanden aan de vraag toevoegen, of al deze bestanden aan de tekst van de vraag zelf toevoegen. Het resultaat is een grote puinhoop waar mensen niet in willen of kunnen graven.

Snel en efficiënt een vraag stellen is een hele kunstvorm. Op reguliere websites moet je ofwel een half uur besteden aan het formuleren van je vraag, ofwel accepteren dat niemand je zal antwoorden. Een goede vraag over een taak moet absoluut de volgende informatie bevatten:

  • Link naar de taak die de vrager aan het oplossen is
  • De taakvoorwaarden zodat anderen ze nergens heen hoeven te jagen
  • Oplossingscode — dit kan veel bestanden bevatten
  • Status van elke taakvereiste, dwz wat momenteel werkt en wat niet.
  • Tekst van de vraag: dit is meestal vrij duidelijk — mijn oplossing werkt niet, en ik weet niet zeker waarom.

CodeGym geeft deze informatie weer met behulp van een speciale widget die sterk lijkt op de WebIDE- widget. Het is tenslotte al ontworpen om al die informatie weer te geven. Nou ja, misschien met uitzondering van de vraag zelf.

Oplossingscode

We hebben zelfs een speciale widget geschreven om het u gemakkelijk te maken de oplossingen van andere gebruikers te bestuderen. En om het voor andere gebruikers gemakkelijk en prettig te maken om uw oplossingen te onderzoeken in de vragen die u stelt.