Simple vs. Complex
Recently I’ve been thinking about learning new things. A good portion of my life is spent learning things I didn’t know before. I’m a developer so this usually means learning new facets of programming languages I use, finding better techniques to accomplish tasks, discovering other ways of looking at problems and adding new tools to my toolset. Technology changes so fast that if you’re not learning you’re falling behind.
Some things are easy to learn. They’re simple and don’t require a whole lot of mental energy; they just require the time to research what someone else did and why. Trial and error implementation will get you far.
Look at what you’re trying to do, and then do it.
You probably did it wrong. Adjust and try again.
Do this until you’ve learned what you’re trying to do.
Other things aren’t so easy to pick up. Usually these are bigger challenges with lots of new parts and ideas that work together to function. They may be made up of A, B and C, but you can’t understand A or B without also understanding C. Likewise, C makes no sense without A and B. You have to bounce back and forth between A, B and C, learning and retaining bits and pieces, figuring out how they connect with each other until you can finally see the whole picture. And then you move on to D, E and F.
Thinking in the Abstract
Of course, this is all just abstract. Here, A, B and C don’t really mean anything. In life they can themselves be simple or complex. There can be two pieces to the puzzle or two hundred. And each piece can itself be complex or it can be simple. Any complex problem is made up of two or more of these pieces.
It’s all abstract, but that is appropriate, because often to figure out complex problems, you have to think in the abstract. You have to be able to suspend reality—ignore the concrete—for a little bit to grasp the concept, and then loop back around, transforming your abstract understanding to practical application.
A Time to Learn
What I’m really becoming fascinated by is the idea that there may be times when you can learn new, complex things that, at other times, you could not learn. I’ll give a few examples:
I Wanted to Make Videos
My first job out of college was video production. Over the course of four years I made hundreds of short, graphic intensive videos. I became pretty good1 at using After Effects (AE), a popular video and effect compositing program. Now what AE does isn’t really important. What is important is that before I was good at AE, I was afraid of it. For years.
I had dabbled in video production for a long time. My earliest videos were edited by connecting two VCRs together (four-head, of course) and cuing up the playback VCR to before the cut in, and taking the record VCR out of record-pause mode at just the right moment to capture the new. I even cut a few projects on Final Cut Pro version 1 or 2. I had a knack for video.
But After Effects was different. Many times, over two or three years, I would open it up, look at the interface, drag in a couple of video clips, figure out that I still didn’t know what I was doing and then quit for a few months.
Then finally, one time I launched AE, loaded some video and got to work. What I produced wasn’t anything to write home about, but I produced it. It just clicked. I was able to use AE all of a sudden.
It wasn’t that I wasn’t determined all of the times before—I was. But something was different that time. Somehow my mind and the project and the goal and whatever else were all aligned in a way that allowed me to understand something I never could before.
Then I Became a Developer
Video production was something of a fun distraction for me. But I’ve always had a natural inclination towards programming. I wrote my first website at fifteen. I used two magazines, each with incomplete HTML snippets, and I stared at both of them trying to form a complete picture so I could do something similar. And it worked.
And when Apple announced that they were going to allow third-party apps on the iPhone, I promptly signed up and was one of the first accepted into the program. I was excited, I had some great ideas2 and I intended to be the first to market with them.
But then I opened Xcode and looked at some sample code for a few iPhone apps, and all I saw was gibberish. Almost nothing made any sense to me. I tried and tried to understand, to follow the—then very limited—tutorials I could find, but it was to no avail.
This happened multiple times for more than a year. It was After Effects all over again. I felt defeated. But unlike my experience with AE, this time I *should* have understood what I was looking at, but I didn’t.
Of course, it took weeks to really get the grasp of it, and it took me two full years3 to write my first good app. But that whole time I was understanding, I was getting it. But, like my experience with AE before, I had tried—earnestly tried—several times before, failing each time until something finally broke through.
The Right Place at the Right Time
There are more examples—learning version control is another big one, I struggled for years before it finally made sense—but I think the point has been made.
Many of my skills I’ve taught myself—especially professional skills. I’ve developed countless abilities, and most came to me naturally. (There is, however, no discounting the many life and other skills that my parents and teachers taught me along the way.) It was confusing and disheartening that the ones that I struggled most with were in areas that I already knew and understood fairly well. After all, I was a capable video editor when I tried to learn After Effects; I was an accomplished developer when I struggled for a year with Objective-C and for years with version control.
This has me thinking that there may be times when I am able to learn things that at other times I am, for all intents and purposes, incapable of learning—or at least learning on my own. I don’t know if this is true for others. Maybe some. Maybe all. But it is true for me. There is an element of “being in the right place at the right time” that has had a profound effect on what I now consider my best abilities.4
But for all the things my experiences have shown me, it’s that perseverance pays off. Keep trying. If you have to take breaks, that’s fine. Take some time off. But don’t give up. Inspiration comes when you least expect it.