Coding

Python

Most of my coding projects are done in Python, so most of the following resources are geared towards Python code.

Before skimming through the list entries, read the Zen of Python, it’s dangerous to go alone! Furthermore, following the language coding conventions is always strongly recommended.

OOP

  • Abstract Base Classes: how to handle abstract base classes (along with a nice tutorial on inheritance and composition)

String formatting

Code documentation

matplotlib

  • SciencePlots: preset science plot styles for matplotlib (useful as inspiration!)
  • Cheatsheets: official matplotlib cheatsheets for everybody!

Various

  • numexpr: a fast numerical expression evaluator for NumPy (particularly useful to evaluate expressions involving arrays)
  • dpath: one of the easiest ways to handle nested dictionaries, which is an essential skill e.g. to work on JSON files with Python (also check this)

Profiling

Bash

  • Advanced bash scripting: Ruprecht-Karls-Universität Heidelberg’s 2017 bash course
  • Life in a shell: a series of talks held at Warwick University on introduction to working with bash for scientific computing

LaTeX

Markdown

VIM

Almost everything which gets typed up on my machine has a very high likelihood of ending up in VIM, whether it is code, text, or this resource list. Here is a small collection of tools, guides and plugins. Even after starting to use Emacs, Vim still has its place in my workflow to quickly visualize and edit files.

Emacs

Emacs found its way into my toolbox, and it is quickly becoming the most used tool for… whatever requires file editing, workflow management, and so on. Most of the guides listed here are redundant, since Emacs is self-documenting! Some of the packages I currently use are magit, pyvenv.

git, gitlab and all that

Miscellaneous

If it doesn’t fit in any of the previous sections, this is the place you’ll find it in.

Various

  • Visualize it: a collection of physical and mathematical models, visualized in your browser
  • ImageMagick’s convert: a powerful tool to… convert between different image formats (like nbconvert)

Tools

Design patterns

  • Design patterns: the (mostly free) handbook to design patterns in every programming language you can think of
  • Python design patterns: a guide to design patterns in the Python programming language

Hugo