Quotes on programming
When you program well, you are trying to design a machine to perform a task. You design with a man-made programming language—FORTRAN, Lisp, C++ or Java, for example. Programming is not that different from instructing a friend to perform a task for you. The big difference is that the computer is much more literal than any friend, and so every detail of the task must be specified as though the computer knows nothing about the world.
Until I arrived at the [AT&T Bell] Labs in 1980, I had never realized how elegant and challenging programming could be.
What are you doing when you program? You are trying to use a language to specify an imagined world and its details as accurately as possible. You are trying to create this world on a machine that can understand and execute only simple commands. You do this solely by writing precise instructions, often many hundreds of thousands of lines long. Your sequence of instructions must be executed without ambiguity, by an uncomprehending automaton, the computer, and yet, in parallel, must be read, comprehended, remembered and modified by you and other programmers. Just as poetry strives to resolve the tension between form and meaning, so programming must resolve the conflict between intelligibility and concision. In this endeavor, the language you employ is critically important.
A quote attributed to Donald Knuth:
Programs are meant to be read by humans and only incidentally for computers to execute.
All forms of quants spend a large amount (i.e. more than half) their time programming. However, implementing new models can be interesting in itself.
Quant traders must be familiar with data mining, research, analysis, and automated trading systems. They are often involved in high-frequency trading or algorithmic trading. A good understanding of at least one programming language is a must, and the more programs the candidate knows, the better. C++, Java, Python, and Perl are a few commonly used programming languages. Familiarity with tools like MATLAB and spreadsheets, and concepts like big data and data structuring, is a plus.
In my opinion (and others will disagree I'm sure) to be a "world class" quant you need to have in-depth knowledge of a low level programming language (e.g. C++), working knowledge in a few high level languages (R and Python, for example), and strong working knowledge of SQL and databases.
We looked at the CVs of 6,425 professionals working at 16 top hedge funds globally. Not all were following purely systematic strategies—some were multi-strategy funds. As the chart below shows, one language in particular features on the resumes of employees at top hedge funds: Structured Query Language (SQL). There's a reason for this: hedge funds which rely upon coding are all about devising trading strategies after collecting and analyzing huge data sets, and SQL is used within other programmes to modify and query databases. Ranking behind SQL are C++, Java and Python. They weren't nearly as popular in our sample and C++ was ahead of both Java and Python. Things might be changing though. Joel Sichel, a systematic trading headhunter at GQR Global Markets in New York, says that there's been a recent surge in demand for people who can code Python, "due to its transparency and ease of use for later users coming on to a pre-programmed system." This might be why Man Group's AHL Coding competition, in which student coders compete for a $5k prize, is again being run entirely in Python. SQL doesn't even get a look in.