Programmers are artisans. We are masters of tools... or at least should be. I see many programmers fail to focus on their tools. The programmer himself is the most important part of the equation right? Well, yes, but that doesn't mean tools cannot amplify his or her abilities. Even the worlds greatest carpenter will be hampered with substandard tools. There are a set of common tools that every developer should be familiar with. I am going to focus on C/C++ Unix development but this list is easily translated into other environments. 1. Your editor. This is where you are going to spend most of your time. On Linux you have a many choices but every developer should know one of Emacs or Vi. I'm an Emacs guy so I won't talk about Vi much, and besides... there is nothing your OS can do that my Emacs can't. :) Editors are highly sophisticated programs with huge arrays of features. The better you are at running your editor the more time you wi...