Tell the difference between diminishing returns and compounding growth when it comes to investing in skills

When is it worth improving a skill you’re already good at, and when should you focus on other things?

I started thinking about this after a conversation about what it means to master the Emacs text editor. Someone wondered if the additional effort was really worth it. As I explored the question, I noticed that skills respond differently to the investment of time, and I wondered what the difference was.

For example, going from hunt-and-peck typing to touch-typing is a big difference. Instead of having to think about typing, you can focus on what you want to communicate or do. But after a certain point, getting faster at typing doesn’t give you as much of a boost in productivity. You get diminishing returns: investing into that skill yields less over time. If I type a little over 100 words per minute, retraining bad habits and figuring out other optimizations so that I can reach a rate of 150 words per minute isn’t going to make a big difference if the bottleneck is my brain. (Just in case I’m wrong about this, I’d be happy to hear from people who type that fast about whether it was worth it!)

Some skills seem shallow. There’s only so much you can gain from them before they taper off. Other skills are deeper. Let’s take writing, for instance. You can get to the point of being able to competently handwrite or type. You can fluently express yourself. But when it comes to learning how to ask questions and organize thoughts I’m not sure there’s a finish line at which you can say you’ve mastered writing. There’s always more to learn. And the more you learn, the more you can do. You get compounding growth: investing into that skill yields more over time.

I think this is part of the appeal of Emacs for me. Even after more than a decade of exploring it and writing about it, I don’t feel I’m at the point of diminishing returns. In fact, even the small habits that I’ve been focusing on building lately yield a lot of value.

No one can objectively say that a skill is shallow or deep. It depends on your goals. For example, I think of cooking as a deep skill. The more you develop your skills, the wider your possibilities are, and the more enjoyable it becomes. But if you look at it from the perspective of simply keeping yourself fueled so that you can concentrate on other things, then it makes sense to find a few simple recipes that satisfy you, or outsource it entirely by eating out.

It’s good to take a step back and ask yourself: What kind of value will you get from investing an hour into this? What about the value you would get from investing an hour in other things?

Build on your strengths where building on those strengths can make a difference. It can make a lot of sense to reach a professional level in something or inch towards becoming world-class. It could be the advantage that gets you a job, compensates for your weakness, opens up opportunities, or connects you to people. On the other hand, you might be overlearning something and wasting your time, or developing skills to a level that you don’t actually need.

When you hit that area of diminishing returns – or even that plateau of mediocrity – you can think about your strategies for moving forward. Consider:

  • What kind of return are you getting on your time? (understanding the value)
  • Is there a more effective way to learn? (decreasing your input)
  • Can you get more value out of your time from this skill or other skills? (increasing your output)
  • If you learn something else first,
    • will that make more of a difference in your life?
    • will that help you when you come back to this skill?

These questions are helping me decide that for me, learning more about colours is worthwhile, but drawing more realistic figures might not be at the moment; learning more about basic Emacs habits is better than diving into esoteric packages; and exploring questions, doing research, and trying things out is likely to be more useful than expanding my vocabulary. I’ll still flip through the dictionary every now and then, but I can focus on developing other skills.

How about you? What are you focusing on, and what helps you decide?

Related:

Using Emacs to prepare files for external applications like Autodesk Sketchbook Pro

To make it easier to draw using Autodesk Sketchbook Pro on my laptop (a Lenovo X220 tablet PC), I’ve created several templates with consistent dot grids and sizes. Since I want to minimize typing when I’m drawing, I wrote a couple of functions to make it easier to copy these templates and set up appropriately-named files. That way, I can save them without the grid layer, flip between files using Sketchbook Pro’s next/previous file commands, and then process them all when I’m ready.

Index cards

I’ve been experimenting with a habit of drawing at least five index cards every day. Here’s a function that creates five index cards (or a specified number of them) and then opens the last one for me to edit.

