Bicycle skills

A while back I wrote about learning things just-in-case or just-in-time. Some things you learn in case you need them in the future, and some things you learn as needed.

How do you decide whether something is worth learning ahead of time, or whether it is best to learn if and when you need it? This is a common dilemma, especially in technology. There’s no easy answer. You have to decide what is best in your circumstances. But here’s a suggestion: Learn real-time skills and bicycle skills in advance.

A real-time skill is something you need for live performance. If you’re going to speak French, you have to memorize a large number words before you need them in conversation. Looking up every word in a English-French dictionary as needed might work in the privacy of your study, but it would be infuriatingly slow in a face-to-face conversation. Some skills that we don’t think of as being real-time become real-time when you have to use them while interacting with other people.

More subtle than real-time skills are what I’m calling bicycle skills. Suppose you own a bicycle but haven’t learned to ride it. Each day you need to go to a store half a mile away. Each day you face the decision whether to walk or learn to ride the bicycle. It takes less time to just walk to the store than to learn to ride the bicycle and ride to the store. If you always do what is fastest that day, you’ll walk every day. I’m thinking of a bicycle skill as anything that doesn’t take too long to learn, quickly repays time invested, but will never happen without deliberate effort.

When you’re under pressure, you don’t learn bicycle skills. You don’t make long-term investments, even if the “long-term” is 30 minutes away. I’ll just walk, thank you.

What are bicycle skills you need to learn, things that would save time in the long run but haven’t been worthwhile in the short term?

