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

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.

Därför introducerade CodeGym projektuppgifter — stora uppgifter uppdelade i 5-35 vanliga deluppgifter. Du utför alla deluppgifter sekventiellt och du får ett stort program.

I slutet av varje nivå efter nivå 20 finns en stor projektuppgift, som är uppdelad i tjugo deluppgifter. Det finns även ytterligare 6 speluppgifter, som också är projekt. Och det finns en projektuppgift för att bli antagen till en onlinepraktik. 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.


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.

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

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

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

Användare med ett Premium Mentor-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.


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


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

6. Gemenskap

CodeGym fokuserar på en hel del träning , vilket står för mer än 80% av hela inlärningsprocessen. Vi gjorde lärande till ett stort, engagerande uppdrag (faktiskt en serie uppdrag).

Men alla är olika: vissa människor lär sig snabbt och andra lär sig långsammare. Vissa människor tycker att nytt material är lätt, medan andra tycker att det är svårare. Men vårt jobb är att var och en av våra elever ska komma i mål. Det är åtminstone vad vi strävar efter.

I den här världen är programmerare inte bara några miljoner människor som skriver kod på olika språk och skapar startups på fritiden. De bildar ett globalt nätverk, delar ständigt sin kunskap med andra, redo att svara på frågor och hjälpa dig att förstå komplexa ämnen.

Världens största utvecklarcommunity – StackOverflow-webbplatsen – föddes ur behovet av programmerare att lära av varandra. Dess koncept är enkelt: du ställer en fråga och alla programmerare i världen kan svara på den. Bekvämt, eller hur? 🙂

På CodeGym tror vi att kunskapsutbyte mellan studenter är oerhört värdefullt. När programmerare hjälper andra växer de själva . Och det finns inget bättre sätt att förstå något själv än att förklara det för någon annan. Det är därför vi har skapat särskilda avsnitt på vår hemsida som är utformade för att ge alla våra elever möjlighet att dela med sig av sina kunskaper och hjälpa varandra att lära sig.

Så vad gör du om du fastnar på den senaste uppgiften? Att söka efter en färdig lösning på Internet är en dålig idé. Visst, du får kredit för uppgiften om du bara kopierar någon annans lösning eller använder vår korrekta lösning. Men du kommer inte att täppa till din kunskapslucka och det kommer säkert att komma tillbaka för att bita dig i baken i framtiden.


7. Frågor om arbetsuppgifter

Kraven , rekommendationerna och den virtuella mentorn är superhäftiga . Men vad händer om valideraren fortfarande inte accepterar din lösning och du inte är säker på vad problemet är?

Även i det här fallet finns det fortfarande en väg ut. Möt avsnittet Hjälp . I den här delen av webbplatsen kan CodeGym-studenter ställa frågor om uppgifter, utforska varandras lösningar och även ge råd och tips. Det är inte tillåtet att lägga upp kompletta lösningar!

Det låter väldigt enkelt och grundläggande, men det är faktiskt ganska sofistikerat.

För det första kan varje fråga ha en associerad uppgift . Det betyder att det inte är någon idé att gå igenom alla frågor om du är intresserad av frågor om en specifik uppgift. Du kan alltid använda ett filter för att enkelt se bara frågorna relaterade till uppgiften som intresserar dig. Ange bara uppgiftens namn i sökfältet:

Frågor om arbetsuppgifter

För det andra, om du klickar på knappen "Gemenskapshjälp" medan du löser en uppgift, kommer du omedelbart att föras till hjälpsektionen, där du bara ser frågor om uppgiften du arbetar med. Om din lösning misslyckas med uppgiftsverifiering, sorteras frågorna på ett användbart sätt: de vanligaste frågorna kommer att handla om de otillfredsställda kraven som gjorde att din lösning misslyckades.

Hjälp-knapp

För det tredje erbjuder IntelliJ IDEA- plugin liknande funktionalitet. Du kan klicka på knappen "Hjälp" eller trycka på tangentkombinationen Ctrl+Alt+W, vilket omedelbart öppnar hjälpsektionen i din webbläsare. Och naturligtvis visar filtret bara frågor om uppgiften du löser i IntelliJ IDEA .

IntelliJ IDEA hjälp

8. Skapa en fråga

Om du inte hittar en bra analys av ditt fel i hjälpsektionen kan du alltid skapa din egen fråga. Detta är ganska enkelt att göra - du behöver bara klicka på knappen "Ställ en fråga" och fylla i de obligatoriska fälten:

Skapar en fråga

Till skillnad från många andra tjänster, som StackOverflow, Code Ranch, etc., kräver CodeGym inte att du stoppar all viktig information i frågans rubrik. Skriv din fråga hur du vill.

Och förresten, du behöver inte kopiera din kod från WebIDE eller IntelliJ IDEA och lägga till den i din fråga. När du skapar en fråga om en uppgift läggs din lösnings kod till tillsammans med statusen för de olika uppgiftskraven automatiskt till den, dvs vilka krav din lösning för närvarande uppfyller och vilka den inte gör det.

Skapa en fråga 2

Det gör att andra CodeGym-studenter direkt ser all relevant information om frågeställarens lösning, vilket gör det mycket enklare att ge goda råd.


9. Lösningskod

On many sites, when creating a question about code, you need to either attach an archive with program files to the question, or add all these files to the text of the question itself. The result is a big mess that people are either unwilling or unable to dig into.

Asking a question quickly and efficiently is an entire art form. On regular websites, you will either have to spend half an hour formulating your question, or accept the fact that no one is going to answer you. A good question about a task absolutely must contain the following information:

  • Link to the task that the asker is solving
  • The task conditions so others don't need to go hunt them down anywhere
  • Solution code — this could include many files
  • Status of each task requirement, i.e. what currently works and what doesn't.
  • Text of the question: this is usually quite clear — my solution doesn't work, and I'm not sure why.

CodeGym displays this information using a special widget that is very similar to the WebIDE widget. After all, it is already designed to display all of that information. Well, perhaps with the exception of the question itself.

Lösningskod

In fact, we wrote a special widget just to make it convenient for you to study other users' solutions. And to make it easy and pleasant for other users to examine your solutions in the questions you ask.