gomesite/journal/examples.html

58 lines
3.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang='en'>
<head>
<title>gome — examples</title>
<meta charset='utf-8'/>
<meta name='theme-color' content='#efe5d7'>
<meta name='viewport' content='width=device-width, initial-scale=1.0, shrink-to-fit=no'/>
<link rel='icon' type='image/x-icon' href='../favicon.ico'>
<link rel='stylesheet' type='text/css' href='../css/fonts.css'/>
<link rel='stylesheet' type='text/css' href='../css/style.css'/>
</head>
<body>
<header id='header'>
<nav>
<a href='..'>back to gomepage</a>&mdash;<a href='.'>journal</a>
</nav>
</header>
<main>
<article>
<h1 id='title'>Start with examples</h1>
<time datetime='Wed, 28 Dec 2022 23:00:00 CST'>28 Dec. 2022, 11:00 PM</time>
<p>
If youve ever read about the programming language Haskell, its likely you encountered some explanation of an abstract structure called a monad.
If so, its almost as likely youve encountered the line “a monad is just a monoid in the category of endofunctors”, which is nonsense to everyone but category theorists.
Its often repeated humorously, but its also a prime example of a terrible yet common way to explain a new concept.
I myself have read or watched many “simple introductions” to monads that started far too abstractly to be of any help to the uninitiated.
</p><p>
Try to recall a lecture or lesson (its often in math) where you were lost when a concept was first introduced, but eventually it clicked for you.
For me, Ive noticed the clicking usually doesnt occur until we start discussing concrete examples.
Nonetheless, lessons often start with an abstract concept and then bring in concrete examples to illustrate as they go.
</p>
<figure>
<img src='img/monad.webp' width='530' height='227' />
<figcaption>Its really quite simple!</figcaption>
</figure>
<p>
Where does this bias towards the abstract come from?
Well, the benefit of abstraction is that it lets us do more reasoning with less thinking.
A good abstract concept covers many examples at once, so once you understand it, you can use it to think about things on a higher level more easily.
So from the experts point of view, explanations wrapped up in abstractions are a more elegant and satisfying way of communicating key insights.
“A monad is just a monoid in the category of endofunctors” is succinct and technically contains all the information one needs to grasp monads, so its a great explanation if you already know what monoids, categories, and endofunctors are.
</p><p>
So proceeding from the abstract to the concrete works great for experts, but for those learning, I propose that concrete to abstract is the better route.
Ive noticed that the best teachers Ive learned from do this already.
Whenever I am teaching or explaining, I try to think of a good example to start things off.
Its actually a real challenge to come up with a strong example that will make sense to the learner and frame the new concept well,
but the right example will have serious payoff in ease of comprehension.
</p><p>
Is there anything you find yourself regularly teaching or explaining?
Do you tend to start with examples or abstractions?
If you start with examples, what examples do you use and how effective do you think they are?
Let me know your thoughts at my Ctrl-C email: <code>gome<span style='user-select: none;'>&nbsp;&#8203;</span>@<span style='user-select: none;'>&nbsp;&#8203;</span>ctrl-c.club</code>.
</p>
</article>
</main>
</body>
</html>