33 thoughts on “Bicycle skills

  1. A classical case is automation vs. outsourcing.

    Many things that people delegate or outsource could be automated, if only they spent more time on it initially.

  2. The obvious one for programmers is editor skills. I invested the time to learn Vim many years ago, and I have to confess, it was painful at the time. But it has paid off tremendously in terms of productivity.

  3. Learning foundational skills before you need them is also quite helpful because it gives you a better base with which to acquire new skills on the fly.

    For example linear algebra, which provides background for acquiring other knowledge about say Markov Chains, SVMs, and PCA. Without the linear algebra knowledge (i.e. eigenvalues, least squares, SVD) understanding these concepts are more difficult.

    In the programming world having knowledge of basic algorithms and data structures would be considered foundational – (linked lists, binary trees, merge sort, etc.).

    I agree with your “real-time” and “bicycle skills” thing, and perhaps “foundational skills” are in some sense “bicycle skills”, but if they are they are a special subset.

  4. Craig: I completely agree about foundational skills. These require a big investment but have an even bigger return. I’ve spent a large part of my life acquiring foundational skills, and I’m glad I have.

    My regrets are more along the lines of smaller investments, such as programs I wished I’d learned to use sooner or better. I knew linear algebra was worthwhile and that it wouldn’t go away. Technology is less certain. But there are things I find myself using 10 or 20 years later that I didn’t think I’d still be using.

  5. Note that when learning to ride a bicycle you can use training wheels and you can also work on your balance with your feet pushing the ground instead of the pedals.

  6. For developers, touch typing. I get frustrated when sitting next to (experienced) developers who are still doing the 2 finger look and stab on the keyboard.

  7. I’ve been investing recently in understanding the foundations of density functional theory and the common approximations and functionals in use, as well as the dominant algorithms utilized (at least those in the open-source packages). It’s a big project, but I think it will pay off handsomely.

  8. To balance this out, maybe I should write a post “Things I’m glad I didn’t learn.” There are plenty of technologies I’m glad I didn’t invest in.

  9. Learning unix shell. Never did it, whacking through with the basic commands in blissful ignorance.

  10. > What are bicycle skills you need to learn, things that would save time in the long run but haven’t been worthwhile in the short term?

    Full-blown regexps, and Emacs regexes in particular come shamefully to mind.

  11. You’re forgetting another property of riding a bicycle, one that seems to fit nicely into your point – the skill never goes away!

  12. I’ve always felt that one of my greatest weaknesses is struggling to identify the “bicycle skills” I need to learn. I’m still working on getting better at it. Great post.

  13. The two categories are pretty mixed up. If you’re a programmer, shell skills and editor skills are “bicycle skills”. But if you work in sysadmin, the same skills are “real-time skills” — you’re going to be called upon to use them under time pressure at three in the morning when there’s no time to stop and look things up.

  14. When I first started reading, I first thought you were going to talk about the skills needed to fix a bicycle. It occurred to me that these skills are distinct from your definition, but they’re still very interesting. If you take time before setting out to prepare (learning techniques and bringing repair tools) then you can reap huge returns if/when something goes wrong. I’m not sure what instances of these might occur in software development though.

  15. I wish it was easier to identify bicycle skills when you do not already have the foundational skills in place to discern what are bicycle skills.

    Applied statistics is a bicycle skill that would be useful to me, but as a classically trained CS person, it’s hard for me to say if I should, for example, invest time in structured equation modeling (by diving into Boller’s textbook) if my end goal is better understand applied statistical models.

    In a day-to-day sense, I have often felt that people like myself (strong foundational CS knowledge and skillsets) should do more to develop bicycle skills in a applied domain, where you can build appreciated and needed domain specific knowledge. But coming at a new field (or side skill) I think it is challenging to correctly identify what skill that doesn’t take too long to learn, quickly repays time invested, but will never happen without deliberate effort” you should focus on.

  16. The skill to mater something, to get things done. To be able to master any subject that takes my fancy. And to pick subjects that will help myself and others I care for in the best way.

  17. ” will never happen without deliberate effort you should focus on” Well said Tom-B.

    And a bike is like any other skill. You seem to go slow at first while learning, and can fee like giving up. But it pays to push through this and then you accelerate your progress.

    On my mountain bike recently I learnt slow speed balance. I learned it on the road and in my back garden, just trying to balance while moving as slow as possible and even do a track stand. Progress was slow at first.

    But now it has paid off in many aspects out on the trail. I can get through / over really tricky obsticles and ride over narrow logs crossings streams. And leave my riding buddies behind much more often than before.

    So yes it was a foundation skill.

    Currently learning how to look over my shoulder without veering which will make me safer on the road!

  18. One set of skills I’d love to see bicyclists learn is that a STOP sign means, you know, stop. Cessation of movement, and then proceeding when safe and yielding right-of-way. Same goes for red lights.

    There. Two incredibly important bicycle skills that the vast majority of cyclists do not possess.

  19. Hi,
    On the non-technical side of world, things like cooking your own food than eating out everyday(could easily reduce your food expenditure to half if you’ve lived in States or by a tenth if you are shifting base from a developing world); driving a car (but that’s again exactly like learning a bicycle).

  20. When you were a Baby, Walking was a ‘long-term’ goal? Is walking foundation for biking?

  21. _mind had a good point: what skills are like riding a bike in that they require little maintenance once learned? I suspect many of them will be muscle memory or body awareness skills like bike-riding. I’ve noticed that a crude level of juggling is like that for me: it took some time to get my first 3-ball juggle, but since then I’ve always been able to pick it up and do the same thing with almost zero maintenance over the years. Skills like swimming strokes or driving a manual transmission are like this too, at least for me.

    Programming languages, less so.

  22. I really should learn backbone.js. I’ve been checking it out and read about it quite a bit, but I have still to actually build something with it.

  23. In the statistics/research world, a lot of people use excel (or excel-like tools) to analyze their data. To just plot a few figures once in a while, this is certainly faster than taking the time to learn some more (powerful? complex?) software like R or Matlab or what-not and going from there.
    But, once the initial learning hump is passed, data-analysis using the statistical packages ends up being considerably faster than excel (plain excel, no VB or anything like that, that’d also fall into bicycle skills).

    In general, any skill/tool that helps simplify/shorten a common task but takes a decent amount of time to learn (relative to the task) would be a “bicycle skill”. The original post says a “bicycle skill” needs to be learnt fairly quickly, but this can’t be right: If I can spend 5 min to shorten a 20 minute task to 10 minutes, why wouldn’t I do so? Even if I were short on time, I’d learn the skill (in fact, it’d immediately SAVE time).
    But bicycle skills, at least according to the discussion so far, aren’t like that. They have to take longer than the task they simplify. You can’t learn biking or R in 30 minutes, at least not well enough to get an immediate repayment on the time lost learning.

    I think the real trouble with bicycle skills is that, like all long-term investments, they rely on a good prediction of the future (incidentally, this makes me feel queasy when recommending bicycle skills to others: not only am I assuming something about their current lifestyle, but their future lifestyle as well).

    These questions always seem to pop up with bicycle skills, stopping us (ok, me) from learning them (rightly or wrongly):
    Are you going to repeat that task often enough to make the time spent learning the skill worth it?
    (This can be obvious to answer if the task is scheduled, like the store walk, but non-trivial if not, like, say, having to analyze data.)
    What if a better skill pops up? (In the store example, the store could be planning to offer delivery)
    What if your lifestyle changes and task doesn’t make sense anymore? (You happen to move to the city to an apartment building with a grocery shop on the ground floor.)

  24. On a different note, I learned to drive the car in a very similar situation. Every Morning I had the option to drive to work and save half an hour or take the bus.The rainy days also actually forced me to drive.

  25. We tend to readily know what we are doing often. So areas to possibly improve will come up quite easily.

    It’s worth researching the kinds of skills you could learn that help in your field (depending on how often you do a certain task). Ask on the likes of programmers forums and find a good programming book.

    Then just set aside so many minutes in the day to learn it. Over time you will see if it pays off or not. If it does not pay off try and see where your research and reasoning went wrong – and you can get better next time.

    Nice comment from Pierre, almost a blog itself.

  26. “I think the real trouble with bicycle skills is that, like all long-term investments, they rely on a good prediction of the future”

    I say give it a go and start learning the new skill, and then when learning you will get a better idea of what it is all about. There is a fair chance your instinct will also get a much better idea and will after a while tell you to stop learning the skill if it is no good. As you probably know it just comes over as a feeling. In cases that are complex to predict instinct is a very good way of doing it. But it does need the info to work on!

  27. I’ve recently been dipping my toes into logic and constraint programming, and looking back knowing it would have saved me some effort in the past. I’d say knowing the basics of how to use a constraint programming library for your chosen language will likely pay off.

  28. Another thing to point out: in my experience, I drastically underestimate how useful a skill will be until after I’ve learned it and start finding unexpected ways to apply it. To me, this is a positive corollary of the “man with a hammer” problem.

Comments are closed.