It's amazing how important kinaesthetic learning is in programming.
There have been many concepts that I haven't fully grokked until I've actually coded it up myself. It forces you to consider all the details.
miniblog.
Related Posts
The book 'The Art of the Metaobject Protocol' has two chapters in the public domain and available online!
Chapter 5: Concepts
Chapter 6: Generic Functions and Methods
Contrasting Rust traits with C++20 concepts: https://mcla.ug/blog/cpp20-concepts-are-not-like-rust-traits.html (Rust traits are stricter, which can enable better errors)
I'm comfortable with git, and recently learned mercurial, and I've concluded: commits are the wrong abstraction.
Work-in-progress and finished work are different concepts. Rebases and even branches are for WIP. Signing is for finished work. Timestamps and authors change for WIP.