Skipping and Jumping
As with pretty much everything else I do, I’m self-taught in computer coding, so figuring things out sometimes takes a while. The animated illustration in my post “Crossing a Line” looks simple, but writing the JavaScript that makes it work took three days. (Part of the difficulty was that it has randomness built into it, so that in the diagram — as in life — the action never repeats.)
For the most part, I enjoy the challenge, but there are times when it’s immensely frustrating. There will be a block of code that’s relatively simple and absolutely ought to work, but doesn’t. I’ll stare at every character and say, “Yup, that’s right,” and retrace the logic in my head and say, “Uh-huh, that makes sense,” and yet the code just stares back at me. I could blame this on my own ineptitude, except that professional programmers tell me that they encounter the same thing.
What amplifies the frustration is that I know that eventually I will solve the problem, since I always have in the past. The answer is right in front of me; I just haven’t discovered it yet. At times like that, I often wish that I could just skip the useless hours and jump ahead to the time when the problem has been solved, so I can get back to doing productive work.
The idea of jumping ahead in time has always had special interest for me, because it feels almost tangible: If I know that a particular moment in the future is going to happen, why can’t I just go there? We’re all accustomed to cuts in movies, where the time and place change in an instant, so I imagine it shouldn’t be too jarring for it to happen in real life. I don’t want to change the future; I just want to do some judicious editing.
But an interesting philosophical problem emerges when I ask myself what it would actually mean to jump ahead in time. The jump isn’t something that I could perceive while it’s happening, since it would be instantaneous. I’d only be aware of it once it’s happened. Therefore, “skipping ahead” is something that can be experienced only in memory: I’d remember sitting at my computer staring at a block of code that’s not working, and then seeing a moment later that the code has been rewritten (most likely in a stupidly obvious way) and is now working smoothly.
In that case, it seems like “skipping ahead” is an illusion that could actually be accomplished retroactively. If we imagine that there were some way to surgically operate on my memory so that the problem-solving hours could be removed, my post-operative experience would be indistinguishable from one in which time itself had somehow been edited. From my perspective, it would appear that I’d actually jumped a few hours into the future.
Of course, that raises the question of which person is me — the one who does all the frustrating work and then has his memory operated on, or the one who experiences a painless jump? Ideally, I’d want to identify with the latter me, the one who doesn’t even recognize that the former me (or at least a few difficult hours in the life of the former me) ever existed.
But there’s no reason why I shouldn’t equally identify with the former me, the one who actually did the work. That me has already spent the time fretting and experimenting and eventually solving the problem, so how would it benefit him to have that time surgically removed from his memory? He’s already at the point where his memory would resume, so why not just get on with further coding?
So it turns out that the operating-on-the-brain solution really is no different from the idea of physically jumping ahead in time (whatever that might mean). In either case, someone is going to go through the mental agitation that leads up to solving the problem, and either way, that person has to be me. Consider that fantasy dashed, then.
As a postscript, have I mentioned that I was a philosophy major in college? Engaging in philosophy requires conducting this sort of thought experiment all the time — going around in circles as you try to come up with an answer to a philosophical question. If I’m going to have this frustrating experience of working on a problem, I’d rather do it with computer code, because at least I have something concrete to show for it at the end.
Laughing at how different you and I are! I’d much rather go in philosophical circles, likely because I save them for night hours when I can’t sleep. It gives my brain something interesting to do that isn’t speculating that the persistent bursitis in my left hip is really a tumor in the joint. And if I happen to drop off to sleep while wrestling with the question, there is no loss because I haven’t forgotten the simple-but-ingenious solution to the coding problem. It doesn’t keep me awake like any question tied to work product would. Sometimes the philosophical ponder bleeds on over into my eventual sleeping dreams with the magical logic that obtains in that universe. With wondrous insights.
You and I sure are different, Leesy. Those philosophical conundrums that lull you to sleep are exactly the kind of thing that keep me awake!
As I was reading this, I kept thinking, no wonder Mark was a philosophy major and I laughed out loud when you acknowledged it at the end. For me this is more about productivity than identity – I want those hours of my life back to do something else with! Have you read the Fermata by Nicholson Baker? The protagonist stops time – but he ages along with everyone else.
I don’t worry so much about the lost time. I’ve spent so many hours of my life doing useless things that a few more are merely a rounding error.
I haven’t read The Fermata, but it sounds like I should!
Q. What kind of code change has proved successful? Was there something dyslexic about the code as written in the book?
– – –
Space-time … Time: “the final frontier.”
Just “become one” with your dilemma.
(Is that Buddhist?)
“There is only do (Yoda) .
What is this book you’re referring to? I don’t get my code from a book (although it would be cool if there were a book containing every possible line of code that someone might want to write). Usually, the problem turns out to be not with the specific block of code that I’m looking at, but with the larger context in which the code appears — a “not seeing the forest for the trees” kind of thing.
I must have been thinking of this book on my shelf:
“JavaScript” Fourth Edition, by Don Gosselin, Thomson Course Technology, 700 pp, 2008, $82.
Probably, it is not exhaustive, but it contains much code.
Forest from the trees, meaning the ordering of, and layering of, codes, among other things?
You’re actually doing it. I almost pursued it but never did. I probably should.