Kacper Drapała

Nauka języka pod okiem mentora?

Ostatnio przeglądając grupy IT na facebooku natrafiłem na wpis pewnego użytkownika. Udostępnił on stronę wraz z krótką notką gdzie cytuję:

kiedyś było zdecydowanie mniej zadań jak teraz

Po wejściu na stronę ukazuję się, że jest to strona która oferuję zadania z programowania od najłatwiejszych do tych trudniejszych w ponad 40 językach!

Exercism bo tak nazywa się ten projekt, zawiera bazę zadań w różnych ścieżkach rozwoju.
Zadania są podzielone na te główne z danego działu, jak i te poboczne/opcjonalne.
Zadania z głównego wątku

Aby zacząć pracę z tym projektem, na początku należy pobrać aplikację CLI i ją zainstalować. Na stronie istnieje specjalny poradnik, który krok po kroku pokażę, jak zainstalować CLI.

Po instalacji należy dołączyć do projektu, który nas interesuję i można już zacząć rozwiązywać zadania!

Każde zadanie posiada 3 konkretne do wykonania kroki, należy pobrać zadanie lokalnie (poprzez CLI), następnie je uzupełnić tak by testy jednostkowe przechodziły i na koniec wysłanie rozwiązania na serwer.
Kopiujemy komendę do pobrania zadania i wpisujemy w CLI:

Zadanie zostało pobrane do folderu który należy zmienić podczas konfiguracji.

Teraz otwieramy pliki w jakimkolwiek edytorze i piszemy kod.

W momencie kiedy wszystkie testy mam na zielono, mogę spokojnie wrzucić mój kod spowrotem na serwer Exercism. Wcześniej wchodzę do folderu z moim zadaniem, abym łatwiej mógł wrzucić konkretne pliki. Robię to komendą:
exercism submit Hamming.cs Hamming.csproj HammingTest.cs
Po wrzuceniu:

Wrzuciłem na serwer 3 pliki. Pierwszy to plik z testami, drugi z klasą, która wykonuje dany kod i trzeci plik to plik solucji.

Teraz wystarczy odświeżyć stronę z konkretnym zadaniem, aby pokazało się nasze rozwiązanie.

Aktualnie mamy dwie opcje. Pierwsza to taka, że sami akceptujemy konkretne zadanie (bez akceptacji mentora). W opcjonalnych zadaniach nie ma to znaczenia, ponieważ są one odblokowywane razem z rozwiązywaniem głównych zadań na ścieżce. W głównych zadaniach nie możemy rozwiązywać kolejnego zadania dopóki nie rozwiążemy aktualnego (razem z akceptacją). Tak więc jeśli nam się śpieszy to można je samemu akceptować. Jeśli jednak w głównym zadaniu poczekamy na to, aż mentor odpiszę i zaakceptuje, możemy dowiedzieć się sporo ciekawych rzeczy. Zwykle jest tak, że taki mentor przeczyta nasz kod i jeśli zobaczy, że jednak nie jest do końca poprawny to będzie nas nakierowywał na dobrą drogę i oczekiwał z Waszej strony zmian. Rozmowa jest przeprowadzana po angielsku i faktycznie jedną już miałem. Mentor wymusił kilkoma zdaniami, aby zmienić pewne rzeczy przy okazji odsyłając linki do dokumentacji wraz ze swoim komentarzem jak co działa.

Aby wrzucić poprawkę należy uruchomić z poziomu CLI komendę exercism submit wraz z edytowanym plikiem. Każda kolejna wersja kodu jest iterowana w zadaniu.

Liczba w chmurce oznacza ilość wiadomości w konkretnej iteracji.

Po wykonaniu poprawek, mentor akceptuje zadanie. W ten sposób można zacząć robić kolejne zadanie.

Na koniec chciałbym polecić stronę osobom, które nie tylko dopiero zaczynają się uczyć programowania, ale również osobom które już programują od jakiegoś czasu, a i nawet weteranom. Zadania są tak skonstruowane, że faktycznie trzeba przy niektórych pogłówkować. Jako że często zapominamy podstawowe elementy (na rzecz tych bardziej zaawansowanych), jest to dobre przypomnienie tych podstaw. Podoba mi się „mentoring” i to, że faktycznie pomagają i znajdują możliwe sekcje kodu do poprawy, aby było czytelniej. Szybkość pobierania konkretnych zadań i ich wrzucania również jest na plus. Tak naprawdę dwoma komendami wszystko jest rozwiązywane i automatycznie wrzucane tam gdzie jest jego miejsce.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *