Deliberate Practice for Learning Emacs Lisp
Inspired by: https://github.com/robert8138/python-deliberate-practice
Contents
I've been using Emacs for several years now. And although I've grow comfortable using Emacs day-to-day, I want to get to know Emacs and Emacs Lisp a bit more.
One reason why I decided to invest so much time into Emacs is its long history and known extensibility. This was appealing as a way for me to tinker with my tools and make them how I like them. Additionally, I was looking forward to learning a different programming paradigm, namely a Lisp-based language. The closest language to it might be R, but that is not a true Lisp.
An adjacent motivation for learning Emacs Lisp is to open the door for working with Clojure, another well-known language that is used for multithreaded progamming. I've heard good things about the language and it can be run almost everywhere because it is run on the Java Virtual Machine (JVM).
Practice by doing.
- Identify the Top Performers: I know at least alphapapa, Sachua Chua, Steve Purcell, and John Wigley are all well-known Emacs uses to follow and learn from
- Build Practice Plans:
- Targeted Practice: I use Emacs daily, mostly for Org-Mode and organizing my task list
- Immediate Feedback: I don't have any current use for Emacs Lisp professionally, so I'll have to rely on Exercism, StackOverflow, and Reddit feedback
- [Immediate]: learn to use basic functions in Emacs and how to run them correctly
- [Shorter term, easiest to practice]: write basic functions for me to use or play around with
- [Medium term, harder to practice]: be comfortable with writing a package for personal use
- [Longer term, hardest to practice]: write my own packages and put them up on MELPA
- Outcome: I want to be able to write packages to augment my use of Emacs and to understand and be able to debug current packages I use
- Curriculum: I want to go through the introduction programming in Emacs Lisp documentation, Emacs Lisp Exercism track, and read through the Emacs Package Developer's Handbook by alphapapa
- Time frame: comfort by the end of 2022 and publish package to MELPA (ideas: resume words, estimate time to read text, socratic bot, choice words)
- TBD
List of links and resources I've found helpful in my learning journey.