Getting started with scientific programming.

For an individual who has no previous coding experience, playing with Python is the most efficient way to begin in scientific programming. Even very advanced C++/Fortran coders who know Python will confess it’s virtually always the fastest route to small programs and the fastest route to results for “easy-to-medium” tasks. It requires much less “legacy” knowledge (UNIX shell, build systems, debuggers, libraries etc.) than a systems programming language, and it has a very mature open-source suite of scientific libraries basically exceeding the utility of Matlab.

So go ahead and install Python and Scipy/Numpy on your computer. Make some plots with matplotlib. Calculate some eigenspectra. For further reading check out Dive into Python. There’s even whole electronic structure codes wholly realized in Python. Recoding some Numerical Recipes in Python is a worthwhile exercise for anyone who wants to do scientific programming.

In my experience most computational groups do a bad job of sharing code and collaborating on code. At the end of the day this leads to time-wasted due to reduplicated effort, and time wasted trying to find “the version that worked.”. We will use the free tools Bitbucket, and git to share and maintain codes our group works on. There’s a quite nice free book available about git you can easily digest in a weekend.