Czy CodeFights to dobra witryna do spędzania czasu?


Najlepsza odpowiedź

Odpowiedź wydaje się prawie bezużyteczna, ponieważ co masz na myśli mówiąc „dobra”? Co chcesz osiągnąć?

Jeśli chcesz zostać zatrudniony, może to być dobry sposób na zatrudnienie, ale wydaje się to mało prawdopodobne, chyba że naprawdę jesteś jakimś super dobrym strzelcem. Ale trudno jest wiedzieć, jak byś to zrobił. Jestem pewien, że są lepsze sposoby na znalezienie pracy, jeśli umiesz dobrze kodować i potrafisz to udowodnić. Na przykład umieść dobry, użyteczny kod na githubie.

Spędzam tam ostatnio dużo czasu (od miesięcy). Jak w przypadku każdego przedsięwzięcia edukacyjnego, pomaga panować nad sobą, gdy to robisz. Proces zdobywania zielonych znaczników wyboru, złotych monet i lepszych odznak może uzależniać, więc uważaj na nieproduktywny plateau.

Ludzie krytykują codzienne wyzwania, ale zdają sobie sprawę, że robienie codziennych wyzwań to także proces twórczy, a komentarze jest po to, aby Ci pomóc.

Aby po prostu nauczyć się języka, istnieje sekcja Arcade, w której możesz rozwiązywać problemy we własnym tempie. Wydaje się, że klasyfikuje ludzi według kolejności ukończenia, więc nie jest to coś, w czym można konkurować. Uważam, że jest to bardzo pomocne w lepszym zaznajomieniu się z funkcjami i tablicami PHP, a także pracuję nad wykorzystaniem metod OO.

Codzienne wyzwania są dla mnie bardzo ekscytujące, interesujące (w tamtym czasie) i trudne. Jeśli zawsze możesz to zrobić, jest to zbyt łatwe. Czytanie Opisu to sztuka. Czasami zaczynam kodować zbyt szybko, zanim dobrze poznam Opis, a potem tego żałuję. Czasami myślę też o niewłaściwym rozwiązaniu i zaczynam je kodować, zanim zrozumiem, jak prawidłowo rozwiązać problem. Ostatnio pojawiło się kilka bardzo trudnych problemów, które wymagały technik programowania dynamicznego, aby je rozwiązać, a były trzy z nich, których nie mogłem rozwiązać w wyznaczonym czasie.

Jeśli chcesz rozwiązać wymagające łamigłówki i odświeżyć na umiejętnościach programowania w PHP lub C ++, Javie, MySQL lub Javascript, albo naucz się wymyślnego języka, takiego jak Haskell, Python, R lub Ruby itp., wtedy powiedziałbym, że Codefights to świetne do odwiedzenia.

Odpowiedź

Bardzo intensywnie korzystałem z obu platform, aby wzmocnić swoją wiedzę o strukturach danych i algorytmach.

