Here are details about the tools that I currently use or have used. This isn't an official list by any means -- just the tools that I believe are worth the trouble to set up.
Wait! Before downloading anything, consider getting a package manager for your operating system first. If you're on Linux, then you should already have one.
My preferred text editor. Fun fact - Vim is a clone of Vi, which was written by Berkeley alum and programming superstar Bill Joy.
Pros: Fast and addictive. Feature rich, but you only need to learn a minimal amount to become productive. You'll also look cool doing it. :)
Cons: Steep learning curve. Customization is required to unlock many nice features that are default in other editors.
With a built in package manager, Atom is incredibly easy to customize (like the extension manager for your favorite web browser, but arguably better). On top of that, sensible default packages are installed as well!
Pros: Easy to use and customize.
Cons: In the editor world, Atom is relatively new. There are still some bugs that need to be sorted out, and many packages could use significant improvement.
As far as I'm concerned, this is basically a better version of terminal that ships with OSX.
Pros: Just look at this beautiful list of features.
Cons: OSX only.
Babun is probably the best Windows shell I've used. It comes built in with oh my zsh (z shell) which is usually a bit of a hassle to install on Windows.
Pros: Comes built in with a package manager which beats whatever mess Cygwin and GitBash have.
Cons: There are some potentially annoying defaults that you have to manually disable (for example, a self-check on startup). And... it still uses Mintty, which means no tabs, minimal window configuration, etc.
Package manager for OSX. In a nutshell, package managers make it easy for developers to install software and keep it up to date. Lots of command line applications are installable through Homebrew, and Homebrew Cask allows you to install OSX applications as well!Cask