Język na dobrą sprawę nie gra roli, możesz pójść tradycyjną ścieżką i zacząć od C++, jeżeli uważasz że potrafisz myśleć abstrakcyjnie to możesz zacząć od któregoś czysto obiektowego np C# lub Javy.
Musisz znaleźć sobie jakiś kurs, w przypadku c++ polecam http://cpp0x.pl/ oraz kurs Mirosława Zelenta jako uzupełnienie (kursy wideo są ok, ale jedynie jako uzupełnienie, a nie kompletny kurs)