Bleibt aber nun die Frage, was du gerne programmieren möchtest. Es gibt einige unterschiedliche Anwendungsbereiche.
Zum einen kannst du natürlich für ein Betriebssystem ein Programm entwickeln, wie für Windows, Android, Unix, iOS.
Wenn du nun Microcontroller programmieren möchtest, würde ich dir im ersten Schritt zu ANSI C bzw. C99 raten. Hierbei bieten sich AVR-Microcontroller sehr gut an, da man für diese jede Menge Programme finden kann.
Wenn du ansonsten ein bischen tiefer in den Microcontroller einsteigen möchtest, empfehle ich dir, dich einmal an Assembler zu probieren.
Allerdings ist Assembler sehr fundamental aufgebaut und du musst so gut wie alles selber machen (Register in Arbeitsregister laden, um zu multiplizieren teilweise mit Schleifen addieren usw.)
Ich wollte hier nur einmal die andere Seite vom "Programmieren" aufzeigen. Es gibt viele Anwendungsbereiche, wo es unsinnig ist, Java drauf zu spielen, bzw. wo keine Ressourcen für Java vorhanden ist, sondern wo ein einfaches C- oder Assembler-Programm reicht. (Kaffeemaschine, Waschmaschine, Kühlschrank - naja bei neusten Modellen wahrscheinlich mit WLAN und Bluetooth, daher mit Betriebssystem).