Abstractions and Single Responsibility: Breaking Apart Problems
Culver Ganem-Redd '11
Software Engineer II
Camtasia team
TechSmith Corporation
The ability to break apart a problem into smaller pieces is a key skill to learn when writing code, as well as in many other fields. In software engineering, we often think of this process in terms of "layers of abstraction" and "responsibilities". In this talk, I will explain why thinking in abstractions can be so important, introduce the Single Responsibility Principle, show some examples of how we tend to approach abstractions at TechSmith, and offer suggestions on how to apply this kind of thinking in other fields.