views:

350

answers:

10

I'm going through some research tapes of developers who are editing code and reading documentation (either online or via the hover in the IDE) and I'm trying to figure out all the techniques they use for remaining oriented. I'd like to correlate what I see with the experiences of others.

So, let's say you're reading a long piece of code or documentation. Do you use your mouse or the insertion point as a placeholder? Select stuff before you read it? Just move the cursor around? Not do any of that at all and just rely on memory? Any feedback or observations would be appreciated.

EDIT: Also, do you sometimes end up returning to something you have recently read/marked? Would you benefit from something that highlighted your most recent markings and then slowly "decayed"?

+2  A: 

I select stuff as I read it, and move the selection around to entertain (I guess?) while I read. Occasionally skipping ahead and selecting the next block I'm about to read.

TheSoftwareJedi
+2  A: 

If I need to quickly mark my place in a document I'll usually select the last sentence I read, scroll back or forward to check something and then find the selected place again to continue.

I'll also often point more or less at what I'm reading with the mouse.

Andrew Kennan
A: 

I usually select things before I read it.

BobbyShaftoe
+5  A: 
CMS
Is this at the line level or selection level?What do you do about documentation?
Uri
Thanks,It seems pretty cool.
Braveyard
@Uri: It's at the line level, helps me on long files where you want to work on an area, scroll away and then return, works also between files. On documentation files, usually I select the lines as I read them, primarily with the keyboard.
CMS
How do you select in docs with the keyboard? Is there an insertion point?
Uri
I read most of documentation on Word documents, I usually start on the fist line of a paragraph and I do Shift-Down Arrow. I use also a plugin for Visual Studio and Word (http://www.viemu.com/), with that plugin I have a "selection mode" where I can move efficiently the cursor using the h,j,k,l keys
CMS
That's a cool plugin! thanks!
Uri
A: 

Basically I just click on the screen and use my mouse wheel to keep the code that I'm looking at near the center of the screen and keep track of where I am in my head. I keep an area in my field of vision that I'm reviewing and travel down before scrolling again.

Kinze
A: 

no I don't

Supernovah
A: 

I would prefer to use the mouse to scroll up and down while reading anything on the computer, but since I have that gaming-type mouse-pad and not the one with the soft cushion-type wrist support, I tend to keep my hand away from the mouse as much as I possible can -- not least avoiding keeping the wrist on the pad with the mouse in hand for long periods. This tends to hurt my wrist, and I can quickly feel that. Instead, and now that I've a MacBook, I use the two-finger scroll on the trackpad to scroll the page.

ayaz
+1  A: 

I only select text while I read when I get tired and can't concentrate anymore.

The usual case to select text is when I'm interrupted. This way, I know where to return.

In Eclipse, I rely on the back/forward buttons which move the cursor for me (like in a web browser). It's not perfect, though. Sometimes, it's hard to see why it would jump to a position and why it sometimes doesn't.

Aaron Digulla
Thanks! So when you use back and forward, do you use the full list of locations or just hit multiple times until you find where you were seeking? I usually find that back and forth eventually makes me lose my location.
Uri
I hit the key several times until I find that I'm lost. Then I have to reset my brain and think :(
Aaron Digulla
A: 

Viewing code:

I use EMACS C-x 2 (or C-x 3) to split the screen horizontally (or vertically) (using a big resolution-screen), to visualize caller-callee-relationship (sp?).

On Documetation: memory and the mouse as a pointer

Peter Miehle
A: 

Yes, and its important not only to use that, but also to keep focused. You know, programmers could be attention-impaired...

As a rule of thumb, I'd not only select blocks of code (which is important if you're showing it to someone, I'd also make use of some additional tricks when conveying and showing stuff to others, like:

1) Isolating blocks in standalone blocks, this way:

public void f() {
   double i;

   // Initialization
   {
      i = Math.PI;
   }

}

This is a seldom-known fact, but pretty much interesting (specially in environments where you don't have #regions)

2) If reading across an spec and writing code, I'd try to use paragrasper in Firefox, which is great to keep context when reading a web page.

aldrinleal