i am not sure if I should learn C++ or java Learn both. :) Seriously, a good programer can learn the syntax of both in very little time. Mastering either one can take 10 years, but there is an advantage of being able to say "I know C++ better, but this is a situation for Java so I'm using Java". Do not limit yourself, the basics or programing (data structres, algorithms, design patterns) carry over pretty well, even when the languages are very different. C++ and Java are not that different on the surface. Which is the better route Scheme. It is a language that is never used outside of accidemics, it is simple to learn, easy to program in. It is also nothing like C++, Java, Basic, or assemply. It is a whole different way of thinking, making some concepts easy that as a programer you are unlikly to discover in C++/Java. Is one language more useful Depends. You can't write a device driver in Java, but C++ isn't common for device drivers either. You can't write a portable web plugin in C++, while in theory Java allows this. You can't write a game that demands everything modern hardware can give in Java, but if you write a simpler game in Java is can work on both Windows and OSX. Is c++ being replaced by java? No. Nor is C# replacing either, except in very limited areas. Each has strengths and weaknesses. While you are at it, learn python, and at least one assemply language. Python is useful for some day to day programing that you don't want something as complex as Java/C++ for. Assembly is needed because you should always have in the back of your mind how the machine is really working. Once in a while this will save your from complex bugs. Scheme will teach you good habbits. Don't be afraid to learn new langauges.