You might get pretty far just by explaining that all emacs “plugins” use the same language as the editor, and then explaining the C-h
family of keybinds that let you see documentation for every variable and function.
Then open one of those help pages for a package to show it and highlight the part where it tells you what file the function comes from, even for 3rd party packages. Then highlight how you can extend emacs in the same way, just writing some elisp on a file instead of needing to create an entire plugin.
A lot of emacs really needs to be discovered, but I’d imagine most developers could appreciate good documentation, the ability to see exactly what code is doing, and the option to override or extend that functionality very easily.
Everybody learns differently, and there’s a lot of people who learn languages through advent of code. AoC can have some problems that could take literal years to solve with a naive solution, so just keep in mind you can cancel a slow function with
C-g
and you don’t need to reboot emacs entirely.The other thing to keep in mind is that this would help you learn elisp (and general lisp syntax), but won’t teach you as much about the functionality you can do with emacs. It’s still a good place to start though, since you’ll need to know elisp to customize emacs.
Lastly I would recommend looking into Structural Editing a bit, here’s a decent article that covers the basics in vanilla emacs. This is by no means a requirement for writing elisp, but using the sexp commands makes working with all the parentheses infinitely easier.
Good luck!