(defvar sacha/autodesk-sketchbook-executable "C:/Program Files/Autodesk/SketchBook Pro 7/SketchBookPro.exe")
(defun sacha/prepare-index-cards (n)
  (interactive (list (or current-prefix-arg 5)))
  (let ((counter 1)
        (directory "~/Dropbox/Inbox")
        (template "c:/data/drawing-templates/custom/0 - index.tif")
        (date (org-read-date nil nil "."))
        temp-file)
    (while (> n 0)
      (setq temp-file
            (expand-file-name (format "%s-%d.tif" date counter)
                              directory))
      (unless (file-exists-p temp-file)
        (copy-file template temp-file)
        (setq n (1- n))
        (if (= n 0)
            (shell-command
             (concat (shell-quote-argument sacha/autodesk-sketchbook-executable)
                     " "
                     (shell-quote-argument temp-file) " &"))))
      (setq counter (1+ counter)))))

Afterwards, I call sacha/rename-scanned-cards function to convert the TIFFs to PNGs, display the files and ask me to rename them properly.

Rename scanned index cards

(defun sacha/rename-scanned-cards ()
  "Display and rename the scanned files."
  (interactive)
  (when (directory-files "~/Dropbox/Inbox" t "^[0-9]+-[0-9]+-[0-9]+-.*.tif")
    ;; Convert the TIFFs first
    (apply 'call-process "mogrify" nil nil nil "-format" "png" "-quality" "1"
           (directory-files "~/Dropbox/Inbox" t "^[0-9]+-[0-9]+-[0-9]+-.*.tif"))
    (mapc (lambda (x)
            (rename-file x "~/Dropbox/Inbox/backup"))
          (directory-files "~/Dropbox/Inbox" t "^[0-9]+-[0-9]+-[0-9]+-.*.tif")))
  (mapc (lambda (filename)
          (find-file filename)
          (delete-other-windows)
          (when (string-match "/\\([0-9]+-[0-9]+-[0-9]+\\)" filename)
            (let ((kill-buffer-query-functions nil)
                  (new-name (read-string "New name: "
                                         (concat (match-string 1 filename) " "))))
              (when (> (length new-name) 0)
                (revert-buffer t t)
                (rename-file filename (concat new-name ".png"))
                (kill-buffer)))))
        (directory-files "~/Dropbox/Inbox" t "^[0-9]+-[0-9]+-[0-9]+-.*.png")))

I might tweak the files a little more after I rename them, so I don’t automatically upload them. When I’m happy with the files, I use a Node script to upload the files to Flickr, move them to my To blog directory, and copy Org-formatted text that I can paste into my learning outline.

Automatically resize images

The image+ package is handy for displaying the images so that they’re scaled to the window size.

(use-package image+
 :load-path "~/elisp/Emacs-imagex"
 :init (progn (imagex-global-sticky-mode) (imagex-auto-adjust-mode)))

Get information for sketched books

For sketchnotes of books, I set up the filename based on properties in my Org Mode tree for that book.

(defun sacha/prepare-sketchnote-file ()
  (interactive)
  (let* ((base-name (org-entry-get-with-inheritance  "BASENAME"))
         (filename (expand-file-name (concat base-name ".tif") "~/dropbox/inbox/")))
    (unless base-name (error "Missing basename property"))
    (if (file-exists-p filename)
        (error "File already exists")
        (copy-file "g:/drawing-templates/custom/0 - base.tif" filename))
      (shell-command (concat (shell-quote-argument sacha/autodesk-sketchbook-executable)
                             (shell-quote-argument filename) " &"))))

By using Emacs Lisp functions to set up files that I’m going to use in an external application, I minimize fussing about with the keyboard while still being able to take advantage of structured information.

Do you work with external applications? Where does it make sense to use Emacs Lisp to make setup or processing easier?

Different dimensions of scaling up

When I was coming up with a three-word life philosophy, learn – share – scale felt like a natural fit for me (Nov 2012). Learning and sharing were pretty straightforward. I thought of scaling in terms of sharing with more people, sharing more effectively, building tools to help people save time, connecting the dots among people and ideas, and getting better at getting better.

A recent conversation got me thinking about scale and the different dimensions that you can choose to scale along. For example, startups often talk about scaling up to millions of users; that’s one kind of scale. There’s saving people five minutes and there’s launching people into space; that’s another kind of scale.

What kinds of scale I see myself exploring? Here’s a rough categorization. (With ASCII art!)

