How to flash a LEGO Mindstorms brick and program it in another language
I've had great success with Bricx Command Center or BricxCC (as mentioned in this post) on my NXT using NXC (which is easy to pick-up when you already have a C/C++ foundation like you've mentioned).

Installation, using the supplied drivers and connecting via USB is a breeze :)

Hope this helps!