summaryrefslogtreecommitdiffstats
path: root/2023/captions/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.vtt
diff options
context:
space:
mode:
Diffstat (limited to '2023/captions/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.vtt')
-rw-r--r--2023/captions/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.vtt696
1 files changed, 696 insertions, 0 deletions
diff --git a/2023/captions/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.vtt b/2023/captions/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.vtt
new file mode 100644
index 00000000..fb2f1603
--- /dev/null
+++ b/2023/captions/emacsconf-2023-mentor--mentoring-vscoders-as-an-emacsian-or-how-to-show-not-tell-people-about-the-wonders-of-emacs--jeremy-friesen--main.vtt
@@ -0,0 +1,696 @@
+WEBVTT captioned by hannah, checked by sachac
+
+NOTE Introduction
+
+00:00:01.380 --> 00:00:06.319
+Hi everyone, my name is Jeremy Friesen, pronouns are he/him,
+
+00:00:06.320 --> 00:00:07.879
+and today I'll be talking about
+
+00:00:07.880 --> 00:00:11.519
+mentoring VS Coders as an Emacs-ian.
+
+00:00:11.520 --> 00:00:14.999
+A little bit of background, since 2015, I've mentored
+
+00:00:15.000 --> 00:00:16.559
+about 40 software developers,
+
+00:00:16.560 --> 00:00:19.239
+many of them in career-transitioning roles,
+
+00:00:19.240 --> 00:00:21.739
+oftentimes from boot camps.
+
+00:00:21.740 --> 00:00:26.739
+I've also managed a couple of small software development teams.
+
+NOTE Framing approaches
+
+00:00:26.740 --> 00:00:30.599
+So I want to think about mentoring and the framing approaches.
+
+00:00:30.600 --> 00:00:32.939
+We all don't know what we don't know.
+
+00:00:32.940 --> 00:00:36.419
+So while mentoring, I like to be curious---asking questions,
+
+00:00:36.420 --> 00:00:37.659
+I like to be visible,
+
+00:00:37.660 --> 00:00:41.939
+and I also like to pair so that we can share.
+
+NOTE What are you looking to learn?
+
+00:00:41.940 --> 00:00:45.299
+When I start, I like to ask the following type of question:
+
+00:00:45.300 --> 00:00:47.119
+"What have you been wanting to learn more of,
+
+00:00:47.120 --> 00:00:49.359
+get better at, and improve on?"
+
+00:00:49.360 --> 00:00:52.939
+Then I like to ask further questions to get an understanding
+
+00:00:52.940 --> 00:00:55.159
+of where they've been, where they're going,
+
+00:00:55.160 --> 00:00:57.279
+and what they'd like to achieve.
+
+00:00:57.280 --> 00:01:00.139
+Later I'll ask coaching questions, "what's going well,"
+
+00:01:00.140 --> 00:01:01.419
+"where are you getting stuck,"
+
+00:01:01.420 --> 00:01:05.999
+and "if you change one thing, what would it be?"
+
+NOTE Make the work visible
+
+00:01:06.000 --> 00:01:09.839
+So like many people, I shifted to remote work in 2020,
+
+00:01:09.840 --> 00:01:13.159
+and I've noticed a higher collaboration in remote work,
+
+00:01:13.160 --> 00:01:15.919
+when folks make their work visible.
+
+00:01:15.920 --> 00:01:18.199
+So to do that I host office hours,
+
+00:01:18.200 --> 00:01:20.679
+I try to attend other people's office hours,
+
+00:01:20.680 --> 00:01:23.439
+and I'll open up a Slack huddle and just code by myself,
+
+00:01:23.440 --> 00:01:29.319
+but let folks know, please hop in.
+
+NOTE Hop in and be curious
+
+00:01:29.320 --> 00:01:32.039
+I like to pay attention to other huddles that start.
+
+00:01:32.040 --> 00:01:35.239
+If they're going still for, like, 45 minutes or so,
+
+00:01:35.240 --> 00:01:36.799
+I'll hop in and say hello.
+
+00:01:36.800 --> 00:01:39.399
+It's even odds that they're moving along just fine
+
+00:01:39.400 --> 00:01:40.799
+or that they're stuck.
+
+00:01:40.800 --> 00:01:43.279
+So by hopping into the Slack huddle,
+
+00:01:43.280 --> 00:01:45.479
+I'm helping with a common problem.
+
+00:01:45.480 --> 00:01:47.199
+How do you know when you're stuck?
+
+00:01:47.200 --> 00:01:50.639
+This is something that---as a manager---folks want to know,
+
+00:01:50.640 --> 00:01:53.439
+how can I get unstuck faster?
+
+00:01:53.440 --> 00:01:57.119
+As a human, it can be frustrating to be stuck for a long time,
+
+00:01:57.120 --> 00:01:58.599
+but you also learn stuff
+
+00:01:58.600 --> 00:02:00.759
+when you're dealing with the hard things.
+
+00:02:00.760 --> 00:02:03.219
+So you really need to balance that time,
+
+00:02:03.220 --> 00:02:07.159
+and I find hopping in, just being a gentle presence,
+
+00:02:07.160 --> 00:02:10.359
+with yes... an agenda, but just to say hi,
+
+00:02:10.360 --> 00:02:15.879
+is crucial to help the team members move along.
+
+NOTE Pairing is for sharing
+
+00:02:15.880 --> 00:02:17.239
+Pairing is for sharing.
+
+00:02:17.240 --> 00:02:19.919
+When I pair, I like to let others drive.
+
+00:02:19.920 --> 00:02:22.239
+They're typing and working to resolve the problem.
+
+00:02:22.240 --> 00:02:24.599
+I'm giving guidance, asking questions,
+
+00:02:24.600 --> 00:02:27.119
+maybe thinking through a refactor.
+
+00:02:27.120 --> 00:02:31.159
+I'm also spending time observing how they interact with their editor.
+
+00:02:31.160 --> 00:02:35.839
+In the moment, I try to limit advice to, like, one concept.
+
+00:02:35.840 --> 00:02:37.799
+A lot of folks don't know that `Control-a`
+
+00:02:37.800 --> 00:02:39.719
+will take you to the beginning of line.
+
+00:02:39.720 --> 00:02:42.679
+Just sharing that is huge sometimes.
+
+00:02:42.680 --> 00:02:46.919
+Just gently do it and let it float there.
+
+00:02:46.920 --> 00:02:48.919
+And assuming we have a regular mentoring session,
+
+00:02:48.920 --> 00:02:50.399
+I'll make sure to ask how they're feeling
+
+00:02:50.400 --> 00:02:52.679
+about using their tools afterwards.
+
+00:02:52.680 --> 00:02:55.679
+I would love to get to the point where they ask,
+
+00:02:55.680 --> 00:02:58.759
+"You saw me using my editor, what is something
+
+00:02:58.760 --> 00:03:00.959
+I could learn?"
+
+00:03:00.960 --> 00:03:03.859
+I'm working on getting to that point.
+
+NOTE Editor functions
+
+00:03:03.860 --> 00:03:05.199
+While pairing, I like to pay attention
+
+00:03:05.200 --> 00:03:07.439
+to how folks handle the following.
+
+00:03:07.440 --> 00:03:08.559
+Where do they want to go?
+
+00:03:08.560 --> 00:03:10.759
+How do they get there?
+
+00:03:10.760 --> 00:03:12.079
+Here they are, now what?
+
+00:03:12.080 --> 00:03:13.599
+How do they summarize?
+
+00:03:13.600 --> 00:03:15.239
+I know what I can do in Emacs,
+
+00:03:15.240 --> 00:03:17.399
+and I assume that VS Code can do something similar.
+
+00:03:17.400 --> 00:03:23.239
+It's a matter of helping the mentees find those packages and plugins.
+
+NOTE Where do they want to go?
+
+00:03:23.240 --> 00:03:24.239
+Where to go?
+
+00:03:24.240 --> 00:03:25.759
+Search within a project.
+
+00:03:25.760 --> 00:03:27.999
+Everybody knows about this, but one thing
+
+00:03:28.000 --> 00:03:29.799
+that has been really critical for me
+
+00:03:29.800 --> 00:03:31.959
+has been the arrival of `Orderless`.
+
+00:03:31.960 --> 00:03:34.759
+A little quick demonstration.
+
+00:03:34.760 --> 00:03:40.719
+If I look, and I have this "chicken" and I do "spell",
+
+00:03:40.720 --> 00:03:42.200
+I have found one, and they don't have
+
+00:03:42.201 --> 00:03:43.380
+to be in the right order.
+
+00:03:43.381 --> 00:03:48.039
+In fact, I can go back, and "spell" is there.
+
+00:03:48.040 --> 00:03:52.759
+Super easy, helpful, so I don't have to think about it, the order.
+
+00:03:52.760 --> 00:03:54.719
+Search across projects.
+
+00:03:54.720 --> 00:03:59.519
+Cross-repository searching is super-simple in Emacs,
+
+00:03:59.520 --> 00:04:02.739
+and I've never seen anyone do it in VS Code.
+
+00:04:02.740 --> 00:04:05.639
+I'm also trying to introduce folks to command-line tools
+
+00:04:05.640 --> 00:04:07.959
+such as RipGrep and SilverSearcher,
+
+00:04:07.960 --> 00:04:10.639
+not just to look in the project, but to go one directory up
+
+00:04:10.640 --> 00:04:11.999
+and look across projects
+
+00:04:12.000 --> 00:04:15.059
+because sometimes when you're working on lots of different projects,
+
+00:04:15.060 --> 00:04:19.959
+there might be solutions or ideas that come from there.
+
+00:04:19.960 --> 00:04:23.239
+Also notice that a lot of people use directory trees to navigate,
+
+00:04:23.240 --> 00:04:25.599
+but I favor the fuzzy text.
+
+00:04:25.600 --> 00:04:27.759
+So I can do something like `Command-t`
+
+00:04:27.760 --> 00:04:31.279
+and start looking for things in there.
+
+00:04:31.280 --> 00:04:33.759
+I just type the name of the file.
+
+00:04:33.760 --> 00:04:35.319
+I use `consult-projectile`,
+
+00:04:35.320 --> 00:04:39.539
+which has a lot of really cool functionality.
+
+00:04:39.540 --> 00:04:43.079
+The big one being I can type `r`, recent file.
+
+00:04:43.080 --> 00:04:47.719
+I can type `p` and jump to a different project,
+
+00:04:47.720 --> 00:04:53.439
+so it's a quick navigation tool that I've not seen in VS Code.
+
+NOTE How do they get there?
+
+00:04:53.440 --> 00:04:56.519
+Next up is how do they get there?
+
+00:04:56.520 --> 00:04:58.959
+I like to use LSP for the languages,
+
+00:04:58.960 --> 00:05:02.879
+and I bound `M-.` to this
+
+00:05:02.880 --> 00:05:05.519
+and jump back and forth to definitions.
+
+00:05:05.520 --> 00:05:09.439
+I just showed `projectile` or `consult-projectile`
+
+00:05:09.440 --> 00:05:12.859
+and its super-amazing multifunction finder.
+
+00:05:12.860 --> 00:05:15.519
+Also another one that I am very avid about
+
+00:05:15.520 --> 00:05:19.519
+is the jump between definition and test.
+
+00:05:19.520 --> 00:05:22.839
+I bind that to `Super-.`
+
+00:05:22.840 --> 00:05:25.839
+and it helps me jump back and forth
+
+00:05:25.840 --> 00:05:28.519
+between my production code and my test code---
+
+00:05:28.520 --> 00:05:32.119
+especially in Ruby, there's an idiom for that.
+
+00:05:32.120 --> 00:05:36.639
+There is plugins in VS Code that does this correctly.
+
+NOTE Here they are, now what?
+
+00:05:36.640 --> 00:05:39.399
+Next up, now I'm here, what do I do?
+
+00:05:39.400 --> 00:05:44.599
+Word completion, Emacs just knocks everything out of the park:
+
+00:05:44.600 --> 00:05:48.199
+`dabbrev`, `templates`, `hippie-expand`, `completion-at-point`.
+
+00:05:48.200 --> 00:05:52.079
+Sometimes it just hurts to watch people type stuff
+
+00:05:52.080 --> 00:05:54.319
+that they could quickly expand
+
+00:05:54.320 --> 00:05:56.299
+because there are words within the code.
+
+00:05:56.300 --> 00:05:57.919
+Another one is auto-formatting.
+
+00:05:57.920 --> 00:06:00.039
+Tree sitter...its arrival is great.
+
+00:06:00.040 --> 00:06:01.479
+I assume this is going to get better.
+
+00:06:01.480 --> 00:06:04.919
+I love highlighting a region, hitting `TAB`, and it's just formatted.
+
+00:06:04.920 --> 00:06:08.760
+I've seen a lot of VS Coders... that doesn't work for them.
+
+00:06:08.761 --> 00:06:11.079
+Don't know why, trying to get them to see it.
+
+00:06:11.080 --> 00:06:12.900
+Multi-cursor [`multiple-cursors`] and `iedit`...
+
+00:06:12.901 --> 00:06:14.799
+took me a long time to explore `iedit`,
+
+00:06:14.800 --> 00:06:17.839
+but the practice... but practicing was huge,
+
+00:06:17.840 --> 00:06:21.479
+and it has transformed my approach to coding and typing.
+
+00:06:21.480 --> 00:06:24.519
+Folks know about multi-cursor editing and editing-in-region
+
+00:06:24.520 --> 00:06:27.919
+but make sure that they are aware of it.
+
+00:06:27.920 --> 00:06:29.719
+It's important.
+
+00:06:29.720 --> 00:06:32.619
+Next up is inline searching.
+
+00:06:32.620 --> 00:06:35.199
+My beloved Textmate... it was the first thing.
+
+00:06:35.200 --> 00:06:38.439
+In fact, it was why I chose not to use Emacs in 2005
+
+00:06:38.440 --> 00:06:41.679
+and went with Textmate.
+
+00:06:41.680 --> 00:06:43.759
+This is something quite simple.
+
+00:06:43.760 --> 00:06:49.999
+I can do `search` within here, and I can see "introduced",
+
+00:06:50.000 --> 00:06:52.239
+and it will show me the line.
+
+00:06:52.240 --> 00:06:54.119
+What I like about that is when I'm in code,
+
+00:06:54.120 --> 00:06:56.319
+I can see the neighborhood of other things
+
+00:06:56.320 --> 00:06:58.359
+and get a good idea of what's around.
+
+00:06:58.360 --> 00:07:01.639
+Yes, there is `occur-mode` that can be super useful,
+
+00:07:01.640 --> 00:07:03.839
+but I'm used to the Textmate in it.
+
+00:07:03.840 --> 00:07:06.639
+I just love it.
+
+NOTE How do they summarize?
+
+00:07:06.640 --> 00:07:08.679
+Next up is how they summarize.
+
+00:07:08.680 --> 00:07:11.719
+I've seen a lot of bootcamp graduates write commit messages
+
+00:07:11.720 --> 00:07:14.379
+by going to the command line.
+
+00:07:14.380 --> 00:07:17.039
+In my experience, commit messages written in the command line
+
+00:07:17.040 --> 00:07:18.199
+tend to be terse.
+
+00:07:18.200 --> 00:07:19.159
+They miss something.
+
+00:07:19.160 --> 00:07:23.479
+So I try to really quickly shift folks to use their text editor,
+
+00:07:23.480 --> 00:07:24.399
+encourage them and
+
+00:07:24.400 --> 00:07:28.039
+teach them about `$GIT_EDITOR` and `$EDITOR` for the environment variables
+
+00:07:28.040 --> 00:07:30.999
+so they can make their commits from the command line.
+
+00:07:31.000 --> 00:07:34.199
+And if not there, help them improve how they do VS Code.
+
+00:07:34.200 --> 00:07:35.919
+My little screed at the top:
+
+00:07:35.920 --> 00:07:38.959
+the interface for VS Code's commit is trash.
+
+00:07:38.960 --> 00:07:44.439
+It is why I stepped away from VS Code when I was exploring editors.
+
+NOTE General strategies
+
+00:07:44.440 --> 00:07:48.439
+Next up, my goal is to encourage folks to use editors for writing,
+
+00:07:48.440 --> 00:07:52.059
+to think about owning that tool.
+
+NOTE Commit to one item of learning each week
+
+00:07:52.060 --> 00:07:54.679
+I have them try to learn one thing a week.
+
+00:07:54.680 --> 00:07:55.919
+Maybe they aren't going to learn it,
+
+00:07:55.920 --> 00:07:57.799
+but just not to overwhelm them
+
+00:07:57.800 --> 00:07:59.879
+and find those high-value things.
+
+00:07:59.880 --> 00:08:03.719
+Jump to spec, jump to code... super-valuable
+
+00:08:03.720 --> 00:08:06.519
+because I see folks doing it a lot during the day,
+
+00:08:06.520 --> 00:08:10.079
+and it can really speed up the transition time
+
+00:08:10.080 --> 00:08:12.759
+and keep the focus between the test...
+
+00:08:12.760 --> 00:08:15.479
+what you're trying to test and what you're trying to define,
+
+00:08:15.480 --> 00:08:18.959
+which can get lost if you do the tree navigation.
+
+NOTE Practice within your knowledge domain
+
+00:08:18.960 --> 00:08:22.879
+Also I encourage people to practice their domain knowledge.
+
+00:08:22.880 --> 00:08:27.159
+I learned a lot about programming by doing a bunch of things
+
+00:08:27.160 --> 00:08:30.019
+related to RPGs---role-playing games.
+
+00:08:30.020 --> 00:08:33.119
+I did this previously in Ruby---dice rollers, note takers,
+
+00:08:33.120 --> 00:08:35.879
+random table lookups---and now I'm doing it in Emacs.
+
+00:08:35.880 --> 00:08:40.519
+Knowing the domain helps me set aside the problem space
+
+00:08:40.520 --> 00:08:41.999
+and then explore how I code
+
+00:08:42.000 --> 00:08:47.119
+and how I can implement things differently.
+
+NOTE Note-taking
+
+00:08:47.120 --> 00:08:51.239
+Note-taking: pay attention to how folks create a fleeting note.
+
+00:08:51.240 --> 00:08:54.639
+It can be excruciating as they try to figure out
+
+00:08:54.640 --> 00:08:55.599
+"where am I going to put this?"
+
+00:08:55.600 --> 00:08:56.159
+"What file?"
+
+00:08:56.160 --> 00:08:57.659
+"Where does it go?"
+
+00:08:57.660 --> 00:09:01.759
+Emacs, we have the *scratch* buffer or anything else,
+
+00:09:01.760 --> 00:09:07.119
+but ask them about their note-taking habits
+
+NOTE Help them navigate the proprietary software tar pits
+
+00:09:07.120 --> 00:09:11.639
+and help them navigate the proprietary software tar pits.
+
+00:09:11.640 --> 00:09:14.359
+We know that anything that is venture-capital funded
+
+00:09:14.360 --> 00:09:16.039
+will eventually collapse.
+
+00:09:16.040 --> 00:09:20.919
+We know that things that don't have a sustainable business model
+
+00:09:20.920 --> 00:09:22.399
+without surveillance capitalism
+
+00:09:22.400 --> 00:09:25.299
+is going to also have problems.
+
+00:09:25.300 --> 00:09:28.559
+Encourage folks to think about how they're owning their notes.
+
+00:09:28.560 --> 00:09:30.639
+Do they place true value on those,
+
+00:09:30.640 --> 00:09:33.119
+or are they things that are kind of ephemeral?
+
+00:09:33.120 --> 00:09:38.519
+And then help them find the thing that makes sense for them.
+
+NOTE Help show the joy of holisting computering
+
+00:09:38.520 --> 00:09:43.239
+Put another way, I want people to think holistically
+
+00:09:43.240 --> 00:09:47.739
+about their generalized "computering" environment.
+
+NOTE Playing is for staying
+
+00:09:47.740 --> 00:09:50.079
+And I also think about the reason why
+
+00:09:50.080 --> 00:09:53.679
+I've stayed a software developer for 25-years plus
+
+00:09:53.680 --> 00:09:57.999
+is because I approach all of this as play and storytelling.
+
+00:09:58.000 --> 00:10:02.439
+Sometimes happy byproduct is that I ship features and documentation
+
+00:10:02.440 --> 00:10:05.199
+and help people get stuff done.
+
+00:10:05.200 --> 00:10:07.959
+Yet I don't tell folks to use Emacs.
+
+00:10:07.960 --> 00:10:10.719
+Instead, I'm doing my best to show a myriad of reasons
+
+00:10:10.720 --> 00:10:14.899
+for why folks should consider Emacs.
+
+NOTE Conclusion
+
+00:10:14.900 --> 00:10:18.739
+In conclusion, ask questions.
+
+00:10:18.740 --> 00:10:22.399
+Find a person who is a VS Coder and just say,
+
+00:10:22.400 --> 00:10:23.879
+"hey, I learned something new."
+
+00:10:23.880 --> 00:10:26.719
+We play this game all the time, me and my coworker Kirk.
+
+00:10:26.720 --> 00:10:27.699
+I love it.
+
+00:10:27.700 --> 00:10:31.479
+Another goal is showing the malleability of Emacs,
+
+00:10:31.480 --> 00:10:34.399
+how easy it is to extend.
+
+00:10:34.400 --> 00:10:36.679
+And obviously there's so much more than what I've highlighted,
+
+00:10:36.680 --> 00:10:38.719
+but then again, that's Emacs.
+
+00:10:38.720 --> 00:10:44.200
+Thank you, and I look forward to your questions.