I was told the ideal toolbox for the aspiring quant is proficiency in some combination of a low level preferably OO language (C#/C++/Java/...) , a computational language (Matlab/R/...) , and a scripting language (
Python/...).
This is correct, however there are a few nuances.
First C++ is preferred and proficiency in it is more portable (C++ signals you can learn Java and C#, the opposite isn't necessarily true). I personally never "understood" why because pointers were always very simple to grasp for me, but here's an opinion of
why:
I used to be able to tell the smart kids because they could rip through a recursive algorithm in seconds, or implement linked-list manipulation functions using pointers as fast as they could write on the whiteboard. But with a JavaSchool Grad, I can't tell if they're struggling with these problems because they are undereducated or if they're struggling with these problems because they don't actually have that special part of the brain that they're going to need to do great programming work.
Second,
Python can play as all three (computational via Numpy/Scipy etc, low level via Cython), although it cannot replace a low level language (ie you're not generally going to be allowed to run Cython in production).
Third, you need a basic understanding of SQL and/or SQL concepts (left join, inner join, indexes, grouping/aggregation, primary key).
Here's a sample of my language knowledge grouped by capability:
High -- C++, Java,
Python (incl Cython), R, q/kdb+, SQL
Medium (ie can get the job done but slower) -- bash, VBA, Unix/Linux CLI tools (sed, grep, awk)
Low (familiar, maybe wrote some small programs, but no big project experience) -- Scheme, Common Lisp, MATLAB
Also, general skills that help a lot and I'd personally look for in a developer: version control experience (incl branching, 3 way merges), testing, network protocols, multithreading concurrency, parallel computing.