Emacs, coaching, and unknowns: Figuring out what I want to learn
Posted: - Modified: | emacsI've been playing around with the idea of hiring an Emacs coach, since Steve Purcell, Christopher Wellons, and Bastien Guerry all offer this service. It helps to go in with a clear idea of what I want to learn, though, so let me figure this stuff out.
Here are some general topics, sketching out an order for learning the subtopics:
- Thinking syntactically, so that I can work faster and more reliably
- Expand-region: Faster selection.
- Smartparens: Logical manipulation. This is probably the biggest chunk.
- Erefactor, redshank: Other tools for working with Lisp.
- Magit: Thinking of changes in terms of commits; low priority because I rarely need to coordinate with others, although I can bump this up if working on community code
- In general, working with larger chunks – so also projectile and other cool tools
- Web development workflow, so I can work more professionally and handle more complexity. Focusing on Rails, NodeJS, and AngularJS
- Rails workflow
- Testing
- Constant testing with guard, better interaction with browsers, etc.
- Navigating between files in a project with Rinari or Projectile
- Code navigation and documentation lookup with Robe
- Working with things like HAML, Sass/Less, CoffeeScript
- Refactoring Ruby code
- Javascript workflow
- Testing frameworks, running tests
- Getting autocomplete sorted out
- Integrating Skewer into the way I work
- Working with things like HAML, Sass/Less, CoffeeScript
- Rapid prototyping: Grunt, Yeoman, etc.
- General-purpose tools
- Folding/overview, imenu?
- Jumping to specific points quickly – ace-window, ace-jump, helm-swoop
- Rails workflow
- Integration, so that I can take advantage of Emacs in more parts of my life
- Organizing my journal
- Trying out Elnode so that I can expose Emacs information to Javascript
- Getting back to doing mail in Gnus
- Using MobileOrg to review Org on the go?
- Internals, debugging, and contributing to the community so that I can help out, and so that I can customize and debug more extensively
- Emacs core, Org internals, syntax, font-locking, indentation, macros, Helm, …
Coaches are also good for pointing out what you don't even know you don't know, which is a lot when it comes to Emacs. That's another nice benefit of having someone look over your shoulder – they can catch you doing something in a round-about way even if you don't even know that a more efficient way exists. But even with the stuff I know I don't know (and that I have a reasonable plan for learning), there's plenty to keep me occupied for the next few years. =) Besides, helping out on IRC and in mailing lists/newsgroups will expose me to stuff I don't know too.
So instead of turning up on one of these people's (virtual) doorstops and asking, “Can you teach me all the stuff I don't know?”, maybe this is what I can do instead:
- Lay the groundwork by writing about and demonstrating the things I do know, so that I explore my limits, help other people learn, possibly get suggestions from random passers-by, and help potential mentors/coaches quickly get a sense of what I might be missing
- Double-check my plans for learning different things with more experienced people who can give me feedback on sequence, exercises, and things I should include
- Develop plans for deliberate practice of different components; slow down and notice opportunities to try things out
- Share what I'm learning and my plans for what to learn next
- Touch base once in a while
So much to learn! =)