Category Left Where I am Right
Size “This might save someone five minutes” X--------- “I’m going to help people get into space.”
People “This might help 1,000 people.” -X-------- “I want to help 1 billion people.”
Time “This might help 1,000 people over ten years.” X--------- “I want to help 1,000 people tomorrow.”
Team “I’m going to gradually develop my skills.” -X-------- “I’m going to build a team of people.”
Performance “We’ll start by doing it manually.” -X-------- “I want to get to sub-second response.”
Focus “I’m going to explore and see what comes up.” X--------- “I’m going to focus on one idea and knock it out of the park.”
Variety “I’ll put lots of things out there and people can tell me what they value.” --X------- “I’ll choose what to put out there and connect with people who need that.”
Demand “I’ll come up with the idea and find the market.” ----X----- “I’ll find the market and then come up with an idea.”
Pace “If I grow slowly and steadily, I’ll build a solid foundation.” --X------- “If I grow quickly, I’ll have momentum.”
Time/money tradeoff “I’m going to make my time more valuable.” ---------X “I’m going to make something outside the time=money equation.”
Risk “If I mess up, things are still okay.” X--------- “If I mess up, people die.”
Empowerment “I’m going to do things myself.” -------X-- “I’m going to support other people.”
Teaching “I will build systems so that I can catch fish for more people.” --------X- “I’m going to teach more people how to catch their own fish.”

Hmm. This is similar to those visions of wild success I occasionally sketch out for myself as a way to test my ideas and plans. Wild success at scaling up for me (at least along my current interests and trajectory) probably looks like:

  • Learning about a wide variety of interesting things
  • Writing, drawing, and publishing useful notes
  • Getting better at organizing them into logical chunks like books and courses so that I can help more people (including people who don’t have the patience to wade through fifty blog posts)
  • Reaching more people over time through good search and discovery in my archives
  • Getting updates to more people through subscriptions and interest-based filters

What would an Alternate Universe Sacha be like? I’d probably keep a closer eye out for problems I run into or that people I care about run into, and practise building small websites, tools, systems, and businesses to solve those problems. I might start with trying to solve a problem for ten people, then a hundred, then a thousand, then ten thousand and more. I might look for medium-sized annoyances so that it’s worth the change. I might build tools instead of or in addition to sharing my notes. (After all, The $100 Startup points out that most people don’t want to learn how to fish, they just want to eat fish for dinner and get on with the rest of their lives.)

Hmm. Alternate Universe Sacha makes sense too. Since I’m doing fine in terms of Normal Universe Sacha and scaling up here is mostly a matter of gradual accumulation, it might be interesting to experiment with Alternate Universe Sacha sometime. Maybe during the next two years of this 5-year experiment, or in a new experiment after that?

It’s good to break down a word like “scale” and figure out the different dimensions along which you can make decisions. Are you working on scaling up? If so, what kind of scale are you working towards?

Learn how to take notes more efficiently in Org Mode

How do you take notes in Org? Are you buried in a heap of uncategorized notes? Do you manually open the right file and navigate to the right heading? Are you mystified by org-capture and org-refile? Here’s a path that can help you learn how to more efficiently take (and organize!) notes in Org Mode.

  1. Set up a keyboard shortcut to go to your main Org file
  2. Use org-refile to file or jump to headings
  3. Use org-capture to write notes quickly
  4. Define your own org-capture templates for greater convenience
  5. Pull in additional information

Step 1. Set up a keyboard shortcut to go to your main Org file

Instead of using C-x C-f (find-file) all the time, set up shortcuts to jump to the Org files you use the most. This way, you can easily type that keyboard shortcut, go to the end of the file, and add your note. Here’s some sample code that sets the C-c o shortcut to open organizer.org in your home directory. You can add it to your ~/.emacs.d/init.el and then call M-x eval-buffer to load the changes.

(global-set-key (kbd "C-c o") 
                (lambda () (interactive) (find-file "~/organizer.org")))

Alternatively, you can use registers, which are Emacs data structures that can hold text, file references, and more. The following code sets the o register to organizer.org in your home directory:

