Depends on how much programming you intend to do. If you are only a hobbyist and you are directing your programs toward the Win9x platform, then you don't need to use UNICODE. But if your programs are going to run on NT/2k/XP, you need to use UNICODE (this isn't entirely true - ASCII characters will still work, but programs that use them are less efficient than those that use UNICODE).

Also, if you plan to localize your programs (translate them to different languages), then UNICODE is essential.

One of the easiest ways to deal with having both types of strings is to use TCHARs with the _T() or TEXT() macros.