Wednesday, December 14, 2011

Taking a Breath (NoVideo Day 8)

I've spent the past two days diving into my programming project. Technically, it was two projects - The last two exercises in my programming textbook that I hadn't finished. But the point was not the projects themselves, but to put the work into finishing the textbook itself and to move on to other things.

It was a very rich two days, spent using a rhythm of life I don't normally use. It was an experiment, and it was a success - again, not so much for finishing the projects as much as making it through and learning about myself.

I wanted to see what it was like to completely focus on something until its completion. There is a lot of madness in that, some might initially say. I don't mind, because I tend to miss the mark way in the other direction, the one of false starts, distractions and a general letting of things fall to the wayside. It was a good change of pace for me to commit to 7 - 10 hours a day focusing on one thing.

And the projects were not easy. I am still earning my programming wings, and I made a lot of mistakes that served as a focus for a lot of frustration. A popular thought flashing through my mind during the frustration - that is, periods of restlessness, resistance, wanting to get away, general anxiety - a popular thought was: I'm taking too long. I want this to be over. I have learned how to be patient in a lot of situations, but I see clearly a deep-seated impatience at my core. Maybe it's not best to label it as impatience so much as rejection of what I'm doing. This is the restlessness that drives me to find distractions, to want to get away, to want to do something else.

I noticed something very clearly though, something that this ties into the insights I garnered reading The Ramen King ang I. The thought that precedes the sense of restlessness, wanting to get away? "I can't do this." It's very subtle. It's not a voice in capital letters screaming the thought into my mind. I experience it very subtly, almost on a purely physical level. A very strong feeling: I can't, I can't, I can't. This is "The Voice" from Ramen King. And, yes, it precedes a feeling of anxiety that makes me want to bolt, to avoid what's going on.

I can't rest on my laurels and say I've figured it all out - I still have my insight. But this has been a good, solid, direct "realizing" of the idea that self-criticism leads to a sense of anxiety and behaviors that center on avoiding that anxiety.

I had the experience yesterday of just continuing to work through it - that was the commitment I had made to myself, anyway - and I found that the idea that "I can't do it" would quickly melt away. I shouldn't get too excited about this idea, but apparently once this thought melts away I can usually do the thing I thought I couldn't do in so much dispatch that it makes me laugh.

I'll leave with an example. I had intended to be finished with everything yesterday by around 3:00 and meet Penelope for dinner a few hours after that. 4:30 rolled around, and I realized there was a huge flaw in my "centerpiece" algorithm - the algorithm that made the whole program work. I make a point of going outside every day, and 4:30 is about the last time I can go out and expect there to be a reasonable amount of daylight left. So I went out walking, trying to figure out what to do. I was thinking of just ending, going to dinner and finishing later. I also thought about the eventual way I would solve the problem. There were two possible ways - one would take me less time but make the program much less efficient, the other would take me more time to code but be more efficient, tighter and therefore more beautiful - a better piece of work. I was leaning toward the former, as time was dragging on, and I was feeling impatient to be done with everything. As I continued walking, I realized that, as sensible as cutting and running can be in many situations, I was trying to excuse myself from working through the problem I had committed to complete. Maybe it would take me into the next day (today), but I was going to do it, damn it, and do it the right way.

I got home and found Penelope was ready to meet. I immediately began to work as we slowly communicated by e-mail. I even suggested that we cancel, because I wasn't ready. But, before I even knew it, it was done. I had solved the flaw in the algorithm in record time and, almost miraculously, it began to function beautifully. I asked for 15 minutes, and, in that time, I finished the last major task swiftly. This one seemed to work miraculously, also. I say miraculously, because I had just spent the past two days or so slogging through mistake after mistake, reworking and debugging for hours. And here I was, working with the most complicated parts of my program - really, the most complicated computations I've ever designed - and they just worked.

I hadn't finished the program by the time we met for dinner, but the major work had been finished. Of course, there was no miracle - I just stopped wasting time and got to work. Or maybe that was the miraculous part?

I'll leave it at that for now. I feel like this post ended up way longer than it needed to be - but I'm going to let it stand. I'd like to really convey how much of a growth experience programming can be - but I'm concerned that it might be boring to other people. Some feedback would be appreciated, of course. At any rate, I think I'm going to tackle this same story from a different perspective on my other blog, once it's up.

Good day, all.

You can do it.

No comments:

Post a Comment