in Search
Welcome to Neopoleon - Sign in | Join | Help
Navigation: Home | Forums | Galleries

Whole-Brain Coding

I was reading a post over on Ralph Loizzo’s blog that touches on some of the up-in-the-air aspects of coding, discussing OOP in particular.

My favorite bit was this:

If I break up an object into tinier and tinier parts, at what point do I stop?

[Yo: I’m about to get tangential to Ralph’s post. Read his post for the main argument – he just spurred some thinking up in my noggin that I want to share with y’alls.]

I love these sorts of problems. To me, this is where textbook learning stops and experience and intuition have to take over. One of the great things about coding is that, to be a good/great coder, you have to engage many different parts of your brain.

When I was growing up, I remember hearing people say things like, “If you like computer programming, then you’ll love math.”

I always thought that these people were absolutely nuts. While there is something intrinsically similar about certain types of math and computer programming, the two are different in many more ways than they are similar.

With math, and I’m not talking about the crazy number-theory math philosophy “Do numbers really exist?” side of things, but with the applied stuff, there are correct answers. You’re either correct or you’re incorrect.

With coding, the best you can hope for is to do something well. With so many different ways to effect a single outcome, it’s up to some very right-brained sensibilities to determine if you’ve met your goal, as there isn’t anybody (except maybe Chris :) ) who can tell you if you’re right or not.

If you ignore your right-brain, and I’m talking generally about abstraction and aesthetics, then you can slap some code together that might work, but it also might just be one hell of a maintenance nightmare.

Then, focusing only on the right-brain, you might, again, have something that works, but which is so utterly inefficient and personalized that you’re the only person on Earth who could make sense of the code and maintain it.

I love the need for whole-brain thinking while coding, and I think it’s one of the reasons developers tend to engage in so many religious wars. Just look at the varied responses in my Python posts (here and here) – people make great arguments, but are they right? I don’t think we can even judge them like that, but the ideas are nonetheless very interesting.

And that’s exactly what Ralph is dealing with. He has his left-brain engaged in providing the logical, linear bits of the solution, and now he’s working on the feel side, the right-brained side, to figure out where to stop in his abstraction.

We’re a bunch of lucky bastards. There are few jobs on this planet that let you use so may bits of your brain on a daily basis. You sure as hell don’t get these kind of experiences working at the 7–11. When someone slides a pack of Ho-Cos across the counter, you don’t get to think about how you’re going to solve this problem.

But, as a coder, you’re still working, even when you’re tipped back in your chair and staring at the ceiling, lost in thought…

Published Monday, March 07, 2005 10:16 PM by Rory

Filed Under:

Comments

 

Aaron said:

Of course, nothing is more satisfactory then staring at the ceiling for hours on end, then finally coming up with a solution to the problem. We get so overwhelmed with joy, that while jumping up and down, we show your wives how COOL it is, the whole time she is thinking how much she doesn't care, and what a loser we really are.
March 7, 2005 10:58 PM
 

Bob Reselman said:

Don't support the right-brain-left-brain theory, never have. I have one brain and maybe a variety of consciousness(s) and a vast subconscious, which may be running the whole show anyway. Just like the dolphins (not Miami, rather: http://www.roninpub.com/SciJoh.html)


Anway....

As I have said before, in many places before there are two aspects to code (née, Language), syntax and semantics.

Syntax is how the code works. Semantics is what the code means.

Is Ralph looking for meaning in his code?

March 7, 2005 11:04 PM
 

George said:


"But, as a coder, you’re still working, even when you’re tipped back in your chair and staring at the ceiling, lost in thought…"

What's scary is that I often dream solutions to some of my toughest coding challenges. I just wake up with the answer and rush off to the computer to put my solution in place. It's funny how the mind of a coder works.

I still can't convince my manager that mandatory nap times at work would be a very efficient use of my time though....
March 7, 2005 11:13 PM
 

Ralph Loizzo said:

I don't doubt that I would be able to make a somewhat satisfactory well designed planned solution to some of these problems. I guess my problem is that I'm always looking for the ULTIMATE solution. The inspiration that lies just around the corner...

I've been programming and tinkering with computer hardware for 20 years now.

Every time I write code, I have many different reactions. Sometimes, I feel I'm creating art. Sometimes, I feel I'm creating business products.

But always I'm attempting to create solutions.

I always try to ensure my solution doesn't bring about future problems - and that's from which the dilemna arose.

I feel it's necessary that a programmer step back from their code and ponder(and I mean make sure to take the time). Too often we code in one language for a period, then we begin to limit ourselves by only thinking in terms of that language.

Let's get back to what we do.

Provide art.

Provide products.

Provide solutions.

I have a name for this line of thinking, this need to measure today's actions by tomorrow's future problems and concerns.

Futurosophy.

This came out of a need to make sure I get up from my computer, my books, my workstation every so often and look up just to see more than what the current time is.

March 8, 2005 3:59 AM
 

Ralph Loizzo said:

By the way....

that quest for the ultimate solution is representative of Rory's distinction between the System.Math answer - > correct or incorrect

and the System.RightBrain answer

it'll work and we've met deadline

These are the things I think about usually when I've just finished a project.
March 8, 2005 4:03 AM
 

Ralph Loizzo said:

Oh...

and one more thing...

When I buy a pack of ho-hos (seldom do but do)

I do think...

um...

How can I get this guy to slide the hohos over faster and ring me up any quicker.

I think I'm aging quicker now that I'm coding more...


Sorry Rory to pick your comments section to Ralph all over.
March 8, 2005 4:06 AM
 

Jorge Matos said:

Good developers take the time to write maintainable code. Nothing frustrates me as much as having to waste time reverse-engineering complicated code.

March 8, 2005 5:45 PM
 

Rory said:

Bob -

"Don't support the right-brain-left-brain theory, never have."

That's interesting, but it's kind of you vs. a vast body of evidence :|

Different parts of the brain in either hemisphere are clearly dedicated to certain tasks.

Where the concrete vs. abstract (or linear vs. non-linear) stuff is concerned, I tend to be skeptical, but it seems like a good explanation for certain things.

Like savants - there are theories that some savants can do what they can do because there has been damage to a particular hemispehere, and the other has compensated for that damage. So you wind up with people who can perform incredible abstract mental feats, but can't tie their shoes.

Interesting stuff.
March 8, 2005 9:17 PM
 

Rory said:

George -

"I still can't convince my manager that mandatory nap times at work would be a very efficient use of my time though...."

They actually *would*, and the irritating thing is that it would be damned-near impossible to convince your manager of that.

Napping for 20 minutes can do wonders for fatigue and concentration. Any more than that tends to leave you worse off, but 20 minutes will leave you refreshed.

It's so bloody stupid. The choice is between me napping for 20 minutes and giving a good, say, three hours and forty minutes of work, or *not* napping and then simply being tired for four straight hours.

Argh.
March 8, 2005 9:19 PM
 

George said:

Rory,

Well as soon as you start your company for the upcoming mass release of NeoFox, I'll just submit my resume and prepare to sleep my way to greatness with you at the helm.
March 9, 2005 4:32 AM
 

Ben said:

"It's so bloody stupid. The choice is between me napping for 20 minutes and giving a good, say, three hours and forty minutes of work, or *not* napping and then simply being tired for four straight hours. "

You could probably make a successful pitch if you had a means of demonstrating a measurable productivity increase to warrant "working" 20 minutes fewer each day.
March 21, 2005 11:13 PM
 

TrackBack said:

Flow, coding, and math
March 9, 2005 5:06 PM
New Comments to this post are disabled

About Rory

I *own* this site, you loser.