Прежде чем что-то изучать прочитай про основы ООП, теорию графов, теорию множеств, булева алгебра, двоичная система счисления, матрицы (для работ с массивами) Не поймешь (хотя бы примерно), то и нет смысла вообще что-то изучать. А если поймешь, то бери смело, то что больше нравится.