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.

Vim

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.

Atom

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.

iTerm2

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

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.

Homebrew

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

Chocolatey

For the sake of completeness, here's a package manager for Windows. I've never used it, however.

Oh My Zsh

Replace the default shell with Zsh, extended with many useful plugins. Highly customizable and features some pretty nifty themes as well.

Oh My Zsh is installable on Windows, but it requires some extra details.

Git

Git is a version control system which basically lets you save snapshots of your code.

The real beauty of Git is that it allows you to fearlessly experiment with new ideas. It might take a while to learn, but it will only be more prevalent later on in school & work!