> [!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]]