Creating Simplicity Through Abstraction
Enforcing Conceptual Structures in System Design
What happens when you hit “Login”? You might expect to see your recommended Medium articles pop up on the screen. Or, you could see what all your friends have been up to on Instagram. Maybe, you’re instead trying to retrieve a long-forgotten password from your password manager. In either case, as a user, we intuitively understand what “Logging in” means. This website will check our details, make sure they’re right, then show us what we were looking for. We could have been on a completely new website and we would still understand what this process involves. This is just one example of an abstraction that extends across platforms.
Knowing how and when to apply abstractions is one of the most important skills that I wasn’t exposed to in college. It’s been almost 2 years since I joined Facebook as a software engineer. In the industry, having a solution to any technical problem is definitely necessary, but at any large tech firm, that’s just the baseline. The important part is knowing the right way to solve a problem for future extendability and for that, abstractions are critically important.