Kot Źródłowy

Moje ulubione strony z wyzwaniami dla programistów i dlaczego nie lubię spoja.

Cześć! Dawno mnie nie było. Oj bardzo dawno. Przez ostatni czas potrzebowałam trochę oddechu od wszystkiego, w moim życiu zaszło sporo zmian, ale postanowiłam wrócić, bo dobrze mi tu z wami. Zaczęłam pracę na pełen etat, trochę schudłam, przeprowadziłam się, ale czuję się z tym wszystkim o niebo lepiej.

Żeby wejść lekko w pisanie (nie wiem jak częste, ani o czym) postanowiłam napisać dzisiaj coś lekkiego. Na techniczne rzeczy jeszcze przyjdzie czas. Dobrze już wiecie, że lubię zagadki algorytmiczne. Jest to coś, co stymuluje mój mózg do dalszego rozwoju i mimo że niekoniecznie przydaje się w mojej codziennej pracy, to poświęcam na tę rozrywkę co najmniej kwadrans dziennie. Jak sieć długa i szeroka, to stron z zadaniami tego typu jest multum i jeszcze więcej. Moim zdaniem jednak nie ma sensu być wszędzie, no chyba, że ktoś ma na to czas i chęć. Jeśli ktoś chce zobaczyć przekrój tych stron z opisami, to wyciągam artykuł z bloga kobietydokodu.pl(link do artykułu). Tam macie dokładnie opisane różne miejsca w sieci. Ja mam swoje ulubione strony i popularny SPOJ nie jest żadną z nich. Dlaczego? Przede wszystkim po wysłaniu naszego zadania do oceny dostajemy bardzo skromny feedback. Zadanie albo przeszło, albo nie, albo przekroczyło zakładany czas rozwiązania. Nie mamy możliwości sprawdzenia, ile testów miało przejść nasze rozwiązanie, ile przeszło, jak te testy wyglądały. Poza tym platforma dzieli zadania jedynie ze względu na poziom trudności, a nie jakkolwiek tematycznie. Mam trochę rozwiązanych tam zadań, szczególnie na początku moich studiów się w to bawiłam, ale obecnie nie czuję potrzeby tam wracać.

Hackerrank

Wydaje mi się, że ta strona jest dość popularna wśród programistów. Znajdziemy tam mnóstwo zadań pogrupowanych tematycznie i według stopnia trudności. Oprócz tego możemy się uczyć konkretnych języków programowania i innych umiejętności z tutoriali. Jeśli mamy ochotę, to możemy wziąć udział w często organizowanych konkursach lub nawet rekrutacjach na różne stanowiska. Strona nie posiada polskojęzycznego interfejsu, ale uważam, że nie powinien to być problem. Bywa to nawet zaletą, bo jednocześnie poprawiamy swoje umiejętności językowe i poszerzamy zakres branżowego słownictwa.

Jak zacząć? Logujemy się, wybieramy zadanie z listy i czytamy. Plusem jest to, że dostajemy dokładny opis, o co chodzi w danym zadaniu, format i zakres danych wejściowych oraz informację o formacie danych wyjściowych. Pod spodem jest bardzo fajny edytor, który możemy dostosować do swoich potrzeb. Fajną sprawą jest to, że możemy pisać rozwiązania w naprawdę wielu językach i w tych popularniejszych dostajemy gotowy template do uzupełnienia kodem rozwiązania. Nie musimy się martwić o pobranie danych, czy ich podstawowe przetworzenie. Możemy testować nasze rozwiązanie z przykładowym testem, albo stworzyć własny test i sprawdzać, czy się powiedzie. Gdy zatwierdzimy zadanie, mamy informację zwrotną, czy zadanie się powiodło. Dostajemy dokładną informację, których testów nasze zadanie nie przeszło, dzięki temu możemy poprawiać nasz algorytm i widzieć, o czym zapomnieliśmy.

Przydatną właściwością są też dyskusje pod każdym zadaniem. Warto zobaczyć rady i wskazówki, a po poprawnym zatwierdzeniu zadania zobaczyć topowe rozwiązania. W ten sposób szybko nabywamy innych sposobów myślenia.

Leetcode

Drugą stroną, którą bardzo polubiłam ostatnimi czasy jest Leetcode. Jest ona bardzo podobna w zamyśle do Hackerranka z tą różnicą, że tam mamy prawdziwe zadania z rozmów o pracę u największych gigantów w IT. Ma też kilka fajnych funkcji, np. po poprawnym rozwiązaniu zadania możemy zobaczyć wykres z infromacją, jak nasze rozwiązanie wygląda na tle innych pod względem czasu wykonania. Możemy też podejrzeć topowe rozwiązania, a tym samym uczyć się na dużo lepszym kodzie. Platforma ta umożliwia przeprowadzenie próbnej rozmowy rekrutacyjnej, a także sortuje zadania według firm, w których te zadania się pojawiły. Te dwie ostanie opcje są niestety możliwe dopiero po wykupieniu abonamentu, jednak plan darmowy też jest bardzo mocno rozbudowany.

To już wszystko na dzisiaj. Trzymajcie się ciepło

Miau!