3 ms·
Another thing that helps: when my last session was spent mostly coding, and I'm having trouble getting back into it, I will just take pencil and paper and sketc
by euccastro 19y ago
Another thing that helps: when my last session was spent mostly coding, and I'm having trouble getting back into it, I will just take pencil and paper and sketch stuff away. Often, I'm blocked because I don't really understand well enough some part of what I'm doing, or of where I want to get to. Drawing or (otherwise) restating the problem gets me back to the state where you spend hours just knowing what to do next.
And viceversa, if I've spent too much time 'designing' or otherwise thinking about the problem, I unblock by going off and making something I can run. I may eventually throw away that code, but it got me going forward.
So I don't have much of a methodology. Thinking about doing and actually doing are things I do to procrastinate from each other, if you want.
One technique that does help: I keep a stack.txt document, where I write my current tasks (a short phrase each), organized hierarchically (I use indentation because of a Python background; a Lisp native might use sexprs instead). When I stumble into a subtask that I need to do sometime, but which I can get away without for the time being, I 'fake it til I make it', and I enter a reminder of the proper solution in my 'mind stack' as a subtask of the current one. Whenever I think of an unrelated task that I want to do later, I will enter a reminder at the end of the stack. [Edit: OK, so it's a tree, where each path to a leave is a stack of context about what you're doing.]
That avoids two problems that used to get me lost when hacking: getting lost in subtasks and losing context of what I was doing, and trouble deciding what to do next (it's easier to decide with confidence if you can see your options written together).