Per poter realizzare i driver per esempio sono obbligato ad usare l'assembler oppure potrei farlo anche in java
I driver non si scrivono in Assembly (e non assembler) né in Java, si usa il C. Se invece ti interessa la programmazione di sistema puoi affiancare al C anche altri linguaggi quali C++, Delphi (Windows) ed in generale quelli che non richiedono una macchina virtuale o un interprete per funzionare.

Qualcuno potrebbe darmi un percorso, una strada da seguire per poter incominciare a programmare qualcosa di interesante?
Dovresti formulare una richiesta più precisa, la vastità dell'argomento non consente di indicare un percorso senza conoscere la destinazione esatta.

Cmq ho postato anche in java.
Dicesi "cross-posting", in genere è severamente vietato sui forum.