2 ms·
It's not reasonable to expect your coworkers to treat you like a monk who needs to spend long hours in uninterrupted deep thought and reflection. Avoiding the
by twblalock 8y ago
It's not reasonable to expect your coworkers to treat you like a monk who needs to spend long hours in uninterrupted deep thought and reflection.
Avoiding the cognitive penalty of interruptions is a skill that every programmer should develop. It's a big win in terms of productivity, and it only becomes more important when you become more senior and need to collaborate more frequently with other teams or provide support to other developers. Collaboration is where true productivity comes from anyway, rather than raw coding skill (above a certain baseline of competence, of course.)
In my experience, productive programmers often avoid the problem by just writing stuff down. If the guy in the comic strip had a pen and paper he could have quickly drawn those flowcharts he had in his head. Or he could have typed his ideas in comments or in a text file. But if he tries to hold such a complicated structure in his head, to the extent that he can't have a conversation with another person, he's just needlessly setting himself up for failure. I doubt he would make it through a lunch break or even a bathroom break if he can so easily lose track of what he is doing.
- __m 8y agoI still prefer chat messages, even if the other person sits right next to me. You can finish whatever subtask you are working on, take some time to think about the the question being asked and probably give a better answer
- evilDagmar 8y agoIf we could so readily write this stuff down so that we can come back to it, we could have already banged it in through the keyboard and be done. What's going on in a good programmer's head is going to be complex and detailed, because we need to understand it to be able to write it, and that basically means we're running the code in our heads before we commit it to a screen. We're not "setting [ourselves] up for failure". We're solving hard problems with the expectation that we won't have to come back to it in an hour's time just to erase all our poorly planned code and start over. It's not like writing an email--we're switching modes over to thinking like a computer and this requires concentration and focus.
- twblalock 8y agoI'm a programmer too, and I am well aware of the complexities involved in the job. You don't need to explain them to me. I think you're overselling your point quite a bit. There are ways to deal with the mental challenges that are superior to keeping the whole thing in your head.
- evilDagmar 8y agoSure, if you don't mind writing garbage code. Otherwise, if you don't understand it, you can't say for sure it's correct, and it's usually wrong.
- true_religion 8y agoImread omce that there are two kinds of programmers: those who have a mental model that keep the whole system in mind, and work out the next atep after the gesalt form, and those who have a model that is disjunct thus are able to stop, and pick things up later. Early on I realized I am the first kind. Perhaps you are the latter?
- Doxin 8y agoIn my experience programming is almost fractically complex. No matter how far you subdivide the problem you're solving you're making a tradeoff between the complexity of the problem you're solving and the complexity of the tree of sub-problems. And even ignoring that: writing down abstract concepts is hard. Doing so is (to me) as distracting as dropping my work completely and doing something else for a while. IMO the solution isn't never being disturbed and it isn't writing everything down either. It's keeping disturbances as few as reasonable and being able to get back to it quickly, even if that means rebuilding your mental model.