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.
Recent Comments