Есть различные должности: data scientist, algorithm developer и др.
Первая занимается исследованием и разработкой математических моделей для анализа данных. В ней, прежде всего, требуется хорошо владеть различными областями математики и в значительно меньшей степени познаниями в программировании. Обычно ведут эксперименты с данными, занимаются визуализацией данных, интерпретацией результатов, составляют модели в виде формул и пишут небольшие части кода на языках R, Matlab, Python для демонстрации возможностей. Ведут консультации с ведущими разработчиками. Все записывается в набор документов, понятных программистам, и так идет процесс по кругу. Применяют набор различных инструментов и библиотек, написанных на разных языках. Все, что годится для экспериментов и продвигает исследования, применяется.
Во второй должности требуется быть программистом с профильным образованием, чтобы максимально качественно и эффективно написать код для эксплуатации в производстве. Требуется хорошо знать прикладную математику и способы эффективной реализации алгоритмов. Здесь применяют высокопроизводительные языки, такие как C, C++, C#, Java, Scala, ..., и даже Fortran. На практике, в последнее время также и на Python (везде пихают его где можно и нельзя). Обычно стараются применять не больше 1-2 языков.