Tools

Even though we don’t work in a laboratory, computationalists use many tools that make our lives easier and more convenient every day! I want to highlight some (especially those that exist thanks to the uncompensanted efforts of open-source developers) here, to provide some acknowledgement to those developers and also in case you’re looking for a tool to do something similar, or do it better!

I’m also always keen to learn new tools, so if you think you can improve my workflows, give me a shout!

Progamming Languages

My most fluent programming at the moment is Python, although I’m working on learning Julia!

I use a lot of different Python packages too. For data-wrangling, I couldn’t live without Pandas or the rest of the SciPy ecosystem, especially NumPy for mathy things and matplotlib for visualization. Seaborn is another great visualization package built on top of matplotlib. For simple parallelization tasks, Joblib makes life a lot easier. And for interacting with HDF5 files super simply, deepdish (sadly no longer maintained) is also pretty great.

Git is a great and near-ubiquitous version-control system. I’m at a pretty basic level of git competency, and like many people, I also use GitHub.

Maybe it hardly bears mentioning, but a big barrier for many new computationalists is getting familiar with a Unix environment. If this is something you are (or someone who know is) dealing with, I heartily recommend Unix for the Beginning Mage as a whimsical yet effective learning tool.

Programming Environments

For interactive testing of Julia and Python code with inline output, I’m an extensive user of Jupyter. Binder is a related useful tool that lets you spin up Jupyter kernels from git repos in the cloud!

I learned about iTerm2 from my amazing friend and mentor Prashun and never looked back. Just a super reliable, customizable terminal app. I particularly love their Minimal theme and status bar customization options in the latest release!

When I’m editing code on a cluster, I’m a very-much-not-power-user of Emacs, but when I’m able to edit locally, I love love love Atom. Super nice-looking out of the box but nearly infinitely customizable with extensions for every possible need! The extensions I use include

Academic Life