Mocne strony Hackeranka

  • Tony, mam na myśli mnóstwo pytań, uporządkowanych w ścieżki. Chcesz dowiedzieć się, jak używać wyrażeń regularnych / Java / SQL / Algorithms / Data Structures / Python / Math? Każdy z tych i innych tematów ma określone ścieżki z określonymi podtematyami.
  • Jeśli używasz tych witryn do przygotowania się do rozmowy kwalifikacyjnej, wiele firm przesyła swoje wyzwania związane z kodowaniem przez rangę Hackera jako część procesu rozmowy kwalifikacyjnej , więc dobrze jest się zapoznać. Expedia, GE, Goldman Sachs i Optiver, żeby wymienić tylko kilka
  • Prawie wszystkie funkcje (jeśli nie wszystkie) ze strony internetowej są dostępne bezpłatnie. W Leetcode bez płatnej subskrypcji istnieją wyraźne wady.
  • Na przykład nie zawsze możesz przesłać swoje rozwiązanie od razu, ze względu na sposób, w jaki działają one w rankingu w stosunku do wszystkich innych rozwiązań.
  • Prawie wszystkie stwierdzenia problemów zawierają przykłady 1 lub 2 przypadków testowych i odpowiedzi oraz dość dokładne wyjaśnienia, dlaczego odpowiedź jest taka, jaka jest. W Leetcode jest to znacznie mniej powszechne.
  • Każde pytanie opublikowane w serwisie Hackerrank ma zweryfikowane rozwiązanie na karcie „Od redakcji”. Nie każde pytanie dotyczące Leetcode ma jedno (chociaż można łatwo uzyskać odpowiedź na obu platformach, klikając kartę „dyskusje”).
  • Obie witryny mają widoczne przypadki testowe, na których można uruchomić kod przed przesłaniem. Hackerrank całkiem nieźle radzi sobie z uczynieniem tych widocznych typowymi przypadkami, podczas gdy Leetcode prawie zawsze używa skrajnego przypadku do widocznego testu.
  • Hackerrack ma wiązania Vima! (Jeśli to Cię interesuje)

Mocne strony Leetcode

  • Coś, co kocham w Leetcode to to, że mają bezpośrednio do rzeczy stwierdzenia problemów. Hackerrank ma dość długie wprowadzanie i rysowane scenariusze, które maskują rzeczywiste zadanie.
  • Na przykład: Hackerrank może wyglądać jak „Sally kocha czekoladę, ale tylko chce jeść czekoladę z najmniejszą ilością sodu. Biorąc pod uwagę tablicę poziomów sodu, zwróć najniższą czekoladę z najniższą zawartością sodu ”
  • Odpowiednik Leetcode to„ Biorąc pod uwagę tablicę liczb całkowitych, zwróć element min ”
  • Zarówno Hackerrank, jak i Leetcode porównują koszty działania algorytmu, synchronizując rozwiązanie z przypadkami testowymi. Jednak po zatwierdzeniu rozwiązania wyświetla je w zestawieniu ze wszystkimi zatwierdzonymi rozwiązaniami w tym samym języku programowania oraz procentem liczby rozwiązań pokonanych w celu zwiększenia szybkości.
  • Środowisko testowe jest znacznie lepsze. Po wprowadzeniu niestandardowego przypadku testowego uruchamia również prawidłowe rozwiązanie, dzięki czemu możesz od razu wiedzieć, czy masz rację, czy nie.W serwisie Hackerrank uruchomienie niestandardowego przypadku testowego powoduje uruchomienie tylko rozwiązania.
  • Kolejna rzecz, którą uwielbiam, w przypadku każdego problemu interfejs kodowania wymaga tylko pracy z pewną predefiniowaną sygnaturą funkcji. W Hackerrank przez większość czasu musisz zajmować się wejściem / wyjściem i wykonuje dopasowywanie ciągów znaków w celu sprawdzenia poprawności odpowiedzi, co może być trochę irytujące
  • Poważnie… dlaczego powinienem drukować „TAK” lub „ NIE ”, gdy szybszym odpowiednikiem jest po prostu przechowywanie obiektu boolowskiego?
  • Leetcode ma taką fantazję „ Pytanie zadała firma X z częstotliwością Y\% ”, , do którego możesz uzyskać dostęp w ramach subskrypcji. Osobiście uważam, że to narzędzie nie jest zbyt użyteczne i daje fałszywe wrażenie, że ludzie mogą po prostu zapamiętać te wszystkie konkretne pytania, gdy otrzymają rozmowę kwalifikacyjną z firmą X.

Osobiście bardziej lubię LeetCode i ostatecznie wszystko sprowadza się do tego, do czego go używasz.

Wyłączenie odpowiedzialności : oto moje opinie na temat mocnych stron i słabości. Chociaż niektórzy ludzie mogą uważać, że słabość jest naprawdę mocną stroną i vice versa.

Dodaj komentarz

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