A Begginer’s Guide To The Most Important Idea In Programming: Abstraction

Ryan Michael Kay
Didact Publication
Published in
13 min readDec 18, 2022

--

This article will not be a dry and boring explanation of abstract classes, interfaces, protocols, or similar software entities.

I will explain what they are in simple terms, but my main goal is to change how you think about abstractions in general. You will learn what the process of abstraction is and when you should or should not apply that process.

The topics I will cover are as follows:

  • What is an abstraction?
  • How to apply abstraction in your programs using things like interfaces, protocols, function types, method references, and lambda expressions
  • Why I claim that abstraction is the most important idea in programming
  • When is it appropriate to make code more abstract?

The code samples will be in Kotlin, but I have written the article assuming you only have basic programming literacy in any industry standard language.

I also use a variety of approaches to cover both object oriented and functional styles of code.

A picture is an abstraction.

What Is An Abstraction?

To begin with, we will discuss what this term means in the most general sense. Here is a simplified definition I have come up with for an…

--

--

Ryan Michael Kay
Didact Publication

Self-taught software developer & student of computer science.