Which language should I learn for computational science? Via this
- Get more advanced with the help of numerous free books and tutorials.
- Get more productive using scipy as a frontend to highly performant numerical routines and matplotlib for visualization
- Take advantage of well developed and powerful modules for scientific computing as Krypy, FeNiCS and lots of others
- Notice, that the smooth transition between flat and object oriented programming and the inherent modularity of Python make larger projects easy to handle.
- Make your code as fast as C or Fortran by simply rewriting critical parts in cython. You can also easily include routines written in Fortran or C.
This paraphrases what I think is the best way to approach a problem in scientific computing. Start with getting a hand on the problem by playing around with toy examples in small scripts. Become more systematic and set up a suite of code. Then make your code work!!! Finally, if necessary, do code optimization. Don’t reinvent the wheel and don’t do premature optimization.
This is the exact way I have worked in the past and this is what I recommend to anyone who asks.