Philosophy for Programmers