Leverage

By utilizing a principle that I call leverage, continuous learning is easier for me. I’m curious how other people think about this?

The basic idea of leverage is to focus first on learning things that will help you learn other things faster.
The basic idea of leverage is to learn things now that at some later point in time will help you learn other things faster.


What is leverage?

Merriam-Webster defines leverage as:

1. the action of a lever or the mechanical advantage gained by it

2. power, effectiveness

But what does that have to do with personal betterment?

Basically, I have in mind a principle of investing in learning that will one day (sooner or later) produce higher learning speed and efficiency. The idea is to choose one to a few things to learn now that will be reusable tools for learning many other things later.

It’s the same basic idea behind revolutionary gains in progress like interchangeable parts and the scientific method: build something that can be used over and over again. Build something with many different applications.

If you think about how really good teachers break down what they are teaching into simple little pieces that you assemble in your mind into complex frameworks, then you are thinking about what I call “leverage.”

A practical example
Since I’m being so abstract, let me be concrete for a moment.

lever_3_sm

Right now, people have realized that JavaScript is here to stay. Between HTML5, CSS3, and JS, a lot of formerly very complex server-side web technologies are now obsolete. Furthermore, those obsolete server-side ideas do not address the new mobile device space that well. So web development over the last four years has become a radically different thing than it once was. We have started to see what seemed like a formerly unstoppable web technology market-share grabber, Ruby-on-Rails, suffer quite a bit, at the hands of node.js. And big server-centric things like Spring Framework, .Net MVC, and others are seeing a gradual decline in usage.

So what do you do if you are someone who invested quite a bit into the big server-side framework space? You can slowly become irrelevant, or you can get moving and learn.

But what to learn?
what_to_learn
There are so many crazy JavaScript libraries, frameworks, tools, servers, etc. Where do you start? Backbone? Node? CommonJS? JQuery? Angular? Dojo? YUI? GWT? MooTools? Search on Github? Review comparisons on Wikipedia?

Obviously a huge consideration is will it be useful? Will you actually be able to do anything cool with it? Especially as regards to your career? You’d hate to invest in something that fizzles out and disappears in a year or two.

It is impossible to either predict or assess which way to turn in such a landscape, although Node.js seems like a pretty safe bet at this point.

Applying the principle of leverage, though, I would choose to learn JavaScript itself really well instead of any particular framework, library, or tool wrapped around it.

Why is that?

Well, partly because frameworks and servers and so forth are here today and gone tomorrow, but JavaScript itself is obviously here to stay for awhile. Mostly, it’s because JavaScript is one thing that cuts across all these other things. In that way, it becomes leverage. You can learn a single framework, tool, or library, but you run a huge risk that way. All your eggs are in one basket. Take the example of JQuery. You can do extremely cool things with a few lines of JQuery. But later when you want to learn something in Dojo, those three lines of JQuery you know aren’t that useful, unless you are someone adept at seeing abstract comparisons.

On the other hand, knowing and thinking about the underlying JavaScript for a cool JQuery snippet can be quite enlightening and that knowledge can apply to many other frameworks. This is the idea behind the popular book Secrets of the JavaScript Ninja.

Leverage can be leveraged
So the answer to the question, “what to learn?” is: “anything that can be leveraged.” And that usually leads you to something where you are going to have to go deeper and take more pains at first. But later you will save yourself a lot of trouble.

Most coders can get something working by searching Google a lot and asking a couple questions on Stack Overflow. But there’s a certain deep dive coders should be taking now that will prevent the need for that later.

The breakthrough for me in getting over the Google-and-code, Google-and-code cycle was employing this idea of leverage. How do you choose what to learn? You choose the next thing based on its ability to be used as leverage. Because later, you are going to want to leverage your leverage. There’s still a time and place for Google and Stack Overflow, but they aren’t, and shouldn’t be, development tools. At this point, I hardly use Google or SO at all in a typical day of writing code.

Picking up Speed
speed
The way you know it’s working is when you notice that picking up new ideas happens more quickly. I’m not saying that I am there yet. Not by a long shot. But I have seen my time-to-learn start to reduce. I think this is something that should be mentioned alongside deliberate practice. Deliberate practice is predicated on the idea that you know what you are supposed to be doing and you are just trying to exercise that muscle to make it stronger and faster. Leverage also makes you stronger and faster.

Actually, perhaps leverage should be emphasized first, before deliberate practice. It seems like a natural prerequisite.

The End Game
The point is, I’m trying to guide decisions about what to learn in my craft by continuing to employ a principle that I think has really helped me in the past. I’d like to somehow refine and solidify this idea. I know I am probably not communicating it completely or even thinking about it in quite the right context yet. But I know it works. If anyone else shares this mindset, or knows of places where this principle maybe has been covered already, just under a different term, then please get in touch. I’m eager to flesh this idea out further.

Leave a Reply

Your email address will not be published. Required fields are marked *