I would agree with some of the previous posts just pick a language and learn it . You will need to learn multiple languages to have in your toolkit C is good for lowlevel programming and because so much optimized code it based on it , Haskell is good for changing the way you think about programming and being on the bleeding edge of computer science research , and Python is good for rapidly generatingaltering scripts and plotting data . Also I want to correct a misconception about Python performance . While you are correct that vanilla Python doesn ' t perform all that well , you can make optimized code using numpy , PyPy , or Cython The latter of which generates compiled C code and also lets you disable the GIL so you can write parallelized code . There are books that go over this , like High Performance Python Practical Performant Programming for Humans and Cython A Guide for Python Programmers .