"What an absolutely cool guy!" --- Dennis Shasha, NYU "Fascinating... very worthwhile" --- Robert Harper, CMU What mathematical rigor has and has not to offer to software engineers. Peter Naur wrote his first research paper at the age of 16. Soon an internationally acclaimed astronomer, Naur's expertise in numerical analysis gave him access to computers from 1950. He helped design and implement the influential ALGOL programming language. During the 1960s, Naur was in sync with the research agendas of McCarthy, Dijkstra, and others. By 1970, however, he had distanced himself from them. Instead of joining Dijkstra's structured programming movement, he made abundantly clear why he disapproved of it. Underlying Naur's criticism is his plea for pluralism: a computer professional should not dogmatically advocate a method and require others to use it in their own work. Instead, he should respect the multitude of personal styles in solving problems. What philosophy has to do with software engineering. Though Peter Naur definitely does not want to be called a philosopher, he acknowledges having been influenced by Popper, Quine, Russell, and others. Naur's writings of the 1970s and 1980s show how he borrowed concepts from philosophy to further his understanding of software engineering. In later years, he mainly scrutinized the work in philosophy and mathematical logic & rules in particular. By penetrating deeply into the 1890 research of William James, Naur gradually developed his own theory of how mental life is like at the neural level of the nervous system. This development, in turn, helps explain why he always opposed the Turing Test and Artificial Intelligence, why he had strong misgivings about the Formal Methods movement and Dijkstra's research in particular.