← See all posts

Learn Harder Things

When you take the time to learn something new on your own time, it’s better to learn things that are conceptually harder than, or paradigmatically different from, what you already know, rather than something that’s adjacent. For example, in software engineering, if you already know Ruby, learn a functional language like Elixir, or a lisp like Clojure — doing so will expand your abilities much more than learning, say, Python, which is conceptually very similar. In the gym, if you’ve been training traditional weight lifting, learn functional strength exercises rather than yet another movement with barbells and plates.

In most cases, the harder or foreign skill expands your understanding of what you already know. The insights get back-ported — functional programming experience leads to better object-oriented code; functional strength leads to a better deadlift.

Trust yourself to be able to learn adjacent skills when necessary. If you already know Ruby and find yourself working on a project built in Node, trust that you’ll be able to learn what you need on the spot. In the meantime, learn something harder.