Why trust your instincts when you discover new tools?02 Feb 2011
Sometimes you come across an idea, tool, or concept, and something sparks in your mind telling you that thing will pay off significantly down the line. I really believe you need to pay attention to those little inspirations. They are not nearly as random as they seem at the time.
Several years back, I was reading a website and I came across a bit of info about Python. At the time, my programming background was mainly Fortran and Matlab. When I read an overview of Python, I was hooked because it was open source and had dynamite numerical libraries. I didn’t have a pressing need with anything I was currently working on, but I knew in the back of my mind that I could leverage this in huge ways in the future.
When this happens, though, I usually have two logical, dismissive reactions: (a) that the idea isn’t worth much since I only encountered it randomly and (b) I don’t have time to pick this up right now. But do these reactions really stack up?
First, it is not random. The fact that I encountered Python that day might have been random, but my recognition that it would help me was not. I have spent years storing and developing a mental framework for what I do, so when something seems relevant, it probably is… even if its relevance is not immediately obvious. Trust this filter.
Second, it’s true that you may not have many hours to devote to learning something new. However, when you encounter a new paradigm, you have to evaluate the facts and ask yourself how quickly this new tool will pay for itself by increasing your efficiency. If you are familiar with both Fortran and Python, it should be immediately obvious that my foray into Python would pay off handsomely. You might could say that I didn’t have time not to learn Python.
So, I went with my gut and started learning Python. Here’s what that looks like for me:
Whenever I need to numerically solve a problem, I do it in Python instead of languages I’m more familiar with. This forces me to replace my working knowledge in those languages with the Python equivalent, which is usually more straightforward in comparison.
I try to take advantage of downtime at work in productive ways, so when I have a spare hour I’ll sometimes try to learn how to do something new in Python (I keep a list in Omnifocus of Python issues or questions to look into).
I keep my ear to the ground and listen out for new developments with Python that would impact my work.
In other words, I’m not devoting all my time to a new idea, just advancing its growth over time when I have the opportunity. Already, Python has worked wonders in a number of problems (the latest being an awesome regex/parsing exercise for my PhD), and I only expect this effect to increase.
Should you drop everything for every new idea or software? Definitely not. But don’t dismiss that spark in your mind when you encounter something with massive potential.