Your development environment is a tool to get things done. But it can be so much more. Topics editors, operating systems, window managers, terminal emulators and shells, configuration management. Focuses on Linux, and macOS. Significant chunks of software engineering consist of making a computer understand an idea you've had. This isn't always writing code. Sometimes it's pressing alt-tab fifteen times to find the window you want. Other times it's browsing man find for the hundredth time. Yet other times the problem is not even the translation into computer-speak - it's formulating intentions clearly enough to qualify for translation at all. This book walks through the major components of a well-built development environment, aiming to also provide general techniques applicable to any technology.