Learning complex tools one nudge at a time

Have you ever tried picking up a tool that is so hard to master you feel like you'll never figure it out completely?

I know just enough about the command line to be dangerous.

Yeah, I use vim.

I'm a level one *nix user; I'll never be an expert.

Try to remember your first experience with the command line, a powerful text editor, or some other system that has a reputation for being hard to understand.

For some reason, you decided it was time to put in the effort and finally figure it out.

How did you start? Did you find a tutorial online? Buy a book? Read the man page? Maybe your coworker or classmate convinced you to just jump right in. Within a few hours, you were probably flailing around with some basic commands.

Info dump

It's all going great for a while, then...bam. You're totally overwhelmed. You just watched 4 hours of video tutorials but only picked up one new trick. Everything else went in one ear and out the other. It's just too much to learn at once.

Before long, you identify a subset of the tool that you can use. Over time you'll pick up new tips one by one. Shiny little eggs for your basket. After a year or two, you're pretty happy. After five, you feel like you can maybe call yourself an intermediate user. But you always know you're not the best. You don't have total control over the software.

Little nudges

The main problem with using traditional learning methods to internalize complex tools is the pacing of the learning materials never quite lines up with your usage patterns.

All the tips you read in the first few weeks sound amazing. You add things to your dotfiles, load up on someone else's aliases, and two days later you realize you'll never use any of it. It's eyes larger than stomach syndrome. Oops.

But what if we could spread the learning out over a longer period of time? If you got a little nudge every once in a while. No, not the Microsoft Word paper clip. Or those tutorial popups that show up every time you open a program until you select the option to never show them again. Little nudges that are targeted to exactly what you're doing, right when you are doing them.


Adæpt watches your usage of the complex program to find what shortcuts you're missing. Maybe you typed the same command in a bash shell 50 times in three hours. On the 51st attempt, adæpt will step in and wake you up. Hello, we can do better here. Let's set up a shorthand for this long command. You'll be delighted to see a suggestion to a problem you didn't even know you had.

It's all about the timing.

How's it work?

You tell me! Maybe it's a daemon watching your log files. A keylogger? Or perhaps you just call upon it when you realize you're doing something repetitive. Where does it get suggestions from? Can we just program in simple rules or does it learn by comparing an expert's usage to an amateur's?

Have some ideas?

I'd love to hear what you think. If you have a plan, harsh critcism, or a desire to build something like this, I'd love to hear from you. You can email me at:

Comments sent with "Adæpt" in the subject line will be posted to this page, with personally identifying information removed.

Thanks! And maybe try the gqip command to hard wrap your paragraph next time.

Home - Ideas - Commentary