Си (в том числе Posix, WinAPI), затем элементы C++ - классы, наследование, шаблоны, затем STL - алгоритмы, контейнеры, по желанию - на ассемблере также можно пописать немного, в частности пригодится при отладке к примеру. Затем, когда надоест, забываете как страшный сон и пишите на Java.