commit 34cac6ce2cc3be7f7441fb5081d2802d6e009c59
parent b87043a2c121acdaf44479e46ea794d2d75d8ce7
Author: Andrew Laack <andrew@laack.co>
Date: Thu, 27 Aug 2026 22:34:06 -0500
Merge branch 'main' of https://github.com/andrewlaack/learning-takes-time
Diffstat:
| M | README.md | | | 40 | ++++++++++++++++++++++++++++++++++++++++ |
1 file changed, 40 insertions(+), 0 deletions(-)
diff --git a/README.md b/README.md
@@ -3,3 +3,43 @@
There are many learning tools out there. There aren't many that can be self-hosted. There are even fewer that are built in a sane way to aid in learning, based on the idea that learning takes time and is difficult. This very notion is why there are so few companies that have science-backed learning tools, and why duolingo has become a joke.
This isn't a joke. Learning takes time is a simple OCI container that runs a web server, allowing you to deploy curriculum to your server and to work through the curriculum at your pace.
+
+## Content Types
+
+It seems that the combination of visual and textual information is better for learning than one, and thus the platform supports textual, image, and video content.
+
+## Spaced Repitition and Note Taking
+
+Spaced repitition is important for memory, as is note-taking. I am yet to see a study that supports the idea computerized note-taking or flashcard studying improve learning when compared with the physical alternatives. As such, these features shall not be added to the platform.
+
+## Practice Problems
+
+Practice problems are very important for the learning process. The platform supports practice problems by having revealed text sections. These sections are intended to contain answers / hints for problems to guide learning.
+
+I considered adding a code execution environment to the platform, but there is an elegance in allowing anyone to access course materials, and I think this platform fulfils this position better without code execution.
+
+## Language Models
+
+It is unclear as of mid 2026 if language models can improve learning outcomes. It seems to be the case that guiding students to answers is valuable, but studies point to the idea that broad stepwise instruction on the basis of a problem likely suffices for this (which the platform supports), decreasing the potential upside of more granular help.
+
+Admittedly this is anecdotal, but I struggle to find the correct balance between asking language models for hints and struggling through problems. Perhaps this is what we refer to as a "skill issue", but I've made numerous skills and system prompts to try to have language models determine if I should continue struggling, but they are not very good at this task.
+
+If you don't have ethical concerns with the use of language models, you may find them useful for generating practice problems and .sl files based on exising curriculum. I would caution against using them to generate novel curriculum however because there is 1) troves of well paced curriculum in circulation and 2) they don't seem well calibrated with human learning rates or prioritization of important topics, a skill possessed by many experienced educators.
+
+# Engineering Decisions
+
+## Custom File Format
+
+## OCaml
+
+OCaml makes it easier to build correct software without being too in your face about it. There is a sufficient OCaml compiler, making compilation speed and deployed performance adequate. OCaml also has an adequate ecosystem for the task of simple, performant, templated web applications.
+
+## Web Application
+
+I dislike this uses web technologies. I may build an alternative that uses the gemini protocol, but the web is the most popular information distribution channel.
+
+I also considered building a native application, but such an application would give minimal benefits over a conventional text editor pointed to the directory with the .sl files.
+
+## Flat Filesystem Structure
+
+It is possible a database could improve performance in certain contexts, but such contexts are likely better served by more complex software like MediaWiki.