Lecture notes
- MIT Open Courseware
- Richard Fitzpatrick's Graduate course (Institute for Fusion Studies, Austin, Texas)
- Magnetohydrodynamics at U Wisconsin by Prof. Dalton Schnack
- How to become a good theoretical physicist by Gerard 't Hooft
- Homepage of J.D.Callen at Madison-UW - lots of useful material and links
- IFS reports A collection of reports from IFS Texas, going back to around 1980
Projects
Some interesting projects, mainly related to plasma physics- RaySect, a ray tracing framework in Python
- Feltor, a Discontinuous Galerkin code for plasma turbulence simulations
- OpenSBLI, automatic code generation for finite difference methods
- Hedge, a Discontinuous Galerkin framework in C++/Python
Plasma physics
Some sites with interactive exercises- Internet Plasma Physics Education Experience (ippex) at PPPL. Operate a virtual tokamak, and analyse of data from the Tokamak Fusion Test Reactor (TFTR)
- Warwick Plasma Calculator with Java applets to calculate particle orbits, waves, and other useful plasma physics calculations
HTML / CSS
UNIX / Linux
- General guides
- Introduction to UNIX by William Knottenbelt at Imperial College
- Phil Hasnip's Linux guide
- Ultimate Linux Newbie Guide
- TuXfiles collection of Linux tutorials. Claims that "TuXfiles provides you with Linux tutorials in plain English, not in some fancy geekspeak."
- Ultimate Linux Guide, a great collection of guides on all areas of Linux
- The Art of Unix Programming by Eric S Raymond
- Operating systems (Distributions)
- Debian Linux, a Linux distribution
- Ubuntu Linux, a derivative of Debian intended to be more user friendly
- FreeBSD, a descendant of the Berkeley Software Distribution of UNIX. Mainly for servers, but can be used on a desktop too.
- Haiku OS, inspired by BeOS
- Editors
- Vim introduction and tutorial
- A Guided Tour of Emacs
- A Tutorial Introduction to GNU Emacs at the University of Chicago Library
- Graphics / figures
- IPE, a simple but effective vector graphics editor
- GIMP tutorials. A photoshop-like image editor
- Getting started with SSH
- Easy snapshot backups with Rsync
- Showing differences between files
- Meld, for comparing text files
- Diffpdf, for comparing PDF files
LaTeX
- LaTeX Project
- LaTeX Wikibook - a good guide to using LaTeX.
- LyX - a document preparation system using LaTeX
- LaTeX math symbols reference page
- The Comprehensive LaTeX Symbol List.
Programming
- Programming resources for beginners
- Computational Physics: An Introduction by Richard Fitzpatrick at Austin, Texas
- CFD Online resources for Computational Fluid Dynamics
- Structure and Interpretation of Computer Programs, an online textbook from MIT.
- The Algorithm Design Manual. Online book, complete with lecture notes, audio and video. By Steven Skiena at Stony Brook
- C/C++
- Tutorials at cprogramming.com
- An introduction to programming using C++ at Imperial College
- C++ reference
- fmt, a library for nice output formatting
- JSON library
- spdlog logging library
- Logging tutorial
- D
- D programming language
- MessagePack fast serialisation library
- Orange general serialisation library
- Apt repository for D packages
- Blip library for scientific applications
- Fortran
- Introduction to Modern Fortran at Cambridge University
- F90 course at the University of Liverpool
- IDL
- IDL introduction at PPPL (NSTX)
- IDL tutorial with lots of examples by Tom Theuns at Durham
- Coyote's Guide to IDL Programming which has lots of great tips, examples and programs
- IDL tutorial for astronomers by O'Connell at Virginia
- IDL exercises
- Introduction to IDL in the York Plasma Wiki [York internal only]
- Markwardt's IDL Library at the University of Wisconsin
- Julia
- Python
- 10 Reasons Python Rocks for Research (And a Few Reasons it Doesn’t)
- Python: Introduction for Absolute Beginners at the University of Cambridge
- Beginner's Guide to Python on the Python Wiki
- Python Scientific Lecture Notes
- Programming for Non-Programmers by Steven F. Lott, freely available
- Building Skills in Python by Steven F. Lott, freely available
- Dive into Python. A book for experienced programmers, which can be read online
- Think Python: How to Think Like a Computer Scientist by Allen Downey
- Python NumPy for IDL users
- Some demonstrations of Visual Python
- Visual Python video tutorials by Erik Thompson on showmedo.com
- Python Module of the Week by Doug Hellmann, a set of Python examples showing how to use lots of modules
- Debugging in Python
- Scientific Python blog
- Style Guide for Python Code
- PyPar library
- Numba, a JIT compiler for Python
- Object-Oriented Numerics
- MPI: The complete reference
- BASH programming introduction
- Valgrind debugging tools - extremely useful for tracking down segmentation faults, leaking memory etc.
- Version control
- Mercurial, a distributed version-control system
- Git, another version-control system created for Linux development
- Version Control with GIT: a content-addressable filesystem for distributed development, a talk given by Roger Leigh at the York Linux Users Group
- Git vs. Mercurial: Please Relax discusses differences between Git and Mercurial