Lessons 1: Programming in C++ and Julia 2: Linux 3: Building Software 4: Working on the Supercomputer 5: Optimization 6: Storage 7: Concurrency, Parallelism, and Threading 8: Threading in C++ 9: Distributed Programming and MPI 10: Distributed Programming and MPI continued 11: Applications of Supercomputing 12: Accelerators 13: Supercomputing in the Real World