1. Uczenie się przez działanie

nauka języka Java oparta na praktyce

Są ludzie, którzy kochają CodeGym całym sercem, są ludzie, którzy nienawidzą go całym sercem. Ale nawet najbardziej zagorzały krytyk CodeGym z łatwością zgodzi się z tym, że jest po prostu ogromna liczba zadań. A jest ich tak dużo, bo wszystkie szkolenia z CodeGym są budowane na podstawie praktyki.

Programowanie to umiejętność. Nikt nie mówi „Umiem programować”: wszyscy programiści mówią „Umiem programować”. To umiejętność, jak pływanie, jak gra w szachy. A jedynym sposobem na poprawę jest ciągła praktyka.

Dlatego całe szkolenie z CodeGym to sekwencja zadań o coraz większej złożoności. Zaczynasz od bardzo łatwych i prymitywnych zadań, a kończysz na najbardziej złożonych i interesujących. Z każdym poziomem trudność trochę wzrasta i to jest właśnie ścieżka, która doprowadzi cię do celu, jakim jest przekształcenie cię w programistę.


2. Rodzaje zadań

Na CodeGym znajdziesz całą masę różnych zadań. Wymieniamy główne:

Zadania do napisania programu

To są najważniejsze zadania kursu. Mogą mieć bardzo różny poziom: od najprostszych zadań po takie, nad którymi trzeba dużo pomyśleć.

Celem takich zadań jest napisanie programu spełniającego warunek i określone wymagania. Jest to największa grupa zadań. Dla wygody kursantów CodeGym takie zadania oznaczamy poziomami trudności: ŁATWY , ŚREDNI , TWARDY i EPICKI .

Problemy epickie (EPIC) są często oparte na materiałach z przyszłych wykładów, które nie zostały jeszcze otwarte. Są lubiane przez studentów CodeGym, którzy uważają, że kurs jest dla nich za łatwy. Pozostali mogą po prostu pominąć takie zadania i wrócić do nich później, gdy zapoznają się już z odpowiednią teorią.

Projektowanie

Wadą regularnych zadań jest to, że są małe. Gotowe i zapomnij, jak to mówią. Dlatego rzadko można uczynić je bardzo interesującymi. A duży program jest trudny do przetestowania: jest na to zbyt wiele sposobów.

Dlatego na CodeGym pojawiły się zadania-projekty - duże zadania, podzielone na 5-35 zwykłych podzadań. Konsekwentnie wykonujesz wszystkie podzadania, a wynikiem jest duży program.

Na końcu każdego poziomu starszego niż 20 znajduje się jedno duże zadanie-projekt, podzielone na kilkadziesiąt podzadań. Jest jeszcze 6 zadań-gier, które są jednocześnie projektami. A jedno zadanie to projekt zadania testowego stażu online. Łącznie - 27 zadań-projektów na cały kurs.

Testy

Dawno nie było testów na CodeGym: twórca CodeGym uważa, że ​​poprawnie zdane testy dają ludziom „iluzję wiedzy”. Ludzie naprawdę nie wiedzą, jak programować, ale są pewni czegoś przeciwnego - zdali testy. Tacy ludzie przestają się uczyć, bo „wszystko już wiedzą”.

Następnie dodano quizy, aby uczniowie CodeGym mogli łatwo zidentyfikować luki w nauce. Przydaje się programiście znać niuanse działania rzeczy, które wykorzystuje na co dzień w swojej pracy.


3. Statusy zadań

Każde zadanie w CodeGym ma specjalny status. Statusy te mogą się zmieniać w trakcie rozwiązywania problemów.

Każde zadanie w CodeGym jest dołączone do wykładu. Na początku wszystkie zadania są dla ciebie niedostępne i nie możesz ich rozwiązać.

Następnie, gdy otworzysz następny wykład, wszystkie zadania z tego wykładu, jeśli takie istnieją, staną się dostępne do rozwiązania: ich status zmieni się na „Dostępne”.

Jeśli co najmniej raz przesłałeś zadanie do recenzji, jego status zmieni się z Dostępne na W toku.

Wreszcie, gdy pomyślnie spełnisz wszystkie wymagania, a walidator zaakceptuje Twój problem, jego status zmieni się na „Rozwiązany”.

Użytkownicy z subskrypcją Premium Mentor mają 3 dodatkowe dni na próbę napisania innych rozwiązań problemu. Po tym czasie zadanie przechodzi w stan "Zamknięte" i ten status już się nie zmieni.


4. Wymagania

We wczesnych latach CodeGym sprawdzenie każdego zadania dawało jeden prosty wynik: tak lub nie. Program albo przeszedł wszystkie testy, albo nie. Bardzo proste, ale niezbyt przydatne.

