Nie znam SPOJa ale gdy uczyłem się JS to sporo czasu spędzałem na codewars, są tam różne zadanka (w tamtym czasie głównie w JS), które dotyczą właśnie różnych problemów algorytmicznych, logicznych itp. I teraz, z perspektywy dłuższego już czas powiem Ci, że to nie jest takie super... Owszem, poznałem wiele elementów języka ale w pracy najczęściej wykorzystujesz zupełnie inną wiedzę...
Oczywiście, jesli wejdziesz np. w game dev no to takie rzeczy są istotne, ale jeśli myślisz o tworzeniu aplikacji typowego użytku to lepiej zrób inaczej - ogarnij sobie podstawy, tu jak najbardziej ten spoj pewnie jest spoko, ale daj sobie na to powiedzmy 2-3 miesiące max. Potem wymyśl sobie jakąś większą aplikację i zacznij ją pisać od podstaw. To da Ci znacznie więcej.
Wiele osób startujących na juniorów umie robić jakieś tam proste algorytmy i oklepane zadanka z neta, ale odpadają np. na kwestiach stworzenia kompleksowo jakieś aplikacji.