Crista Lopes writes a program in multiple styles -monolithic/OOP/continuations/relational/Pub-Sub/Monads/AOP/Map-reduce- showing the value of using more than a style in large scale systems.
Torbjörn Gyllebring discusses the importance of organizational and personal mindset, and introduces the Rightshifting model which is meant to bring organizational effectiveness.
David Nolen keynotes on how developers learn as seen in a number of diverse examples drawn from objected oriented user interface programming to constraint logic programming.
Creighton Kirkendall discusses how polymorphism is implemented in Clojure, Ocaml, Haskell and Scala.
Dave Snowden discusses managing exaptation, addressing the use of discovery networks, modularity of needs and capabilities, distributed cognition and Cynefin.
Gerald Sussman explains how programming can help understand Analytical Mechanics and Differential Geometry, and make some concepts of General Relativity come alive. Indeed, a well-crafted program is an expression of an idea, and it may be a work of art.
Giff Constable shares 4 tactics for thinking holistically about an idea and clearly identifying, prioritizing and tackling assumptions.
Stuart Sierra introduces some general guidelines for designing systems which make their data and abstractions more transparent to developers, using code examples in Clojure.
Brian Marick shares insight into how one can remain a programmer throughout his career.
Jim Duey surveys several abstraction techniques that can help in writing reusable code in Clojure.
Amit Rathore shares advice in building large scale applications in Clojure, making sure the code is readable and maintainable.
Abstraction is at the center of much work in Computer Science. It encompasses finding the right interface for a system as well as finding an effective design for a system implementation.