Thoughts on learning new things

Recently, I've been working on some Twilio tools for a client. This work requires a number of new skills for me. I want to share a few things I use to learn faster, in case they are useful for you in learning.

  1. Speed up your iteration cycles.
    It's hard to stay focused while you wait if it takes you 3 minutes to verify whether your code worked (much less 30). Your attention will drift, and when you come back to your results, you will have to reload the context.
    This takes you out of flow which interrupts your learning. It also means you can learn fewer things in the same amount of time. How can you learn something faster?

  2. Experiment in small pieces
    Often, when a domain is new, the whole piece of the puzzle is too big to deal with. It needs to be broken into smaller pieces. Also, those smaller pieces often create faster iteration cycles. I'm a huge fan of writing simple learning code and scripts, to figure something out. That might mean writing a tiny Twilio function that just errors the arguments passed in, a mini bash script, or trying it out in the Rails console. What is the smallest piece you can break this into?

  3. Clarify your questions
    When I'm frustrated when learning, I like to have a very clear question in mind. It helps me stay focused. While less directed exploration also has value, I can get lost in that, and struggle to remember what I was trying to do.

It helps me to answer one question at a time, and write down the other questions that come up as I explore. I often use a journaling method similar to what I lay out in my Getting Unstuck: Using the Scientific Method for Debugging RubyConf talk, writing down an experimental question, a hypothesis, and what I observe in a running doc.

If you don't have a clear first question to start, but a whole jumble of wonderings, that's when I engage in Question Shrinking, as taught to me by Shaun Martin and KK Ong. That's a whole other post (or a series, even). But I'd recommend writing down your questions, and everything you know, on paper or a white board. And then write down the connections between them, the other things you remember you know, and explore, to see what you don't know yet.

  1. Write down your mental stack
    When you're learning, it's easy to get overwhelmed. It helps me to keep a written stack of questions, tasks, and more so they don't use up my working memory. I usually use either physical sticky notes (one note per thought), or the Stickies for Mac app (as just a list). You can then add to your stack, or pop things off your stack as you go.

  2. Accept being outside your comfort zone
    Another thing I learned from Shaun and KK is that learning happens in flow and outside your comfort zone. This is, by definition, uncomfortable but it's required for learning. Try to notice and accept the discomfort, without judgement.

  3. Take breaks
    You need idle time and sleep to process, and form neural connections with the new information when you're learning a lot. Taking an actual break to move my body, or reflect quietly always helps a heck of a lot more than scrolling on my phone (even though I do love scrolling Mastadon or playing Square Valley or Monster Hunter Stories).

Please tell me if this post was helpful to you, if you learned something new, if it was boring, whatever. I'd love to hear from you, even a thumbs up or thumbs down. Or even better, share your learning-new-things tips!