Creating new software requires tools. At the most fundamental level, compiler and interpreters are required to translate programming language statements into processor instructions.
My notes on software tooling are roughly divided into the following categories: