> [!infobox]
<s class="aside-in"><em>mentioned in 2 topics, 6 evergreens</em></s>
#### <s class="topic-title">[[abstraction]]</s>
A way to remove complexity from a concept without losing meaning or functionality with the goal of allowing other concepts to be built upon it.
In:: [[Software Development]],
this is very commonly used to allow
you to spend your time [[programming]] and not having to waste time with complicated protocols.
An example would be using a package that completely handles the sending of a web request and returns you the result. You don't need to understand the details around [[HTTPS]], you just need to work with the result.
This kind of thing happens at all levels of [[software]], from [[Binary]] being abstracted to [[Assembly]] being abstracted to [[C (programming language)|C]] being abstracted to [[Python]] being abstracted into various packages that allow us to create applications easily.
In:: [[learning]] and [[education]],
abstraction allows you to learn higher level concepts without getting bogged down in the details.
An example would be the orbital electron model in [[Chemistry]]. The math around how electrons actually work is very complicated, but the orbital model works perfectly well for understanding chemical reactions.
Abstraction in this way is a
form of:: [[cognitive scaffolding]].
It allows you to to develop [[intuition]] and [[understanding]] before you try to tackle more complicated topics.
In:: [[knowledge management]] and [[note writing]],
this is seen in [[Conceptual notes vary in size and scope]]. If a note title meaningfully captures the concept of the note, it allows you to build detailed concepts on top of it without reiterating the details.
This is a
form of:: [[emergence]], where higher level concepts can be understood without the detail of underlying mechanics and
why:: [[Note titles should be abstractions of the note content]]
Abstraction
is a:: [[Sticky concepts|Sticky concept]]