[[!meta title="Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs)"]] [[!meta copyright="Copyright © 2023 Jeremy Friesen"]] [[!inline pages="internal(2023/info/mentor-nav)" raw="yes"]] <!-- Initially generated with emacsconf-publish-talk-page and then left alone for manual editing --> <!-- You can manually edit this file to update the abstract, add links, etc. ---> # Mentoring VS-Coders as an Emacsian (or How to show not tell people about the wonders of Emacs) Jeremy Friesen (he/him) - Pronunciation: JERR-im-EE FREE-SEHN, https://takeonrules.com, <mailto:jeremy@jeremyfriesen.com> [[!inline pages="internal(2023/info/mentor-before)" raw="yes"]] [[!template id="help" volunteer="" summary="Q&A could be indexed with chapter markers" tags="help_with_chapter_markers" message="""The Q&A session for this talk does not have chapter markers yet. Would you like to help? See [[help_with_chapter_markers]] for more details. You can use the vidid="mentor-qanda" if adding the markers to this wiki page, or e-mail your chapter notes to <emacsconf-submit@gnu.org>."""]] <https://takeonrules.com/2023/12/03/mentoring-vs-coders-as-an-emacsian/> Join me as I share some anecdotes and approaches for mentoring other developers who use tools different from mine; all in service of furthering a shared understanding, sharpening my own toolkit, and hopefully helping others grow their capabilities. Most everyone I mentor has chosen VS Code as their editor; yet I don’t use VS Code. Our pairing and mentoring sessions are about me being curious about their habits and modes of operation. I use my journeyman knowledge of what Emacs can do to help these VS Coders navigate pathways towards sharpening their skills. I also learn a few editor tricks from them. I’ll talk about remote pairing sessions, one-on-one sessions, and larger show-and-tell efforts; each with the purpose of revealing potentially different approaches. The idea being that asking questions and showing alternate approaches can begin to illuminate previously unknown pathways. The underlying goal is to ignite in folks a desire to improve their understanding and usage of their preferred tools; and show alternatives that might peek further interest in learning and exploration. About the speaker: Jeremy Friesen is a long-time software developer but only recently an Emacs convert (as of May 2020). For most of his career he has been writing open source software for educational institutions such as universities, libraries, archives, and museums. He’s mentored several dozen developers at his places of employment as well as through volunteer efforts. He strives to meet people where they are, learn how they are looking to grow, then working with them to grow; often by nudging folks to practice and explore their tools. # Discussion ## Questions and answers - Q: re: super-. -- which key do you bind to super? then where is meta? - A:mac: ctrl-meta-super---space---hyper-meta-ctrl (caps lock as ctrl) - Q:Great talk; what's the package you use to make the Org slide? - A: prot's logos, olivetti mode? I have a minor mode that I turned on: <https://github.com/jeremyf/dotemacs/blob/2c5d37c2d0cc3f0433bc4588352bd6bf5bd09460/emacs.d/jf-framing.el#L109-L123> - Q: If people do get interested in picking up Emacs because of what they see you do, how do you recommend they get into it? - A: A lot of it comes down to the problems that they're trying to solve. I worked in TextMate for a long time, then Sublime, then Atom... I chose Spacemacs, and then I chose Doom, and then I said, wait, start over, erase everything, start with the tutorial. I said, I really want this functionality. Then I went and figured out how to do it. Helping ask them, "What do you really want to do?" Ex: okay to advise people to go back to vim, develop ownership of their editor. **Understand the problems they're experiencing,** which tends to be what we should do in software development. Take the time to walk with them on their journey to understand what's frustrating them. Story about a mentee learning to ask questions earlier (not focused on navigating editor). - Q: I've been using Emacs for about 30 years and I find it really difficult to figure out how to help people get started with it. Uh ... so I guess my question is the same as the green question right above this. - A: My wife a while ago talked about the idea of being in between someone who's more informed and someone who's less informed. Introducing someone who's new to Emacs might be too hard because you're too much an expert. Pedagogy. Sharing what you have where you're at will by nature move the entire queue of people behind you, will help move them together forward. Not an only one person thing, improving shared understanding. - Zone of proximal development; just i + 1 - Lev Vygotsky - It can be very challenging to unwind things. Muscle memory. I know how to do it on a keyboard... We've internalized so much. Being curious with them and close to them, trying to diffuse questions and not ask overly leading questions... - What is the question that I can ask the group so that I can ask the question? ex: not "Why do we suck at sharing code?", but before that - I'm also 30 years in (at least) and just recently picked up JF's method of only giving away a little bit of the functionality of emacs at a time. - Q:Have you encountered anyone that are being... "nagative" about the fact that you're using Emacs? (Assuming that they just don't know/have misconceptions about Emacs and nothing malicious.) If so, how do you handle these kinds of people? - A: Analogy with a pen: my goal is to write something, who cares about what kind of pen I use? - I want my text editor to flow with me. - I don't need it to multi-thread-- it's just me on the computer. - "My goal is to be better at computering." - Q: I love the attitudes and worldview that infuses your blog posts and your talks this weekend. Learn something every week: it's CUMULATIVE. English class was the most important. What other advice do you have, and how is it generalizable to those of us who are not devs? - A: fountain-mode (package for writing screenplays) - Wonderful answers! Thanks so much! - Broad curiosity (ex: background is liberal arts, very little computer science classwork/theory; Lord of the Rings, poetry, etc.) ## Notes - Presenter blogs at <https://takeonrules.com> - such valuable work being described - I wonder if there is still reasons to use ag compared to ripgrep - it can search compressed archives better, so I like using it on emacs sources - <https://github.com/aswild/the_silver_searcher/commit/7b571a8a94d0e22a06e3313cb0d9672b416fb2c1> - yeah indeed, ripgrep shells out and is five times slower than ag - Hyper modifier is tops. On normie keyboards, I like super, meta, space, meta, hyper. 100% do not regret switching to a split ergo mechanical QMK board. - On my work Mac, caps is control, I don't have a super, and it's meta-space-meta-hyper. But I almost never use that, because the keyboard is deeply unpleasant to actually type on. The sole thing I like better about Emacs on macOS over Emacs on Linux is that it's a oneliner to set the Hyper modifier. Linux requires delving deep into the forbidden territory of xkb. <https://codeberg.org/ieure/xkbsucks> if you need a guide - my mac setup is the same as him but reversed: command is control, option is meta (like him) and control is super cuz i use super all the time. and hyper, like him, is on the right of the keyboard. - (discussion about fountain pens) [[!inline pages="internal(2023/info/mentor-after)" raw="yes"]] [[!inline pages="internal(2023/info/mentor-nav)" raw="yes"]]