Try to identify the biggest inefficiencies/annoyances that you encounter in your real daily work, and use those things as motivation for learning about a specific part of Emacs. Every time you fix some small problem with your workflow, you will become a little more knowledgeable and efficient, and over time you will become a master.
As a simple example, a beginner Emacs user might notice that they’re spending a lot of time navigating to the same files/directories over and over with M-x find-file. And that might motivate them to learn about packages for opening recently visited files (e.g. recentf), or to learn about Emacs’ bookmark system. That’s a really basic example, but I think that repeating that general “improvement loop” over and over is how people become good at Emacs.
I want to note here that there is a eternal temptation towards “yak shaving” with Emacs, where you spend all your time working on your configuration instead of getting your actual work done, whether that be school assignments or tasks for your employer. Personally, I have a rather extreme rule that I don’t make any adjustments to my Emacs config during working hours, unless I can make the change in less than 5 minutes. Instead, I keep a TODO list of possible improvements and do those on my own time.
Finally, I second the advice given elsewhere in this thread, about starting with a vanilla Emacs config. Emacs distros like Doom/Spacemacs/Prelude are great for showing you what’s possible, but you will understand your config so much better if you build it up from scratch. That will also help with gradually learning how to program in Elisp, which is a total game changer and probably the single most valuable thing you can learn.
While minimal/vanilla Emacs configs aren’t as flashy Doom/Spacemacs/Prelude, they can be really effective. For example, Twitch coder @tsoding uses a very vanilla Emacs config, but he does things at a dizzying speed. For example, see the following video where he is doing some coding experiments with the “tree sitter” library: https://youtu.be/-8p-Jd9n-_I?t=549
I think this is really great advice.
Try to identify the biggest inefficiencies/annoyances that you encounter in your real daily work, and use those things as motivation for learning about a specific part of Emacs. Every time you fix some small problem with your workflow, you will become a little more knowledgeable and efficient, and over time you will become a master.
As a simple example, a beginner Emacs user might notice that they’re spending a lot of time navigating to the same files/directories over and over with M-x
find-file
. And that might motivate them to learn about packages for opening recently visited files (e.g.recentf
), or to learn about Emacs’ bookmark system. That’s a really basic example, but I think that repeating that general “improvement loop” over and over is how people become good at Emacs.I want to note here that there is a eternal temptation towards “yak shaving” with Emacs, where you spend all your time working on your configuration instead of getting your actual work done, whether that be school assignments or tasks for your employer. Personally, I have a rather extreme rule that I don’t make any adjustments to my Emacs config during working hours, unless I can make the change in less than 5 minutes. Instead, I keep a TODO list of possible improvements and do those on my own time.
Finally, I second the advice given elsewhere in this thread, about starting with a vanilla Emacs config. Emacs distros like Doom/Spacemacs/Prelude are great for showing you what’s possible, but you will understand your config so much better if you build it up from scratch. That will also help with gradually learning how to program in Elisp, which is a total game changer and probably the single most valuable thing you can learn.
While minimal/vanilla Emacs configs aren’t as flashy Doom/Spacemacs/Prelude, they can be really effective. For example, Twitch coder @tsoding uses a very vanilla Emacs config, but he does things at a dizzying speed. For example, see the following video where he is doing some coding experiments with the “tree sitter” library: https://youtu.be/-8p-Jd9n-_I?t=549