W procesie uczenia się bardzo ważne jest, aby ludzie rozumieli, co robią źle i jak robić to dobrze. Dlatego całkiem logiczne jest, że po tym, jak serwer nie zaakceptował Twojej decyzji, będziesz chciał wiedzieć, co jest z nim nie tak?

Aby uzyskać odpowiedź na to pytanie, potrzebujesz kogoś, kto przeanalizuje Twoje rozwiązanie, przeanalizuje je i powie, co jest w nim nie tak. Będzie długo i drogo. Piękno natychmiastowego sprawdzania zadań polega na tym, że możesz usiąść do nauki o 2 w nocy i wszystko będzie działać, jak zawsze.

Dlatego przepisaliśmy wszystkie zadania w CodeGym . Teraz każde zadanie ma nie tylko warunek, ale także listę 5-10 wymagań opartych na warunku. I co najważniejsze: każde wymaganie sprawdzane jest osobno.

Tak więc dzisiaj, po przesłaniu zadania do sprawdzenia, uzyskasz bogatszy wynik: każde wymaganie zadania będzie miało specjalną ikonę wskazującą, czy Twój program spełnił to wymaganie, czy nie. Przykład:

Takie podejście znacznie upraszcza życie w zadaniach, dla których trzeba napisać kilka klas lub metod. Zawsze widzisz, które metody lub klasy napisałeś poprawnie, a które nie.


5. Zalecenia

Czy jest jakiś inny sposób na usprawnienie zadań? Byłoby wspaniale, gdyby po każdym sprawdzeniu powiedziano Ci, co dokładnie jest nie tak w Twoim programie i podpowiadano, jak to naprawić. Tak, to byłoby fajne! I wiesz co? My w CodeGym to zrobiliśmy :)

Podczas sprawdzania każdego wymagania każdego zadania wyłapujemy dziesiątki typowych błędów. A jeśli twój program zgłosi walidatorowi znany błąd, wyśle ​​ci rekomendację - tekst, który daje ci wskazówkę, jak możesz naprawić swoje rozwiązanie, aby wszystkie wymagania zostały spełnione.

Pomyśl o tym. Obecnie CodeGym ma około 1200 zadań, które w sumie zawierają około 10 000 wymagań. Dla każdego wymagania istnieje kilka zaleceń. Niektóre wymagania mają ich dziesiątki. Walidator CodeGym zawiera ponad 50 000 rekomendacji dotyczących decyzji użytkowników.

Dodatkowo to wszystko dzieje się podczas weryfikacji Twojego rozwiązania, która w większości przypadków trwa mniej niż sekundę. Człowiek nie mógłby tego zrobić. Prawdziwy wirtualny mentor.


6. Społeczność

CodeGym koncentruje się na dużej ilości ćwiczeń : zajmuje ponad 80% całego procesu uczenia się. Zrobiliśmy z tego duże i interesujące zadanie (a nawet całą serię zadań).

Ale wszyscy ludzie są różni: ktoś uczy się szybciej, a ktoś wolniej. Niektórym łatwiej przychodzi nowy materiał, innym trudniej. A naszym zadaniem jest, aby każdy z naszych kursantów dotarł do mety. Przynajmniej do tego dążymy.

Programiści na tym świecie to nie tylko kilka milionów ludzi, którzy w wolnym czasie piszą kod w różnych językach i tworzą startupy. Tworzą globalną sieć, w ramach której stale dzielą się wiedzą z innymi, są gotowi odpowiedzieć na pytania i pomóc zrozumieć złożone tematy.

Największa na świecie społeczność programistów – StackOverflow – narodziła się właśnie z potrzeby wzajemnego uczenia się programistów. Jego idea jest prosta: zadajesz pytanie, a każdy programista na świecie może na nie odpowiedzieć. Wygodne, prawda? 🙂

W CodeGym uważamy, że wymiana wiedzy między studentami ma wielką wartość. Pomagając innym, programista rozwija się . A nie ma lepszego sposobu, aby samemu coś zrozumieć, niż wytłumaczyć to innej osobie. Dlatego stworzyliśmy na naszej stronie specjalne sekcje, które mają dać wszystkim naszym studentom możliwość dzielenia się wiedzą i wzajemnej pomocy w procesie nauki.

Co więc zrobić, jeśli utkniesz przy następnym zadaniu? Szukanie gotowego rozwiązania w internecie to zły pomysł. Tak, problem będzie się liczył, jeśli po prostu skopiujesz czyjeś rozwiązanie lub użyjesz naszego poprawnego rozwiązania. Tylko teraz luka w wiedzy nigdzie nie pójdzie i na pewno przyniesie odwrotny skutek w przyszłości.


