When starting a project from scratch, it's important to create prototypes. For programming, you usually create small snippets that demonstrate what you want. Fortunately, software is quick to compile, so you're free to create hyper-specialized programs that exist only to test out particular theories. With hardware, the build cycle is