How I learn new technology

Posted by on 23 November 2021

Over the years I've used several different editors and learned several different programming languages and technologies. The problem often seems to be that I'll only need it for a short while, just long enough to figure out how it all works and then I shelve it, sometimes for a a year or two, and then I'll need to use it again at which point I'll have to re-learn it all over again. I'm a JavaScript developer by trade and D3.js seems to be one of those projects. It is one of the more challenging libraries I have to use. I really enjoy using it, and it only takes me a day or two before I start remember how it all works again.

Using google

In the past I thought I was being clever by just relying on google to store information that was not currently relevant to me, after all its just a few search queries away. The problem is that the index is constantly evolving and the sites that you might have referenced in the past may no longer come up in the top 10 search (you know you never go past the first page, if you do you know something is wrong) so you may have to dig for a bit. The next thing you know an hour or so has gone by as you've had to search for the half a dozen or more concepts that you have forgotten. It's even worse if the content you found was in a video because you have to scrub through hoping to find it. I knew there had to be a better way, so here is what I came up with. This is not revolutionary by any means but it's pretty simple, here is how it works.

Create a cheat sheet

There are all sorts of cheat sheets that other people have created, but that is not what I'm talking about. Those cheat sheets are designed to help the person that created them. That is like downloading someone else dotfiles, there is a bunch of stuff in there you just won't use. You really want to create your own. Here is how I do it. Find a good writing tool, preferably a plain text editor or note taking tool. I like org-mode in Emacs. I'm not going to try and sell you on org-mode or Emacs, I'll save that for another post. I'll just say that the reason I've settled on org-mode is:

  1. I already use Emacs
  2. I can jump to my notes with a hotkey
  3. I can quickly capture notes without losing my train of thought
  4. Since the notes are text based I can manipulate them in with my editor

Learn your new technology

Now comes the fun part, learn (or re-learn as the case may be) your new technology. Step 1 is to create a new document or note in whatever tool you have chosen, then start reading the tutorial, or watch the video, of if you're the type that likes to just jump right in do that. If you're reading a tutorial or watching a video, take notes, make note of hotkeys that might be useful and save your notes often. Once you're ready to start using what you've learned, this is the most important part of the process, eventually you're going to need to do something and you've forgotten how, and you're going to need to look it up. This is the part that takes the discipline, but if you stick to it this is where you will start to become super productive. Here is what you do:

  1. Reference the notes you've been taking, there is a really good chance you've already written it down
  2. If you don't find it in your notes, go research, either re-read the tutorial, google search, find a video, and figure out how to do whatever if it is you need
  3. Once you've figured it out, this is the most important part, WRITE IT IN YOUR NOTES!

You may actually forget how to do the thing again, but if you follow the steps above the next time it you will find the answer in your notes, and if you take notes in your editor, and you create a hotkey to those notes, you'll have your answer in seconds! Eventually all the things you want to be able to do will be nicely documented in your notes, and you'll have your very own personal cheat sheet tailored with only the information you need, not what someone else needed. Yours may not be as beautiful as some of the ones you can find online, but it will be practical, and it will make you successful.

Emacs has the concept of a register that you can program with a hotkey that will take you to a document. So I have this in my configuration:

  (set-register ?w '(file . "~/org/wiki/index.org"))

So all I have to do is <C-x r j w> and it takes me to an index of different things that I've learned. Then I can jump to the one I want, open it up and I have all the information I need ready to go. You might be thinking, whoa, that is a crazy hotkey, how do you remember that? It is sort of pnuemonic when you think about it. All you have to remember is the C-x part. Then you know it is a "register" so you type "r" and you want to "jump" to it so you type "j". Pretty soon you don't even have to think about it any more. That said, you can creat whatever hotkey you like, I've just chosen this route. Here is a screenshot of part of the notes I've taken to learn Emacs.

Emacs cheat sheet

One last tip. I said in Emacs you can capture information instantly without losing your train of thought. Sometimes something will just come to you and you'll want to capture it, or you'll lookup that thing you couldn't remember and you'll want to write it down quickly and move on. Many people have a notepad near by for such things. However emacs has org-capture. It is bound to <C-c c>. When you key that in you can enter the information you want to capture, then <C-c C-c>. and it's gone, well not gone gone, but out of your way. It has been saved off in the document you defined in your configuration. Then later when you're not in the middle of your project you can go back to it and organize it and put it in a more permanent place. Or maybe it's a task you need to do, go do it, delete the note and move on.

I hope you've found this information helpful, if so please share below. If you have ways that you like to learn things please share those as well, I'm always looking for ways to improve my process.

Tags: #emacs #org-mode

Categories: #technology