How To Use a Computer
The following is a list of good resources to get new students started with using common developement tools. We try to use as many standard tools as possible. One should never reinvent the wheel. Especially if they are a physicist.
For a very comprehensive list of available tools, see Sindresorhus's Awesome List.
GNU/Linux
Most of our software is designed to be run on a Linux computer. Using it is very important.
- Learning the Shell
- SSH and SCP: Working on a Linux machine remotely.
- tmux: A multiplexers for manu virtual terminals at a remote (or local) host.
Programming
- Learn C++: C++ tutorial recommended by Adam.
- I don't like notebooks: Great presentation by Joel Grus on why you should not use Jupyter Notebooks.
Build Automation Tools
- What is a Makefile and how does it work?: Learn the concept behind makefiles, but use an advanced build tool (like CMake) to generate them.
- FIRST-HEP CMake3 Tutorial
Git and Code Versioning
Git is a common and very useful tool for versioning your source code. One's will see a significant improvement to their life if they learn the concepts behind git instead of just blindly copy-pasting commands.
GDB
The GNU Debugger is a much better debugging tool that cout
statements.
Python Libraries
Tutorial on useful Python libraries for particle physics data analysis.
- Uproot Tutorial: uproot is a lighweight and modern Python library for ROOT I/O
ATLAS Computing
- The US ATLAS Computing Bootcamp 2020: Set of tutorials designed to get oneself familiar with the computing tools (git, cmake, docker) used by the ATLAS collaboration. Morning lectures focus on the (generic) tool itself. Afternoon lectures focus on how it is used by ATLAS.
Examples
Useful examples and code snipplets.
- Doxygen CI: Deploy automatically generated documentation to lxplus