Good question. I have a similar question, although my criteria are different enough that I won&#39;t clutter this thread with it.<br><br>If marketability is your concern, you really can&#39;t beat knowing C or C++. Not just to be able to do things directly in those languages (or more likely, modify/work on existing things), but also because they&#39;ll complement your scripting skills. Some of that is obvious: you can embed and extend your scripting languages. But more important, IMHO, is the improvement to your breadth of understanding. Someone who understands what&#39;s going on both above and below the level of the script API has a chance of tackling a vastly wider range of tasks. C is better for this purpose than C++, because properly written C++ is a very very different language than properly written C, even though you *can* write either in a way very similar to the other.<br>
<br>On the other hand, not knowing C is a good defense against being called upon to tackle annoying low-level tasks.<br><br>Also, once you&#39;ve gotten a good grasp of the low-level fundamentals, it&#39;s difficult to let go -- you&#39;ll approach everything with the mindset of needing to know what is *actually* happening down there. While that is good much of the time, it turns out to be a huge obstacle to picking up alternative high-level languages with very different ways of thinking, like Erlang, SML, Haskell, or Prolog. So if you&#39;re up for it, it might be better to learn one of those first and then C later.<br>
<br>And for a totally different suggestion, C# really isn&#39;t a bad way to go. Personally, it doesn&#39;t do much for me because it&#39;s mainly usable on Windows, but if that doesn&#39;t bother you then it really has a lot to recommend it. It&#39;s seems to be much less of a walled garden than Java.<br>
<br>Going even further out on a limb, you might consider something like CUDA or OpenCL. They&#39;re going to be more signficant in the future, and right now there is far less competition for that sort of expertise.<br><br>