Interesting you should bring this up, I've been putting together a post for a while on my particular setup. I've got lots of shortcuts and workflow enhancements that I've carried with me (and refined) over the years and now implemented using tools like Mjolnir and BetterTouchTool. It's OS X specific, though, since that's my primary workstation OS.
A quick overview of my some of the things I've enhanced my coding workflow with:
alt or cmd and then swipe 3 fingers up, left, right or down for one of 8 frequently used apps (which is either launched if its not running or otherwise raised to the foreground). I view most documentation (that which I can) through Dash, which I can raise with ctrl+alt+cmd+/. My terminal is always a cmd+alt+§ away.ctrl+cmd and either left or right arrow to select a direction, followed by a 1-9 to select the number of columns the frontmost app should stretch, or 0 to fill the entire screen (without actually going fullscreen). I can also make window half the screen height by using ctrt+cmd and up or down arrow. This way I can throw windows around and put them in logical sections of my screen and maximise the space I have available to me.~/Work in tmux (e.g. I just type tm foobar).m to open the current directory or a given filename in TextMate, and an a alias for Atom.docker-machine (dm), spring rails server (srs).stree command line utility when I need a gui (reading long commits, histories, etc).There's a ton more bits and pieces, but those are the major points.
The basic premise of what I do to enhance my workflow, is to reduce the number of brain cycles I need to do any given task - particularly the most frequent tasks. Switching between Terminal and my editor (currently Atom) and two browsers (one for browsing, one for dev) is probably my most frequent task, so all of those things are available with alt and 3 fingers up (Safari), down (Chrome), left (Atom). Xcode is actually on alt right, but I haven't done much iOS development lately. My terminal is ctrl+alt+cmd+§.
I don't have to think about which tab order the apps are to switch most efficiently between them, nor do I have to recognise icons, or even alt-tab in the first place. The shortcuts to launch those apps are embedded in my brain and they take almost zero thought to perform, and therefore have no impact on my general flow as I am coding, testing and such.
Thinker, Tinkererer, Dork.