Hot answers tagged concentration
There's actually some hard research data on this, mostly collected over the past 35 years, and I also have experienced a few similar phenomenons, though not on a regular basis. See below for more. Research Data There appears to be some but minor correlation based on research performed and summarized in the following works. As often with research though, ...
The bubbles interface attempts to solve this problem by showing a bunch of bits of code at once. (You're stuck with your browser for Googling). It looks amazing but I haven't tried it. This version of the idea is a Visual Studio implementation for Visual Studio Ultimate.
The Agile Development concept of Pair Programming is actually quite similar to this. While it's not a direct dictation/writing system, you still have one person thinking and producing code, and another person reviewing as the code is written. Pair Programming incorporates most of the pros you listed, except that both programmers must be at the computer. I ...
Both my editor and debugger can jump to a function's definition and have a multilevel "back" button like a web browser to return where I was before. That's usually sufficient for me to keep track of a complex debugging flow. It also helps to have source control that lets you commit a lot. That gives me a commit message explaining why I'm trying something, ...
Aside from all the great technologies mentioned, I've found that the old-fashioned A3 piece of paper is an excellent help in these issues. Write down your ideas and organize them mindmap-style.
I have tried this, I find it's a good way to introduce a new programmer to a system. The new programmer gets some committed code, and experience using the system, which acts as a big confidence boost when you cut them loose to work alone. Working in a pair with a programmer who is already familiar with the system (I personally haven't tried this), I would ...
Ech... this deserves more than a comment. "I usually try to fight through this" Stop fighting. You're getting things twisted and making mistakes right? You may well have some unique issues but the manner in which your brain is rebelling is normal for anybody that's spent too long hyper-focused on a problem. When I was younger, way too much of my day ...
How many hours do you work for before starting to see this blurring? Many average to good programmers I know of work 4, may be 5 hours before taking a coffee or lunch or something. The longest of such sprints I have read of is when Guy L Steele and Richard M Stallman did a 10 or so hour sprint when writing Emacs. Steele goes on to say that he would not ...
Let's take a step back. The problem you seem to want to solve with is one of focus. That problem already has a solution, similar in look but very different in practice, which others have mentioned; pair programming. Pair programming between two competent developers of roughly equal knowledge should not be programming by dictating. Instead, one programmer ...
I usually started my day by typing hg log or hg diff (I uses Mercurial for version control) in the Terminal.
Sounds like a nap to me. Personally, I pace and talk to myself while I think; which is my implementation of the rubber duck technique.
Multiple ways that I keep track: Write it down. Got a meeting in two minutes? Write down what you were doing and where. I always have pen and paper laying next to me to write things down as I code. Bookmarks. I have 10 numbered bookmarks I can set. Stacktrace. You can easily view the whole hierarchy of code you went through. My editor also allows me to ...
From what you describe, your problem may have various causes : Inexperience Loss of focus / fatigue Low spatial abilities Inexperience can be solved by... well, gaining more experience, basically. However obvious it may sound, by practising more you'll find yourself in complex programming situations more often and will progressively learn to handle them. ...
I'm surprised no one has mentioned the many tools that can create call-graph plots. I've found doxygen to be a great help. You don't even have to commit to using doxygen throughout your program, you can just tag the functions you are interested in tracing.
Get a real developers tool / IDE, what ever takes you fancy. Vi, Emacs, Eclipse or whatever (The choice is as large as the arguements over which is best, but thats another problem), and learn to use it properly. dont, like too many do, use it like Notepad with syntax highlighing. Learn to use hotkeys, and not rely on the mouse for common actions (It's too ...
With Visual Studio, in a debug session, you can use the 'Call Stack' window (you can enable it in Debug / Windows / Call Stack or with the shortcut Ctrl+Alt+c) to track of the flow of code.
I use the simple solution - never close anything until I am finished with the task. That means that usually one of the 50 or so open windows/tabs has something in it that will remind me what I was thinking when I get back to it.
I used a variation of Pair Programming at my last job. Some of the problems we encountered were above our skill levels (both of us were just students), so we used to just sit at the same machine and code out a solution to the problem. Rather than one person tell the other what to code, we just took the keyboard and mouse and coded the next section after ...
I find myself doing this before I goto bed. I would be uncomfortable doing this at work as I would think upper management would think I am not doing anything. They typically do not have a grip on how code development works. Usually, laying out code is the simple part, design is the hard part. Regarding your question, this is on a per person basis. I ...
Only top voted, non community-wiki answers of a minimum length are eligible