Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

When your programming you often have to go and look at other pieces of code for reference, search for something etc. I'm looking for some numbers on the ratio of time spend actually typing the code(coding) and the time spend going back and forth between other parts of the system, not even counting browsing the internet, reading documentation.

Ofcourse this depends on a large number of factors, probably also on your IDE, programming language etc. I just need some rough estimates, or researches on the subject.

Background: I want to investigate how much network latency is tolerable for a programmer to work on virtual machines (if any).

share|improve this question
add comment

5 Answers

up vote 3 down vote accepted

I want to investigate how much network latency is tolerable for a programmer to work on virtual machines (if any).

This is simple. I'm going to throw out the "scrolling/navigating" part of this question and go directly to the root here: typing vs. latency.

When I hit the key, I expect the character to appear immediately. Anything less than immediate is unacceptable. When it comes to typing, I expect results. I type something approaching 100 wpm. Latency negates that.

The biggest problem I have with latency when typing is this: if I misspell something, on a live computer I can backtrack and correct it at 100 wpm. So it's taken care of and corrected immediately. If I am typing with latency, then what happens is I misspell something and don't see it for a word or two. Now I have to stop, erase, retype, all slowly because of the latency. It just flat-out slows down the whole process of composition.

When it comes to typing latency, you just have to decide what you can reasonably live with.

share|improve this answer
add comment

Depends on many factors.

Learning a new library? A lot. Have two monitors? Probably not much. Dealing with code written by monkeys? Tons. Reading/Writing documentation in a waterfall process? Tons.

share|improve this answer
add comment

Cmd + F

Best friend I have. No more scrolling, no more browsing code to find it. Need to find a file quickly? find . | grep [filename]. Poof, there it is. Can even file name match with regex. Using TextMate? Cmd + T and Cmd + Opt + T are your friends.

share|improve this answer
add comment

Depends on which phase of the project you're in.

Initially there's a bunch of typing--I find that to be the case even when I'm tying in a lot of external stuff.

Once I have the structure of the application in place and the general flow of the thing constructed, it becomes more navigational and surgical.

share|improve this answer
add comment

I see absolutely no connection with scrolling etc. Having a ten-second latency isn't good, even if I wasn't going to type more than 360 characters that hour anyway.

When typing flat-out, I probably go about 60 wpm, or 1 wps. (I've been objectively tested at 87 wpm.) Given about six characters per word in tests like that, we're talking about 6 characters per second. Ideally, each would appear on the screen before the next keypress, so I can easily keep track of where I am and correct typos immediately. Bear in mind that I'm thinking about what I'm typing, so having to divert any cognition to the act of typing is a real limitation.

Since I don't know how bursty my typing is, I'd say that 0.1 second is the maximum acceptable latency from all causes. That's network latency both ways, any latency in bringing up my personal VM, everything. Anything more is going to be a drain on productivity.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.