7. Pytania dotyczące zadań

Wymagania , rekomendacje i wirtualny mentor są naprawdę fajne. Ale co zrobić, jeśli walidator nadal nie akceptuje Twojej decyzji, a jaki jest błąd nie jest jasny?

I w tym przypadku mamy rozwiązanie. Meet - sekcja pomocy . W tej sekcji witryny studenci CodeGym mogą zadawać pytania dotyczące problemów, analizować nawzajem swoje rozwiązania oraz udzielać porad i wskazówek. Publikowanie poprawnych rozwiązań jest niedozwolone.

Brzmi to bardzo prosto i prymitywnie, chociaż w rzeczywistości wszystko jest dokładnie odwrotnie.

Po pierwsze, dla każdego pytania możesz określić zadanie, z którym jest ono powiązane. Dlatego nie ma sensu zagłębiać się we wszystkie pytania, jeśli interesują Cię pytania dotyczące konkretnego zadania. Zawsze możesz łatwo filtrować pytania tylko według zadania, które Cię interesuje. Wystarczy wpisać nazwę zadania w pasku wyszukiwania:

Po drugie, jeśli klikniesz przycisk „Pomoc społeczności” podczas rozwiązywania problemu, natychmiast przejdziesz do sekcji Pomoc, w której odfiltrowane zostaną tylko pytania dotyczące tego samego problemu, który rozwiązałeś. Jeśli zadanie zostało uruchomione do weryfikacji i nie przeszło testów, pytania zostaną posortowane w określonej kolejności: najwyższe pytania pojawią się w zadaniu, w którym ten sam wymóg nie został spełniony.

Po trzecie, podobna funkcjonalność dostępna jest we wtyczce IntelliJ IDEA . Możesz kliknąć przycisk „Pomoc” lub kombinację klawiszy Ctrl + Alt + W, a przeglądarka natychmiast otworzy się, w której zostanie otwarta sekcja Pomoc. I oczywiście odfiltruje już tylko pytania dotyczące zadania, które rozwiązujesz w IntelliJ IDEA .


8. Stwórz swoje pytanie

Jeśli nie znalazłeś dobrej analizy swojego błędu w sekcji Pomoc, zawsze możesz utworzyć własne pytanie. Odbywa się to dość łatwo: wystarczy kliknąć przycisk „Zadaj pytanie” i wypełnić wymagane pola:

W przeciwieństwie do wielu innych usług, takich jak StackOverflow, Toster itp., CodeGym nie wymaga umieszczania wszystkich ważnych informacji w tytule pytania. Napisz pytanie, jak Ci wygodnie.

A tak przy okazji, nie musisz kopiować kodu rozwiązania z WebIDE lub Intellij IDEA i dodawać go do swojego pytania. Gdy utworzysz pytanie do zadania, automatycznie zostanie do niego dodany kod Twojego rozwiązania oraz informacja o statusie wymagań: które wymagania przeszły Twoje rozwiązanie, a które nie.

W rezultacie wszyscy użytkownicy CodeGym natychmiast widzą wszystkie niezbędne informacje według uznania użytkownika, a udzielanie mu praktycznych porad staje się znacznie łatwiejsze.


9. Kod rozwiązania

Na wielu stronach, tworząc pytanie za pomocą kodu, musisz albo dołączyć archiwum z plikami programu do pytania, albo dodać wszystkie te pliki do tekstu pytania. Rezultatem jest ogromny „płótno”, którego nie ma ani chęci, ani możliwości demontażu.

Szybkie i skuteczne zadawanie pytań to sztuka. W zwykłych witrynach będziesz musiał poświęcić pół godziny na sformułowanie pytania lub pogodzić się z faktem, że nikt ci nie odpowie. Dobre pytanie zadaniowe musi po prostu zawierać następujące dane:

  • Link do zadania, które rozwiązuje użytkownik
  • Stan problemu, abyś nie musiał nigdzie iść w poszukiwaniu
  • Kod rozwiązania: może być wiele plików
  • Statusy wymagań rozwiązania: co działa, a co nie.
  • Treść pytania: zwykle i tak wszystko jest jasne - nie działa, niejasne jest, dlaczego.

CodeGym używa specjalnego widżetu do wyświetlania tych informacji, podobnie jak widżet WebIDE . W końcu jest już zaprojektowany do wyświetlania wszystkich powyższych informacji. No, może, z wyjątkiem samego pytania użytkownika.

Tak, napisaliśmy specjalny widżet, aby ułatwić Ci zapoznawanie się z rozwiązaniami innych użytkowników. Oraz aby ułatwić i uprzyjemnić innym użytkownikom zapoznanie się z Twoimi odpowiedziami na Twoje pytania.