I’ve been meaning to write a post like this one for a while, and I’m glad someone else did it so I can just link to it, instead :)
Here’s a great writeup of tools that developers should be at least familiar with.
I’d add a few things: