As human beings, we're flooded with information every day of our lives. Even if we could temporarily turn off all of the sources of "e-information" that are constantly bombarding us—emails, voicemails, news broadcasts, and the like—our five senses alone collect millions of bits of information per day just from our surroundings. Yet, we manage to make sense out of all of this information, typically without getting overwhelmed. Our brains naturally simplify the details of all that we observe so that these details are manageable through a process known as abstraction.
In this chapter, you'll learn
How abstraction serves to simplify our view of the world
How we organize our knowledge hierarchically to minimize the amount of information that we have to mentally juggle at any given time
The relevance of abstraction to software development
The inherent challenges that we face as software developers when attempting to model a real-world situation in software