Cultures of Programming

Computer programming originated at the intersection of logic, art, electrical engineering, business and psychology. Those disciplines brought with themselves different ways of thinking about and doing programming. In the early days, the friction between cultures could have been just a sign of the immaturity of the field. 70 years later, the idea that a unified culture will emerge as the field matures is becoming difficult to believe. Different cultures keep their strong identity, but they interact. Interesting innovations appear and revealing discussions occur when multiple cultures meet or clash.

In this talk, I will characterize and explore the different cultures of programming through a number of historical case studies. I will describe five different cultures of programming. The mathematical culture sees programming as a mathematical activity and advocates the use of formal methods. The hacker culture sees programming as tinkering and emphasizes practical skills of an individual. The managerial culture aims to solve problems via organizational structures and processes. The engineering culture emphasizes methodologies and tools that help achieve good-enough results. Finally, the artistic culture emphasizes creativity and interaction with a computer. 

This talk will not be just about the history of programming - the different cultures of programming shape much that happens around programming. They influence what we think of as a "correct" program, they influence what we teach as programming and they also clash about what characteristics we look for in job interviews.

OBJECTIVES

* Give a new helpful framing for thinking about current issues in programming
* Tell interesting stories about the history, like the birth of programming languages
* Explain how different cultures think about programming, including hackers, artists, mathematicians, engineers and businesspeople

AUDIENCE

Anyone who is interested in the broad historical and philosophical context around programming. If you think that programming is not just about solving business problems by consuming coffee and typing code in your favorite programming language, this talk is for you!