Dopóki nie masz rodziny - nie ograniczaj się do jednego miejsca zamieszkania. Zasada jest prosta - im większe miasto, tym więcej ofert i lepsze zarobki. Co do technologii. Najpierw odpowiedz sobie na pytanie co CIEBIE kręci najbardziej. Ja na przykład za Webem nie przepadam (znaczy front-end mam na myśli). Język nikogo nie interesuje, bo sam w sobie nic nie znaczy, dlatego do gry wkraczają frameworki - a i nauczyć się ich (zarówno języka, jak i frameworku) to żaden problem.
Chodzi raczej o Twoją zdolność do rozwiązywania problemów. Tej umiejętności rozłożenia danego problemu na czynniki pierwsze i za pomocą dostępnych narzędzi (języka i frameworku) rozwiązania go w możliwie najbardziej zoptymalizowany sposób - to jest programowanie.
Ale nie wkręcaj się za bardzo na C++. Ten język dziś jest wykorzystywany wyłącznie przez programistów gier (choć już coraz rzadziej) i szerokopojętych naukowców. Nie twierdzę, że nie ma ofert, ale to coraz większa nisza IMHO. JAVA i C# znasz - więc nie będę się rozgadywał. Ta pierwsza cały czas przoduje zarówno mnogością ofert pracy, jak i płacami (chociaż granica zaczyna się zacierać na obu płaszczyznach).
Jak już wspomniałem - grunt to wyrobić sobie nawyk dociekliwości. Język to tylko narzędzie - jeśli chcesz być zwykłym koderem to długo w branży nie zabawisz, a w najlepszym przypadku - za marne pieniądze.
Uhm. Widziałem tu kogoś kto kręci się w web-development więc na pewno się zaraz wypowie - ja ten temat pozwolę sobie ominąć ;)
Ale nawiązując do back-end. Jako miłośnik technologi M$ do wszystkiego staram się używać .NET i C#. Fakt - małe i proste pierdółki możnaby zrobić dużo szybciej w innych językach, ale po prostu się w nim zakochałem od pierwszej linijki kodu. Nie będę Cię do niczego nawiał, ale warto mu się przyjrzeć bliżej ;)
I oczywiście SPOJ! Nie wiem czemu ludzie tak szybko z niego rezygnują, ale uwierz mi, że w dłuższej perspektywie czasu, zauważysz diametralne zmiany w Twoim sposobie myślenia.