If you like C, I suggest you try out Not eXactly C, a modified version of C for programming NXT bricks. If you prefer a version more like C, give RobotC a try. RobotC is commercial software, however.
Getting NXC up and running is as easy as installing the Bricx Command Center IDE. NXC works with the standard LEGO firmware, but it also comes with an enhanced version with bug-fixes and enhancements. RobotC provides its own IDE and firmware which you can try a 30 day trial and then purchase a license key from the RobotC website.
If you really like Python, have a look at nxt-python. It's as easy as installing a compatible driver/interface for nxt-python to communicate with the NXT brick, and then installing the latest release of the nxt-python libraries. How to do so is clearly outlines on the Installation page.
I suggest you setup BricxCC and nxt-python, and give them a try first. If NXC isn't right for you, you can grab a trial version of RobotC that you can try out for 30 days before purchasing the full version.