Is abstraction the key to computing?
Jeff Kramer · Communications of the ACM · 2007
Why is it that some software engineers and computer scientists are able to produce clear, elegant designs and programs, while others cannot? Is it possible to improve these skills through education and training? Critical to these questions is the notion of abstraction.