Opionionated!

This course is opinionated, much as the Hitchhiker’s Guide to Python (by Kenneth Reitz and others, see [Reitz and Schlusser, 2016]) is. While there may be many more (and sometimes better) solutions, I will usually focus on one and only one solution that works best for me. Most of the material and ideas presented here are thought through by its author and stem from personal experience. While I may change my mind over time, I will not argue with you. Therefore, it is up to you to read, understand, and take the advice as applicable. Nevertheless, suggestions for improvement are welcome. Bear in mind that, while not a professional programmer by training, I’ve spent quite some time reading the relevant literature and practicing their advice in different projects. Furthermore, I have by now more than 15 years of experience with programming in the scientific context, including its somewhat intrinsic problems.

Some examples

Want to see some examples of the (strong) opinions presented in this course?

  • Read, understand, and follow PEP 8 and PEP 257.

  • Always use a version control system (git) and a version number scheme (SemVer).

  • Document your code straight from the beginning, using Sphinx and the “NumPy” docstring format.

  • Use PyCharm as your IDE.

  • Always work with (and within) virtual environments.

  • Think before you code – and reflect on what you’ve done.

Be reassured that you will get some more details (and sometimes even arguments) for each of these points listed above.