It really depends on what you want to do. The fundamental difference between C/C++ and Java is that C/C++ compiles your code into the processor's native machine language. JAVA compiles your program into what's called an "intermediate language" (IM). In order to run a Java program, one needs what's called a "virtual machine" \n(VM) to interpret the intermediate language and run the program. The upside of this is that a Java program can run on ANY hardware and ANY operating system with an approriate VM installed. Also, the VM can do many things to ensure the safety of the program (Java applets on webpages can almost be guarenteed to be harmless). The downside is that IM languages like Java (or the Microsoft .NET languages, for another example) will be a little bit slower and cannot do some of the things that a lower level programming language could do. One simply cannot do things like write device drivers or access an operating system's API with a language like Java.\n\nIf you're new to programming, Java is probably a better choice to learn first. The Java library supports even advanced operations like graphical user interfaces or multithreaded applications. Java is easier to learn and easier to work with.\n\nOn the other hand, if you plan to program for a living, a good knowledge of C++ is absolutely essential.