Our simulations use several difference tools and programming languages. All of us were new to at least some of these when we first started in the group. This is a list of resources that we found helpful for getting started. Please help us add more resources to this list if you find any that are especially useful!
[Last Update: November 2023]
This guide was compiled by Rob Campbell.
- Foundational CS Skills (i.e. Command Line, VIM, Git, Markdown, and other general skills)
- Python
- R
- C/C++
- Fortran
- Customizing VMD
- Parallel Computing
- HPC
- Best Practices for Scientific Computing
- Best Practices for Collaborating on Code
- The Missing Semester of Your CS Education
Recorded lectures from MIT CSAIL's course on using the shell, VIM, Command Line, Git, etc.
- Terminal Cheat Sheet (PDF)
-
The Github Guide in the getting-started reposirory
-
Git Cheat Sheet (PDF)
-
Learn Git Branching
An interactive set of tutorials for learning Git. -
Pro Git Book
Comprehensive free book for learning to use Git repositories. -
Reproducible research: Goals, Guidelines and Git
Slides from a 2019 Princeton workshop with an overview of reproducible research best practices and a guide to setting up Git. -
Setting Up a Github Repository for Your Lab
A guide for how to manage a research lab's Github organizational account. Aimed at ecology and evolutionary biology research, but includes many broadly applicable best practices. -
Scientific Collaboration and Project Management in GitHub
Blog post about Github for scientific research project management -
Cookiecutter Science Project
An example template for reproducible science projects (uses Conda)
-
For help inheriting some of the analysis code originally written as modules:
-
R for Data Science course on LinkedIn Learning (LinkedIn Learning)
-
R Essential Training: Wrangling and Visualizing Data (LinkedIn Learning)
-
R Essential Training Part 2: Modeling Data (LinkedIn Learning)
-
A note on for-loops in R (StackOverflow)
-
RStudio Cheat Sheet: ggplot2 (a more powerful data visualization package than base R's plot function)
-
R for everyone : advanced analytics and graphics by Jared Lander (available as an E-book from the NU Library)
-
R for Reproducible Scientific Analysis (Software Carpentry)
-
10 tips for making your R graphics look their best
-
Headers and Includes Overview (why use
.ccand.hfiles)
-
Understanding "precision" and "kind"
-
Interfacing Fortran and Python (f2py)
-
Modifying the init script to change default display settings
-
Change the default VMD movie maker settings
-
Slurm Workload Manager website (with links to tutorials and a quick start guide)
-
Slurm Commands Summary (PDF)
-
Good Enough Practices for Scientific Computing
2016 follow up to "Best Practices for Scientific Computing" as 6 best practices specifically geared towards people who are just getting started with scientific computing. -
Best Practices for Scientific Computing
2014 paper outlining 8 best practices for scientific computing.
-
Stealing Google's Coding Practices for Academia
A 2016 blogpost on the differences between academic code and production code, making an argument for best practices for collaborative programming in academic research: style guides, tooling, code review, pair programming, and open source. -
Reproducible research: Goals, Guidelines and Git
Slides from a 2019 Princeton workshop with an overview of reproducible research best practices and a guide to setting up Git (geared towards bioinformatics, but still useful) -
Making READMEs Readable
Best practices for open-source READMEs/documentation