Development and revision control

Unix environments

First, if you haven't encountered basic command line and Unix/Linux environments before, quick primers:

C++

The environments I recommend on Windows are Visual C++ Express and Cygwin, the former for real development and the latter for useful tools and utilities.

Cygwin should be familiar if you've used a Linux environment before, although Google has great tutorials. There's some decent stuff online for Visual Studio (the Express edition is almost identical to the Pro/.NET versions, if you're looking around); some options are:

In addition to the C++ material included there, some great language references and tutorials are:

Version Control

Much as I fear to say it, Wikipedia has a fairly good and comprehensive overview of revision control concepts:

The software needed to use Mercurial is either included in Cygwin (make sure to enable the mercurial package) or provided by TortoiseHG. Some tutorials on Mercurial and distributed revision control in general (for which Wikipedia's article is actually terrible) are: