Thursday, March 14, 2013

Not Knowing

For a variety of reasons, software has always come easily for me.

When I first started learning software, I expected anything but that experience. I'd never been good at math. I'd done poorly in school. I had a hard time reading and I didn't write well.

As I began teaching myself the UNIX shell, a basic line editor, and the use of regular expressions,  I had low expectations. I knew so little about software that I had no reference points against which to gauge my progress. Besides, I was so enamored with what I was learning that it didn't occur to me to measure.

It was only when others saw and commented on the product of my work that it began to dawn in me that I might actually be pretty good at it. Even as I was skip-leveled up the ladder of software employment titles, it didn't occur to me that I was particularly good; I just saw myself as making up for lost time.

Later, managers would give me the work that had previously been assigned to teams of ten-to-fifteen people with the expectation that I would complete it faster.

I would.

Yet even then, I didn't see myself as particularly good. I just saw the team as particularly bad.

It's only recently (i.e., thirty years later) that I've started to see that I might be somewhat exceptional when it comes to software. It's a funny thing to articulate as such because I've always thought about software being easy, not me being good. I mean, software is infinitely easier than music, right?

So, let's say that software isn't generally easy, that most people would have trouble writing an operating system or an optimizing compiler. Why does it come easily to me? This is the question I woke up with this morning.

I don't believe that it has anything to do with your usual suspects, e.g., intellect or visual acuity or perseverance. Sure, these attributes can make a difference. However, I know many people with them that still can't begin to do the kinds of things that I can do with software and certainly not as quickly. (BTW, if you don't know me that well, all this may sound like a load of horse dung.)

Nope, I it's something else.

OK, here goes. The key to my being able to do things in software that would take others who are really good at software about ten times longer is this: I'm completely comfortable not knowing.

That's it. I'm comfortable not knowing a language. I'm comfortable not knowing exactly how I'm going to do something. I'm comfortable not knowing if I can do something. I'm comfortable not quite knowing what the something is.

People who do software tend to cling to knowing. They want to know the requirements. They want to know the dates. They want to work with tools they've used for years. They want to know the rules. They're comfortable only when they know. I'm comfortable not knowing. Moreover, I actively seek situations where I don't know, when I have the opportunity to learn with a deadline.

Yup, that's it. The real difference lies in thriving in, actively seeking, and moving forward in situations where you have to adapt in the moment to whatever comes your way. It's more than a preference. It's a skill that can be practiced and learned. It's a skill that transcends modes of expression.

For example, I often perform with musicians with whom I've never rehearsed, playing songs I've never played (and in some instances I've never heard.) I love those situations and prepare for them.

How do I prepare?

Not by asking for song-lists and learning songs ahead of time, but instead, by spending time playing songs that I've heard on the radio but never learned. I practice playing what I don't know.  Similarly, rather than learning a new language and then developing a program, I develop a program to learn the language. I get the basics of the language and then, rather than looking up how this or that works, I assert based on what I know already. It's akin to playing by ear.

I'm going out on a limb here, but I would suggest that learning to operate well in situations where you don't know (what, where, when, how, etc.) may be the single most useful skill one can acquire.

Just a thought.

Happy Thursday,

No comments:

Post a Comment

Read, smile, think and post a message to let us know how this article inspired you...