Assieme a Java ti consiglierei di studiare un po' di teoria sulla progettazione del software. Un buon punto di partenza è "Design Patterns" edito da Addison-Wesley in italiano.

I linguaggi passano. I fondamentali restano.