Maybe “still as consciously engaged in it as [...] in the beginning” was too strong, but compare programming to driving. If you’re like most drivers you can do basically anything while driving (in normal traffic and weather conditions), as long as it doesn’t require you to take your limbs from the car’s controls or your eyes from the road.
The programming equivalent of this would be that you can write a program (let’s say a binary tree implementation in C for the sake of argument) while having a conversation, and
this would not make you take noticeably longer to write the program
nor would it mess up your conversational ability.
A test of messing up your conversational ability would be whether the friend you’re talking to could tell over the phone that you’re doing something else at the same time.
(I’m guessing you can’t do this but I’d be interested to hear otherwise.)
To some extent, I think what you described does happen for snippets of code that are largely the same, and which one might write all the time. For example, I can write a “Hello world” program while maintaining conversation. However, as soon as you ask me to write something new, then I do have to start thinking about how to put pieces together, and can’t continue conversation.
But this also happens with driving. Speaking for myself at least, I can only maintain conversation while driving in a way that does not require me to make any decisions: (1) a route I’ve driven many times before, (2) a straight piece of road that might be unfamiliar, but does not require making any decisions.
If you put me in a new city where I don’t know where the streets are and how the traffic works, my conversational ability is much decreased (unless sitting at a red light, and perhaps even then, if I’m wondering where to turn next).
Programming tends to be like driving in new cities all the time. The difference we observe is really that we do most of our driving as a chore (same route, similar conditions each time) whereas we usually try to avoid that in programming (re-writing code we’ve already written several times, in similar conditions each time).
When you get good at driving, attention is freed for other things. When you get good at programming, the freed ressources you gain are used to speed up the programming. This speedup would, I think, not rollback without at least conscious effort and no other tasks can be attempted. The same should go for other skills whose effectiveness does/does not speed up with paid attention. If your desk job consisted of copying printed numbers into spreadsheets, you could probably divert attention after your input capacity is reached. If you were to juggle always as many balls as possible, you should never be distracted.
Maybe “still as consciously engaged in it as [...] in the beginning” was too strong, but compare programming to driving. If you’re like most drivers you can do basically anything while driving (in normal traffic and weather conditions), as long as it doesn’t require you to take your limbs from the car’s controls or your eyes from the road.
The programming equivalent of this would be that you can write a program (let’s say a binary tree implementation in C for the sake of argument) while having a conversation, and
this would not make you take noticeably longer to write the program
nor would it mess up your conversational ability.
A test of messing up your conversational ability would be whether the friend you’re talking to could tell over the phone that you’re doing something else at the same time.
(I’m guessing you can’t do this but I’d be interested to hear otherwise.)
Sorry, I don’t check this place often.
To some extent, I think what you described does happen for snippets of code that are largely the same, and which one might write all the time. For example, I can write a “Hello world” program while maintaining conversation. However, as soon as you ask me to write something new, then I do have to start thinking about how to put pieces together, and can’t continue conversation.
But this also happens with driving. Speaking for myself at least, I can only maintain conversation while driving in a way that does not require me to make any decisions: (1) a route I’ve driven many times before, (2) a straight piece of road that might be unfamiliar, but does not require making any decisions.
If you put me in a new city where I don’t know where the streets are and how the traffic works, my conversational ability is much decreased (unless sitting at a red light, and perhaps even then, if I’m wondering where to turn next).
Programming tends to be like driving in new cities all the time. The difference we observe is really that we do most of our driving as a chore (same route, similar conditions each time) whereas we usually try to avoid that in programming (re-writing code we’ve already written several times, in similar conditions each time).
When you get good at driving, attention is freed for other things. When you get good at programming, the freed ressources you gain are used to speed up the programming. This speedup would, I think, not rollback without at least conscious effort and no other tasks can be attempted. The same should go for other skills whose effectiveness does/does not speed up with paid attention. If your desk job consisted of copying printed numbers into spreadsheets, you could probably divert attention after your input capacity is reached. If you were to juggle always as many balls as possible, you should never be distracted.