(set-register ?o (cons 'file "~/organizer.org"))

You can then jump to it with C-x r j (jump-to-register), specifying o at the prompt.

Once you’re in your Org file, you can use M-> (end-of-buffer) to go to the end of the file, or you can use C-s (isearch-forward) to search for some text.

You’ll still need to switch back to your original buffer or window configuration when you’re done, but that’s something you can fix when you learn how to use org-capture.

Step 2. Use org-refile to file or jump to headings

The next improvement is to use org-refile to move the current subtree to a specified heading, or jump to one without moving any text. This will let you quickly go to a project or task from anywhere in Org Mode.

By default, org-refile will show you only the top-level headings of the current file. Let’s configure it to show you headings from all your agenda files. You can use M-x customize-variable to change org-refile-targets. Click on the INS button, then click on Value menu next to Identify target headline by. Change this to Max level number. In the Integer field, fill in a suitably high number, like 6. This is the maximum depth of headings that will be shown.

If you prefer to set your variables using Emacs Lisp, here’s the code that you can add it to your ~/.emacs.d/init.el. Call M-x eval-buffer to load the changes.

(setq org-refile-targets '((org-agenda-files . (:maxlevel . 6))))

Be sure to add your main Org Mode file to your agenda list. You can do so by going to the file and typing C-c [ (org-agenda-file-to-front), or by setting the org-agenda-files variable.

The standard Emacs completion interface isn’t as friendly as it could be. I use the Helm package to make it easier to select and complete input. Since Helm can be a little complex, you may want to start with ido-mode instead. Here’s how you can set Ido up to use with Org Mode:

(ido-mode)
(setq org-completion-use-ido t)

Once you’ve set up your org-refile-targets, your agenda files, and either Helm or Ido, you can get the hang of using org-refile. The standard keyboard shortcut for org-refile is C-c C-w when you’re in an Org Mode buffer. org-refile can do different things depending on how you call it:

  • By default, it moves the current subtree to the specified location.
  • If you call it with the prefix argument C-u (like so: C-u C-c C-w), it jumps to the specified location instead of moving the current subtree.
  • If you call it as C-u C-u C-c C-w, it jumps to the previous refiling location.

First, practise using it with the prefix argument (C-u C-c C-w) to jump to a location. Once you’ve gotten the hang of that, go to some of your uncategorized entries and use org-refile without the prefix argument (just C-c C-w) to move the entries to the right place.

org-refile gives you a quick way to jump to a heading, but you still have to find your way back to whatever you were working on before you wanted to take a note. After you’re comfortable with refiling notes to the right place, move on to learning how to use org-capture to quickly take notes from anywhere.

Step 3. Use org-capture to write notes quickly

org-capture can help you take notes quickly by popping up a window or leading you through prompts. When you’re done taking the note, it will return you to whatever you were looking at before you started. In order to take advantage of this, though, you’ll need to customize org-capture.

The Org Mode manual recommends giving org-capture a global keyboard shortcut such as C-c c.

(global-set-key (kbd "C-c c") 'org-capture)

You can use M-x customize-variable to set org-default-notes-file to the filename you would like notes to be saved to, or set it in Emacs Lisp code like this:

(setq org-default-notes-file "~/organizer.org")

Make sure that the file exists and is automatically opened in Org Mode.

If you type C-c c, org-capture will display a prompt. t is a simple task template, and C will show you the customization interface for org-capture-templates.

Let’s start with t. It will show you a buffer with a simple TODO entry. You can fill in the rest of the details, use C-c C-s (org-schedule) to schedule it for a particular day, set the deadline with C-c C-d (org-deadline), etc. You can change the TODO keyword or delete it.

When you’re done, type C-c C-c to automatically save it to your default notes file (as specified by org-default-notes-file). Changed your mind? Cancel with C-c C-k. After either C-c C-c or C-c C-k, you should be back to whatever it was that you were working on.

Practise using C-c c (org-capture) to quickly jot down several tasks or notes. Then go to your notes file and use C-c C-w (org-refile) to move the notes to the right place.

You can also refile the notes right from the capture buffer. Instead of typing C-c C-c to finish your note, use C-c C-w to refile it.

Get the hang of using org-capture to take notes, organizing them every so often (maybe at the end of your day, or once a week?) or refiling them as you go.

Step 4. Define your own org-capture-templates for greater convenience

If you find yourself capturing different kinds of notes often or you want to capture in another format (table entry? list item?), invest the time in customizing org-capture-templates. In the beginning, you might find the Customize interface you get from M-x customize-variable org-capture-templates to be easier to work with than setting the values in plain Emacs Lisp, since the Customize interface lists the options. Read the documentation and look at examples of how other people have configured their org-capture-templates for more ideas. I have quite a few templates defined in my config, and http://doc.norang.ca/org-mode.html has a number of templates too.

Step 5. Pull in additional information

org-capture and org-refile are great when you’re at your computer, but what if you’re away? Quite a few people use MobileOrg to take quick notes on the go. I haven’t gotten around to setting that up for my workflow properly; instead, I use Evernote to jot quick notes on my phone. As part of my weekly review process, I look at the notes in my Evernote inbox and copy them into Emacs as needed.

You can manually copy information from your preferred non-Emacs note-taking tools, or you can figure out an automatic way of doing so. For example, I have some code to copy Evernote notes titled “Journal” into an Org Mode file structured by year-month-day.

Tweak your workflow!

Here’s a quick sketch showing some of your workflow options when it comes to capturing and organizing information with Org Mode. Which combination do you prefer, and how could you make it even better?

2015-02-09 Capturing Org Mode notes more efficiently -- index card #emacs #org #capture #refile

2015-02-09 Capturing Org Mode notes more efficiently – index card #emacs #org #capture #refile

Sketched Book – So Good They Can’t Ignore You: Why Skills Trump Passion in the Quest for Work You Love – Cal Newport

It seems almost given that you should follow your passion, but what if you don’t know what that is? Or what if following your passion prematurely can lead to failure?

In So Good They Can’t Ignore You: Why Skills Trump Passion in the Quest for Work You Love (2012), Cal Newport gives more practical advice: Instead of jumping into a completely unknown field to follow a passion which might turn out to be imaginary, look for ways to translate or grow your existing capabilities. Develop a craftsman’s mindset so that you can improve through deliberate practice. Often it’s not a lack of courage that holds you back, but a lack of skill. As you build career capital, you can develop your appreciation of a field, possibly leading to a clear passion or a mission. You also can make little bets that help you move closer to the cutting edge so that you can make something remarkable. This qualifies you to do greater work that involves creativity, positive impact, and good control.

I’ve sketched the key points of the book below to make it easier to remember and share. Click on the image for a larger version that you can print if you want.

2015-01-03 Sketched Book - So Good They Can't Ignore You - Why Skills Trump Passion in the Quest for Work You Love - Cal Newport

I agree with many of the ideas in the book, although I’m not entirely sure about the dichotomy that Newport sets up between passion and craftsmanship. Many of the passion-oriented books I’ve read encourage you to try out your ideas before making major changes to your life – for example, by working on your own business on weekends or by taking a second job. Very few people advocate leaping into the unknown, and if they do, they recommend having plenty of savings and a network of mentors, potential clients, and supporters. So the book comes down a little harshly on a caricature of the other side rather than the strongest form of the opposing side’s argument.

Amusingly enough, although the book describes What Color is Your Parachute as “the birth of the passion hypothesis”, I remember coming across the idea of gradually transitioning to a new field by first exploring something more related to your current one in What Color is Your Parachute, which recommends it as a way of lowering risk and clarifying what you want. I also remember the What Color is Your Parachute book to be less about impulsively following your whims and more about identifying and exploring the skills that gave you feelings of accomplishment.

Anyway, I think you start with curiosity. Then you develop a little skill. This makes you more curious, which helps you learn more, and so on. That–combined with feedback and appreciation–helps fan a spark of interest into a flame. So it’s not really that you start with passion or that you spend many years developing your craft before you can enjoy it, but rather that you gradually figure out both. (I have a feeling this somewhat agrees with what the book would’ve been if it weren’t trying so hard to distinguish itself from advice about passion.)

We just don’t normally express ourselves that way, I guess. It’s almost as if people are expected to either have strong convictions about their life’s work, or to be lost at sea. If you say, “I’m still figuring things out,” it’s like you’re a drifter. If you say, “I’m not passionate about my work right now,” it’s like you’re just going through the motions. I don’t agree with this, which is why I like the book’s emphasis on forming hypotheses about what you want to do, and testing that with little bets that also develop your skills. (This is particularly apropos, since J- will be choosing a university or college course soon.)

Anyway, after reading this book, the specific take-away I’m looking forward to following up on is that of exploring adjacent possibilities more systematically. How can I move closer to the edge of discovery in myself and in the fields I’m interested in, and what new areas have been opened up? I’ve been thinking about designing more focused projects that result in things I can measure and share. That’s similar to the middle layer of the pyramid that Newport suggests:

  1. Tentative research mission – figuring out what you want
  2. One-month exploratory projects with concrete results
  3. Background results

On the whole, the book has a good message. You don’t have to love something to get good at it. Sometimes (often?) getting good at something will help you like it or even love it.

But the book feels a little… uneven, I guess? The anecdotes feel like they’re making too-similar points. The ones about failure feel unsympathetic and hand-picked for straw-man arguments. I imagine most businesses are not started out of the blue because of some grand passion. People prepare, they minimize risk, they work hard. Passion for something – either the work, the customers, or even just the life that’s afforded by the work – pulls them through the toughest parts and keeps them going. Sometimes they succeed for reasons unrelated to their skills; sometimes they fail for reasons unrelated to their passions. Sometimes things just happen. There are everyday businesses that don’t have the creativity, grand positive impact, or full control that are idealized in the book, but that still give people enjoyable lives. I think that the techniques and ingredients described by Newport in his book are good, but they are not essential to an awesome life.

On a somewhat related note, in the past few years, I’ve been learning to let go of the desire for either passion or mastery, Instead, I’m embracing uncertainty and beginner-ness, setting aside time for things I don’t quite love yet. It’s a challenging path, but it tickles my brain. =)

Anyway, if you’re looking for a counterpoint to the usual “Follow your passion!” advice and you want to check out So Good They Can’t Ignore You, you can get it from Amazon (affiliate link) or your favourite source for books. Like this sketch? Check out sketchedbooks.com for more. Feel free to share – it’s under the Creative Commons Attribution License, like the rest of my blog.

Enjoy!

Weekly review: Week ending February 20, 2015

Wow, that was actually a pretty full week: an extended family dinner that required dressing up, technical issues with my work laptop and with my cellphone, cooking, dusting off my sewing things, meeting people, contributing to code… This week, I have a couple of social and family things planned. I’m looking forward to digging into sewing a little more, too, so that I can practise while I remember. =)

2015-02-23b Week ending 2015-02-20 -- index card #weekly

2015-02-23b Week ending 2015-02-20 – index card #weekly

Blog posts

Sketches

Definitely slowed down when I changed my target from five cards a day to one card.

Link round-up

output

Focus areas and time review

  • Business (24.0h – 14%)
    • Earn (10.5h – 43% of Business)
    • Build (11.6h – 48% of Business)
      • Drawing (8.0h)
      • Delegation (0.0h)
      • Packaging (0.6h)
        • Upload to Createspace
      • Paperwork (0.1h)
        • File federal annual return
      • Figure out why library isn’t renewing
      • Fix color detection
      • Fix e-mail relay
    • Connect (1.9h – 7% of Business)
      • Talk to SAP about Quantified Self
      • Attend Sketchnote Hangout
  • Relationships (19.1h – 11%)
    • Help Sean with Emacs
    • Organize get-together with Linda
    • Print tickets
  • Discretionary – Productive (13.2h – 7%)
    • Emacs (6.2h – 3% of all)
      • Host Emacs Hangout
      • Look into bounty for code coverage
      • Set up engines for searching
      • Revise transcript for Magnar Sveen
      • Integrate journal with review
    • Read chapter 3 of Intermediate Japanese
    • Back to sewing!
      • Print out Colette pattern
      • Find 1.5 yards in stash
      • Choose additional fabrics for Sorbetto top
    • Buy Moto G from Staples
      • Set up new phone
    • Read chapter 4 of Intermediate Japanese
    • Review Createspace
    • Investigate Powershell
    • Writing (3.0h)
  • Discretionary – Play (2.8h – 1%)
    • Read synopsis for Die Walkure, watch it
  • Personal routines (35.8h – 21%)
  • Unpaid work (13.5h – 8%)
  • Sleep (59.6h – 35% – average of 8.5 per day)