Resources and Reference Material

Below is a collection of resources for specific computing and software development resources we’ve curated in an attempt to provide a quick reference page for anybody starting out on a project like this.

Linux

Just for reference, the Linux Kernel Documentation uses Read the Docs to host their official documentation. So, if it’s good enough for the kernel developers, it’s good enough for us.

The Bash Reference Manual is super helpful for learning how to write bash scripts for manipulating files, running programs, and in general for executing things on the commandline.

The Linux Filesystem Hierarchy Standard is a helpful reference for how files are organized and common conventional uses of each directory. Understanding the purpose of the handful of directories under the root directory can go a long way towards helping you get comfortable with Linux and give you more control over your system. Also, because what the hell is …AppDataRoaming

Python

Python is the most popular programming language and is still growing. There are many reasons for this including general purpose capabilites as well as visualization toolkits and scientific computing libraries that are all user-friendly (more or less). The current supported version of Python is Python 3 as Python 2 support was ended in January 2020.

Scientific Computing with Python

The recommended Python distribution for scientific computing and data analysis is Anaconda 3 as it provides a very simple way to access many of most popular packages like numpy, scipy, pandas, matplotlib, scikit-learn and tensorflow. In addition many third-party packages are available for install through the conda package manager, including OpenMC.

Data Visualization

Git and Software Development

Git is a powerful tool for software development and version control for projects of all sizes, big or small. There are a number of helpful tutorials out there on how to use git,

Often times using git at the command line can be daunting for beginners. However, having a good understanding of proper git workflows can go a long way towards easing that anxiety. A very helpful reference that clearly explains a good git workflow including branching, merging, and releases can be found here

Program Design