To zależy od języka, ale i od firmy do której aplikujesz. Dla jednego na stanowisko juniora wystarcza podstawy podstaw, a dla innego trzeba znać niewiadomo co. Na pewno jednak przydatny będzie git, pewnie zasady SOLID, i zapewne testy jednostkowe.
Co do zadań ze SPOJ' a, to nie wykonuje się ich w pracy, ale ono pokazują, że programista musi myśleć nad rozwiązaniem problemu, a nie koniecznie nad samą składnią. Bo język jest tylko narzędziem, a problem można rozpatrzeć niezależnie od technologii.