What do we know?

What do we know?

I’ve always been interested in how our brains work. The brain is a very powerful computer, and we still don’t really know just how it really works.

As a writer and a programmer, I sometimes experience a “wow” moment. Today, I had one of them.

I am a proud Ruby programmer; Ruby saved me from Perl, and I can only be extremely grateful to Matz for creating it. I can say now that I “know” Ruby (even though I don’t really know it as well as I would like). And yet...

And yet, I don’t. At all.

My brain knows Ruby. I can sit down, enter the magical “programming space” and simply program; however, my awareness of what is actually happening is very limited.

The “wow” moment came from me thinking “there are two ways in Ruby to define a block. One is the inline way, and one is the longer way. Now, how do you do that... either way?”

This is a very, very, very, basic question in Ruby. Anybody who has used it for more than 6 days knows how to answer it.

But I couldn’t.

I really, really couldn’t, because I simply didn’t know.

I decided to torture myself a little more, and said to myself “You can always string several instructions in the same line using a separator. So, what is the separator in Ruby?”

Again, I had no idea. I couldn’t decide if it was the semicolon or a colon.A few minutes later, I gave in: opened my laptop, ran irb (Interactive Ruby), and typed instantaneously and without hesitation:

5.times do |n| puts n; puts "Again"; if n == 2 : puts "TWO!" end; end
5.times { |n| puts n; puts "ah!"; }

I read what I wrote, and all of my questions were answered.

So, do I really “know” Ruby? Maybe not. Maybe programming is somehow wired into my brain, in a place I can only really access when I enter my “programming space”—which is frustrating, because I cannot get rid of the feeling I don’t actually know anything.

If you’re a programmer, do you experience this phenomena?



Terry Hancock's picture

Well, not that exact problem. But certainly this sort of thing happens.

I routinely can't remember how to spell a word that I can type without thinking about it. In fact, that's the key: I don't have to remember how to spell it, precisely because I can type it without thinking about it. In other words, the knowledge has moved out of my consciousness and to a lower level of processing.

In a sense, that means you actually know it better, because you don't have to waste time thinking about it. The degree to which a programming language makes this easy for you is a sign of its "intuitiveness" and hence its ability to help you express yourself better.

Because, just as with writing, if you have to think about every word (let alone every keystroke), you lose your grip on the big picture.

Mind you, I can usually remember the spelling if I just pretend to type it, and that might well work for you, too.

Tony Mobily's picture


I am not alone with this!
I have _no_ idea how to spell anything.

When I was 4, I had an accident at home and I cut all of my right hand's tendons and nerves. After much re-hab, my hand healed. Then, when I was 14, my right hand stopped working. I couldn't write for more than 30 seconds without getting unbearable cramps. And, my hand would decide to close into a tight fist, completely out of my control.
I learned how to spell... typing. Give me a piece of paper, and I just have no idea. The only way for me to remember it by imagining a keyboard in front of me, and then follow the movements of my fingers :-D

I never thought of it as writing going to a different level of my consciousness...!


Author information

Tony Mobily's picture


Tony is the founder and the Editor In Chief of Free Software Magazine