   Crash Course in Java or C++ ...need some advice!
  I have been hammering at learning C++ and will be continuing to do so.  I have some programs that I am writing as part of my learning experience.  I also had plans to learn some other languages thoroughly such as Java as I am in a position where I have been writing programs for my company any a less complex languange such as VB and VBS.  My ultimate goal is to learn the language and have a chance to implement it at my place of work for some time before seeking a job in another programming language (i.e. C++ , java..ect).My dilemma that I was wanting some input from programmers working with the languages in question, is: my work place will pay for crash courses in a language of my choice, and at this point I am assuming I might only be good for one.  So, should I take C++ as another facet on the training I have already been doing in C++ or take this opportunity to get a jump start in Java?  Any opinions, and feel free to give yours, and opinions on the two Java/C++ in general?   
  From what I know of the two, C++ is fundamentally more difficult to master than Java in both syntax and design standards.  Based on that only I would probably take a course in C++.  Java itself is a farly easy language to learn with little more than a good book.Just my 2 cents.   ;  It very much depends on your short and medium term goals.  Describe a little more what your interests or experiences are and we can probably help you more.My general purpose short list is:  C++, C#, ruby, Python, Java.Some other options that suit certain goals:  LISP, PHP, VB.NET (if you must).Personally I only use C++, C# and ruby anymore - But people I have worked with and respect have good things to say about all of the above choices except VB.NET.  Not everyone likes these choices, but at least 1 person likes each.I group them into 3 groups:C++ - Multiparadigm do everything langauge.  Templates!!!  Most powerful option in many domains, but less rapid development for both beginners and in any area where good libraries are not available.  The greatest platform and library support with the exception of ultra-small portable devices like mobile phones where Java is better supported.C# / Java - Well designed object-oriented langauges and platforms that let you get a decent amount done fairly quickly.  Well designed core libraries help acomplish common tasks.  Good middle ground between the wide-open frontier of C/C++ and the rapid dynamic nature of ruby/Python.ruby / Python - Great general purpose dynamic object-oriented langauges with good design, flexibility and support.  Best at ultra-rapid development and small projects, can scale upward with proper design skills.  Somewhat slower for performance critical code (such as 3D engines) in many cases.;  thanks both of youXai that also was some very helpful break down information.To be more specific as you asked, I got thrown into programming for my current job which I was a network admin and asked to programming our automation software for software installs.  I got into doing them in mainly VBS which I know is some what a more simplictic language compared to others.  However, I found it very challenging, exciting and have since went on and delved into learning more programming.  I decide to start with C++ because of what I knew, it really laid some of the foundations for other languages, and through some guidance (some might disagree) decided to go that direction as my next language to learn.  Because of my position, I am able to more or less choose the language of my choice to write the programs that I do.  As more of my goal, I wanted to take a road that would get me started, have a chance to implement it in my current position, and move out to a job related strictly iin programming in one of these languages already mentioned.  So I knew that the posibilities of getting my job to pay for more than 1 crash course might be slim, so I was trying to decide what might be my best option (continue my own journey of study in C++ and use the class as a jump start into Java 'of course as soon as I am ready after getting C++ going', or using the class as a further educational step to learning C++).  Hope that might help in laying out my situation.   ;  C++ is a broad and powerfull language.  Any you can do with Java, you can do with C++.  It can be slow to develop in C++ compared to some other languages, VB for example, but I feel it worth the trouble.In the long run, if you can master C++ you will be able to accomplish almost any task.  Linux for example was written almost entirely in C++.But, it's also good to have other options at your finger tips.  Java is great for web based applications, C++ is not so good.Go with what you feel will help you the most in the long run.  For me, I have decided to master C++.   ;  You mention you used VBA so that makes me wonder if you are a network admin for only (or primarily) windows machines?  If so, you may find C# more suited to your needs than Java for 1 main reason - very natural use of any COM components.  It is a fairly trivial matter to instantiate and use COM objects in .NET and most Microsoft components are COM based (nearly anything you controlled from VB or VBA is a COM component).  Java is the choice for better mutli-platform support (although there is Mono for .NET on other platforms as needed), but .NET is the choice for integrating Windows platform components.  Nothing wrong with C++ and I would definately recommend it as something to start working with in the background ... but I think you will get more acomplished much more quickly in something like C# given the fact that the quicker a langauge becomes usefull to you in your day-to-day tasks, the more you will use it and the better you will become.All 3 will be good choices, so be confident in the knowledge that whichever you choose it will work out fine.  Good luck.   ;  Continuing along that reasoning, with the coming of psh it will be highly useful for windows admins to get some background with .NET   