This document discusses productivity for programmers. It defines productivity as the ratio of output to input. Key factors that impact programmer productivity are discussed, including teamwork, communication, planning, quality, and efficiency. Specific techniques for improving quality include reading books, using frameworks/libraries, learning a new language each year, sharing code, respecting feedback, and leaving one's comfort zone. Efficiency techniques include DRY principles, questioning work processes, and using best practices. The Unix philosophy of writing modular, reusable programs is advocated. Ruby is presented as a productive programming language due to its interactive shell, large library of gems, and ability to easily create executables and automation scripts.