So far, we've primarily examined imperative and declarative programming paradigms, but there are many other ways of classifying programming languages or patterns. Some of these, like object-oriented programming, warrant their own sections and chapters in this book, while others are less critical to your overall understanding of Kotlin.
Here, we'll quickly cover event-driven programming and generic programming.