I suffer periodically from carpel tunnel (The "carps" as I shall affectionately call it). In an effort to extend my ability to do programming at least into my thirties (after which I'll have made my first million, obviously, so it won't be an issue any more), I have cut back on my out-of-work coding time, among other preventative solutions.
I believe in coding as a mental exercise, and as such I don't think that my physical limitations should hold me back (whether it's that my hand is hurting, or that I just don't happen to be near a computer or keyboard, maybe I'm just outside in the park). My goal is to be able to write code in my head, nowhere near a computer, and then turn what I did into real code later.
So I'm wondering if people have techniques that they use for this. In the past, I have kept a notebook in which I've brainstormed ideas about coding, though I haven't used that to write code directly. So I imagine that having the concepts on paper/in text is the end of the little process, and the question of how to represent the code on paper/in text/via schematics is less important/more easily solved than the problem of how to effectively visualize purely mental models of code. Suggestions?
Edit: As I said above, note that the core problem that I'm trying to solve is not my carpel tunnel (not here that is, there are other steps that I'm taking for that), but rather I'm trying to find ways to improve my keyboardless workflow as one of a number of workarounds for "the carps". :p
Edit 2: Just to be a little more clear, here are some examples cribbed from below that kinda get at the solutions I'm trying to brainstorm:
flow charts: e.g. I could attach visual images (chat functionality =
talking heads) to concepts that I wanted to deal with and try to figure out how
to make them fit together as codeUML: maybe if I get familiar enough
with UML, I could start to think in
UML.Specs: Maybe I should ignore the question of code altogether and just think up detailed specs for the code and then leave pinning down the implementation for later.
Etc.
Anyway, food for thought, I guess.